dracauth(3)

NAME
dracauth - Dynamic Relay Authorization Control client interface

SYNOPSIS

cc [ flag ... ] file ... -ldrac [ library ... ]

MT-LEVEL

Unsafe

DESCRIPTION

Dynamic Relay Authorization Control uses Berkeley db package to maintain a relay authorization map for sendmail. POP and IMAP mail servers make an RPC call to add an entry to the authorization cache after they have authenticated each user.

  Routines

dracauth(char *server, unsigned long userip, char **errmsg);

dracconn(char *server, char **errmsg);

dracsend(unsigned long userip, char **errmsg);

dracdisc(char **errmsg);

    dracauth() sends a request to the server running on host server to authorize SMTP relaying from IP address userip. It does the connect, send, and disconnect in one operation. errmsg is the address of an uninitialized character pointer. If this parameter is non-NULL, dracauth() will store a pointer to an error message at this location.

    dracconn() initiates an RPC connection to the server running on host server. errmsg is the address of an uninitialized character pointer. If this parameter is non-NULL, dracconn() will store a pointer to an error message at this location.

    dracsend() sends a request over the RPC connection to authorize SMTP relaying from IP address userip. errmsg is the address of an uninitialized character pointer. If this parameter is non-NULL, dracsend() will store a pointer to an error message at this location.

    dracdisc() terminates the RPC connection. errmsg is the address of an uninitialized character pointer. If this parameter is non-NULL, dracdisc() will store a pointer to an error message at this location.

RETURN VALUES

All integer functions return 0 if the requested operation is successful, or non-zero and an error message pointer if the operation failed.

FILES
libdrac.a

SEE ALSO
rpc.dracd(1m)

NOTES
This interface is unsafe in multithreaded applications. Unsafe interfaces should be called only from the main thread.