NAME
rfc1413
—
libwrap client side ident
implementation
SYNOPSIS
#include
<tcpd.h>
int
rfc1413
(struct
sockaddr *rmt_sin, struct
sockaddr *our_sin, char
*dest, size_t
dsize, int
ident_timeout_time);
DESCRIPTION
rfc1413
()
retrieves a user name from a remote system using the
ident
protocol described in RFC 1413. It is
implemented in the libwrap.a
library.
rfc1413
()
takes two sockaddr pointers as parameters: rmt_sin
for the remote host end of a connected TCP socket, and
our_sin
for the local end.
dest
should be allocated by the caller to store the
found username, and must be of length at least
dsize
. ident_timeout_time
is
a timeout in seconds on the entire ident query, used to ensure that you
don't wait forever for a slow or unresponsive remote host to answer the
ident query.
RETURN VALUES
When username lookup is successful,
rfc1413
() strips the trailing CRLF from the returned
value and stores up to dsize - 1
bytes of the
returned username into dest
, always terminating with
a NUL byte. In this case 0 is returned. rfc1413
()
returns -1 if any failure occurs such that it was unable to retrieve the
remote username.
SEE ALSO
BUGS
The ident protocol only works on TCP sockets.
Ident connections are made unencrypted, and nothing prevents the remote server from lying about who the user is. Consequently, ident should never be used to authenticate users. ident is however, quite useful for logging users of connections from multiuser machines that can be trusted not to lie about it.