Print this page
4385 Missing hosts_ctl() prototype in tcpd.h

*** 1,17 **** /* * Copyright 2001 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" ! /* * @(#) tcpd.h 1.5 96/03/19 16:22:24 * * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. */ /* * HAVE_IPV6 is traditionally configured at tcp_wrappers build time but for * Solaris it must always be defined to keep the library interface binary * compatible. */ --- 1,20 ---- /* + * Copyright 2014 Sachidananda Urs <sacchi@gmail.com> * Copyright 2001 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ ! /* * @(#) tcpd.h 1.5 96/03/19 16:22:24 * * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. */ + #ifndef _TCPD_H + #define _TCPD_H + /* * HAVE_IPV6 is traditionally configured at tcp_wrappers build time but for * Solaris it must always be defined to keep the library interface binary * compatible. */
*** 56,67 **** sizeof (struct sockaddr_in)) #define SGPORT(sag) (*((sag)->sg_family == AF_INET6 ? \ &(sag)->sg_sin6.sin6_port : \ &(sag)->sg_sin.sin_port)) #define SGADDRP(sag) (((sag)->sg_family == AF_INET6 ? \ ! (char *) &(sag)->sg_sin6.sin6_addr : \ ! (char *) &(sag)->sg_sin.sin_addr)) #define SGFAM(sag) ((sag)->sg_family == AF_INET6 ? \ AF_INET6 : AF_INET) #define SG_IS_UNSPECIFIED(sag) \ ((sag)->sg_family == AF_INET6 ? \ --- 59,70 ---- sizeof (struct sockaddr_in)) #define SGPORT(sag) (*((sag)->sg_family == AF_INET6 ? \ &(sag)->sg_sin6.sin6_port : \ &(sag)->sg_sin.sin_port)) #define SGADDRP(sag) (((sag)->sg_family == AF_INET6 ? \ ! (char *)&(sag)->sg_sin6.sin6_addr : \ ! (char *)&(sag)->sg_sin.sin_addr)) #define SGFAM(sag) ((sag)->sg_family == AF_INET6 ? \ AF_INET6 : AF_INET) #define SG_IS_UNSPECIFIED(sag) \ ((sag)->sg_family == AF_INET6 ? \
*** 74,87 **** #define IPV6_ABITS 128 /* Size of IPV6 address in bits */ #endif #else /* HAVE_IPV6 */ ! #define SGADDRSZ(sag) sizeof(struct in_addr) ! #define SGSOCKADDRSZ(sag) sizeof(struct sockaddr_in) #define SGPORT(sag) ((sag)->sg_sin.sin_port) ! #define SGADDRP(sag) ((char*) &(sag)->sg_sin.sin_addr) #define SGFAM(sag) AF_INET #define SG_IS_UNSPECIFIED(sag) ((sag)->sg_sin.sin_addr.s_addr == 0) #define VALID_ADDRTYPE(t) ((t) == AF_INET) --- 77,90 ---- #define IPV6_ABITS 128 /* Size of IPV6 address in bits */ #endif #else /* HAVE_IPV6 */ ! #define SGADDRSZ(sag) sizeof (struct in_addr) ! #define SGSOCKADDRSZ(sag) sizeof (struct sockaddr_in) #define SGPORT(sag) ((sag)->sg_sin.sin_port) ! #define SGADDRP(sag) ((char *)&(sag)->sg_sin.sin_addr) #define SGFAM(sag) AF_INET #define SG_IS_UNSPECIFIED(sag) ((sag)->sg_sin.sin_addr.s_addr == 0) #define VALID_ADDRTYPE(t) ((t) == AF_INET)
*** 111,128 **** struct netconfig *config; /* netdir handle */ }; /* Common string operations. Less clutter should be more readable. */ ! #define STRN_CPY(d,s,l) { strncpy((d),(s),(l)); (d)[(l)-1] = 0; } ! #define STRN_EQ(x,y,l) (strncasecmp((x),(y),(l)) == 0) ! #define STRN_NE(x,y,l) (strncasecmp((x),(y),(l)) != 0) ! #define STR_EQ(x,y) (strcasecmp((x),(y)) == 0) ! #define STR_NE(x,y) (strcasecmp((x),(y)) != 0) ! /* * Initially, all above strings have the empty value. Information that * cannot be determined at runtime is set to "unknown", so that we can * distinguish between `unavailable' and `not yet looked up'. A hostname * that we do not believe in is set to "paranoid". */ --- 114,131 ---- struct netconfig *config; /* netdir handle */ }; /* Common string operations. Less clutter should be more readable. */ ! #define STRN_CPY(d, s, l) { strncpy((d), (s), (l)); (d)[(l)-1] = 0; } ! #define STRN_EQ(x, y, l) (strncasecmp((x), (y), (l)) == 0) ! #define STRN_NE(x, y, l) (strncasecmp((x), (y), (l)) != 0) ! #define STR_EQ(x, y) (strcasecmp((x), (y)) == 0) ! #define STR_NE(x, y) (strcasecmp((x), (y)) != 0) ! /* * Initially, all above strings have the empty value. Information that * cannot be determined at runtime is set to "unknown", so that we can * distinguish between `unavailable' and `not yet looked up'. A hostname * that we do not believe in is set to "paranoid". */
*** 131,156 **** #define STRING_PARANOID "paranoid" /* hostname conflict */ extern char unknown[]; extern char paranoid[]; ! #define HOSTNAME_KNOWN(s) (STR_NE((s),unknown) && STR_NE((s),paranoid)) #ifdef HAVE_IPV6 ! #define NOT_INADDR(s) (strchr(s,':') == 0 && s[strspn(s,"0123456789./")] != 0) #else ! #define NOT_INADDR(s) (s[strspn(s,"0123456789./")] != 0) #endif /* Global functions. */ #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) extern void fromhost(); /* get/validate client host info */ #else #define fromhost sock_host /* no TLI support needed */ #endif extern int hosts_access(); /* access control */ extern void shell_cmd(); /* execute shell command */ extern char *percent_x(); /* do %<char> expansion */ extern void rfc931(); /* client name from RFC 931 daemon */ extern void clean_exit(); /* clean up and exit */ --- 134,160 ---- #define STRING_PARANOID "paranoid" /* hostname conflict */ extern char unknown[]; extern char paranoid[]; ! #define HOSTNAME_KNOWN(s) (STR_NE((s), unknown) && STR_NE((s), paranoid)) #ifdef HAVE_IPV6 ! #define NOT_INADDR(s) (strchr(s, ':') == 0 && s[strspn(s, "0123456789./")] != 0) #else ! #define NOT_INADDR(s) (s[strspn(s, "0123456789./")] != 0) #endif /* Global functions. */ #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) extern void fromhost(); /* get/validate client host info */ #else #define fromhost sock_host /* no TLI support needed */ #endif + extern int hosts_ctl(); /* wrapper around request_init() */ extern int hosts_access(); /* access control */ extern void shell_cmd(); /* execute shell command */ extern char *percent_x(); /* do %<char> expansion */ extern void rfc931(); /* client name from RFC 931 daemon */ extern void clean_exit(); /* clean up and exit */
*** 175,192 **** extern char *hosts_deny_table; /* for verification mode redirection */ extern int hosts_access_verbose; /* for verbose matching mode */ extern int rfc931_timeout; /* user lookup timeout */ extern int resident; /* > 0 if resident process */ ! /* * Routines for controlled initialization and update of request structure * attributes. Each attribute has its own key. */ #ifdef __STDC__ ! extern struct request_info *request_init(struct request_info *,...); ! extern struct request_info *request_set(struct request_info *,...); #else extern struct request_info *request_init(); /* initialize request */ extern struct request_info *request_set(); /* update request structure */ #endif --- 179,196 ---- extern char *hosts_deny_table; /* for verification mode redirection */ extern int hosts_access_verbose; /* for verbose matching mode */ extern int rfc931_timeout; /* user lookup timeout */ extern int resident; /* > 0 if resident process */ ! /* * Routines for controlled initialization and update of request structure * attributes. Each attribute has its own key. */ #ifdef __STDC__ ! extern struct request_info *request_init(struct request_info *, ...); ! extern struct request_info *request_set(struct request_info *, ...); #else extern struct request_info *request_init(); /* initialize request */ extern struct request_info *request_set(); /* update request structure */ #endif
*** 198,208 **** #define RQ_CLIENT_SIN 6 /* client endpoint (internal) */ #define RQ_SERVER_NAME 7 /* server host name */ #define RQ_SERVER_ADDR 8 /* server host address */ #define RQ_SERVER_SIN 9 /* server endpoint (internal) */ ! /* * Routines for delayed evaluation of request attributes. Each attribute * type has its own access method. The trivial ones are implemented by * macros. The other ones are wrappers around the transport-specific host * name, address, and client user lookup methods. The request_info and * host_info structures serve as caches for the lookup results. --- 202,212 ---- #define RQ_CLIENT_SIN 6 /* client endpoint (internal) */ #define RQ_SERVER_NAME 7 /* server host name */ #define RQ_SERVER_ADDR 8 /* server host address */ #define RQ_SERVER_SIN 9 /* server endpoint (internal) */ ! /* * Routines for delayed evaluation of request attributes. Each attribute * type has its own access method. The trivial ones are implemented by * macros. The other ones are wrappers around the transport-specific host * name, address, and client user lookup methods. The request_info and * host_info structures serve as caches for the lookup results.
*** 229,239 **** #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) extern void tli_host(); /* look up endpoint addresses etc. */ #endif ! /* * Problem reporting interface. Additional file/line context is reported * when available. The jump buffer (tcpd_buf) is not declared here, or * everyone would have to include <setjmp.h>. */ --- 233,243 ---- #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT) extern void tli_host(); /* look up endpoint addresses etc. */ #endif ! /* * Problem reporting interface. Additional file/line context is reported * when available. The jump buffer (tcpd_buf) is not declared here, or * everyone would have to include <setjmp.h>. */
*** 249,270 **** char *file; /* current file */ int line; /* current line */ }; extern struct tcpd_context tcpd_context; ! /* * While processing access control rules, error conditions are handled by * jumping back into the hosts_access() routine. This is cleaner than * checking the return value of each and every silly little function. The * (-1) returns are here because zero is already taken by longjmp(). */ #define AC_PERMIT 1 /* permit access */ #define AC_DENY (-1) /* deny_access */ #define AC_ERROR AC_DENY /* XXX */ ! /* * In verification mode an option function should just say what it would do, * instead of really doing it. An option function that would not return * should clear the dry_run flag to inform the caller of this unusual * behavior. */ --- 253,274 ---- char *file; /* current file */ int line; /* current line */ }; extern struct tcpd_context tcpd_context; ! /* * While processing access control rules, error conditions are handled by * jumping back into the hosts_access() routine. This is cleaner than * checking the return value of each and every silly little function. The * (-1) returns are here because zero is already taken by longjmp(). */ #define AC_PERMIT 1 /* permit access */ #define AC_DENY (-1) /* deny_access */ #define AC_ERROR AC_DENY /* XXX */ ! /* * In verification mode an option function should just say what it would do, * instead of really doing it. An option function that would not return * should clear the dry_run flag to inform the caller of this unusual * behavior. */
*** 306,310 **** --- 310,316 ---- #ifdef LIBC_CALLS_STRTOK /* libc calls strtok() */ #define strtok my_strtok extern char *my_strtok(); #endif + + #endif /* _TCPD_H */