diff options
Diffstat (limited to 'libexec/identd/proxy.c')
-rw-r--r-- | libexec/identd/proxy.c | 134 |
1 files changed, 56 insertions, 78 deletions
diff --git a/libexec/identd/proxy.c b/libexec/identd/proxy.c index b0e8a388717..d6c23f5f937 100644 --- a/libexec/identd/proxy.c +++ b/libexec/identd/proxy.c @@ -1,22 +1,15 @@ /* -** $Id: proxy.c,v 1.2 1997/07/23 20:36:29 kstailey Exp $ -** -** proxy.c This file implements the proxy() call. -** -** This program is in the public domain and may be used freely by anyone -** who wants to. -** -** Last update: 12 Dec 1992 -** -** Please send bug fixes/bug reports to: Peter Eriksson <pen@lysator.liu.se> -*/ + * This program is in the public domain and may be used freely by anyone + * who wants to. + * + * Please send bug fixes/bug reports to: Peter Eriksson <pen@lysator.liu.se> + */ #include <stdio.h> #include <errno.h> #include "identd.h" - #ifdef INCLUDE_PROXY #include <sys/types.h> #include <sys/time.h> @@ -27,74 +20,59 @@ /* -** This function should establish a connection to a remote IDENT -** server and query it for the information associated with the -** specified connection and the return that to the caller. -** -** Should there be three different timeouts (Connection Establishment, -** Query Transmit and Query Receive)? -*/ -int proxy(laddr, faddr, lport, fport, timeout) - struct in_addr *laddr; - struct in_addr *faddr; - int lport; - int fport; - struct timeval *timeout; + * This function should establish a connection to a remote IDENT + * server and query it for the information associated with the + * specified connection and the return that to the caller. + * + * Should there be three different timeouts (Connection Establishment, + * Query Transmit and Query Receive)? + */ +int +proxy(laddr, faddr, lport, fport, timeout) + struct in_addr *laddr; + struct in_addr *faddr; + int lport; + int fport; + struct timeval *timeout; { #ifndef INCLUDE_PROXY - printf("%d , %d : ERROR : %s\r\n", - lport, fport, - unknown_flag ? "UNKNOWN-ERROR" : "X-NOT-YET-IMPLEMENTED"); - - return -1; -#else - id_t *idp; - char *answer; - char *opsys; - char *charset; - - idp = id_open(laddr, faddr, timeout); - if (!idp) - { - printf("%d , %d : ERROR : %s\r\n", - lport, fport, - unknown_flag ? "UNKNOWN-ERROR" : "X-CONNECTION-REFUSED"); - return -1; - } - - if (id_query(idp, lport, fport, timeout) < 0) - { - printf("%d , %d : ERROR : %s\r\n", - lport, fport, - unknown_flag ? "UNKNOWN-ERROR" : "X-TRANSMIT-QUERY-ERROR"); - id_close(idp); - return -1; - } + printf("%d , %d : ERROR : %s\r\n", lport, fport, + unknown_flag ? "UNKNOWN-ERROR" : "X-NOT-YET-IMPLEMENTED"); - switch (id_parse(idp, timeout, &lport, &fport, &answer, &opsys, &charset)) - { - case 1: - printf("%d , %d : USERID : %s %s%s : %s\r\n", - lport, fport, - opsys, - charset ? "," : "", - charset ? charset : "", - answer); - break; - - case 2: - printf("%d , %d : ERROR : %s\r\n", - lport, fport, answer); - break; - - case 0: /* More to parse - fix this later! */ - case -1: /* Internal error */ - default: - printf("%d , %d : ERROR : %s\r\n", - lport, fport, - unknown_flag ? "UNKNOWN-ERROR" : "X-PARSE-REPLY-ERROR"); - } + return (-1); +#else + char *answer, *opsys, *charset; + id_t *idp; - id_close(idp); -#endif + idp = id_open(laddr, faddr, timeout); + if (!idp) { + printf("%d , %d : ERROR : %s\r\n", lport, fport, + unknown_flag ? "UNKNOWN-ERROR" : "X-CONNECTION-REFUSED"); + return -1; + } + if (id_query(idp, lport, fport, timeout) < 0) { + printf("%d , %d : ERROR : %s\r\n", lport, fport, + unknown_flag ? "UNKNOWN-ERROR" : "X-TRANSMIT-QUERY-ERROR"); + id_close(idp); + return -1; + } + switch (id_parse(idp, timeout, &lport, &fport, &answer, + &opsys, &charset)) { + case 1: + printf("%d , %d : USERID : %s %s%s : %s\r\n", lport, fport, + opsys, charset ? "," : "", charset ? charset : "", + answer); + break; + case 2: + printf("%d , %d : ERROR : %s\r\n", lport, fport, answer); + break; + case 0: /* More to parse - fix this later! */ + case -1: /* Internal error */ + default: + printf("%d , %d : ERROR : %s\r\n", lport, fport, + unknown_flag ? "UNKNOWN-ERROR" : "X-PARSE-REPLY-ERROR"); + break; + } + id_close(idp); +#endif } |