X-Git-Url: https://git.distorted.org.uk/~mdw/fwd/blobdiff_plain/16dfe536b74d2c3d647eff0a6d2858b198707766..bdbbfcd4eb2f6e15270f558342630d964cb9f418:/identify.c diff --git a/identify.c b/identify.c index 4b22043..e35799c 100644 --- a/identify.c +++ b/identify.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: identify.c,v 1.5 1999/10/10 16:45:34 mdw Exp $ + * $Id: identify.c,v 1.9 2003/11/29 22:13:43 mdw Exp $ * * Identifies and logs the client of a connection * @@ -29,6 +29,18 @@ /*----- Revision history --------------------------------------------------* * * $Log: identify.c,v $ + * Revision 1.9 2003/11/29 22:13:43 mdw + * Fix bug in identification timout handling. + * + * Revision 1.8 2003/11/29 20:36:07 mdw + * Privileged outgoing connections. + * + * Revision 1.7 2002/02/22 23:43:32 mdw + * Call @xfree@ rather than @free@. + * + * Revision 1.6 2001/06/22 19:36:49 mdw + * Enlarge the identity buffer. + * * Revision 1.5 1999/10/10 16:45:34 mdw * Modified to use new mLib resolver and ident client. * @@ -95,8 +107,8 @@ typedef struct id { sel_timer t; /* Timeout selector */ bres_client r; /* Backgd resolver client block */ ident_request i; /* Ident client block */ - char host[64]; /* Resolved hostname */ - char user[32]; /* Authenticated client user */ + char host[128]; /* Resolved hostname */ + char user[64]; /* Authenticated client user */ } id; #define S_HOST 1u /* Read the hostname from resolver */ @@ -127,14 +139,15 @@ static void id_done(id *i) /* --- Report the final result --- */ - fw_log(i->when, "[%s] %s from %s@%s [%s]", + fw_log(i->when, "[%s] %s from %s@%s [%s:%u]", i->q.desc, i->q.act, - i->user, i->host, inet_ntoa(i->q.rsin.sin_addr)); + i->user, i->host, + inet_ntoa(i->q.rsin.sin_addr), (unsigned)ntohs(i->q.rsin.sin_port)); /* --- Dispose of the block --- */ REFFD_DEC(i->q.r); - free(i); + xfree(i); } /* --- @id_res@ --- * @@ -196,6 +209,7 @@ static void id_ident(ident_reply *ir, void *vp) static void id_timer(struct timeval *tv, void *vp) { id *i = vp; + i->state |= S_TIMER: id_done(i); }