home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume39 / tcp_wrappers / part03 / log_tcp.h < prev    next >
C/C++ Source or Header  |  1993-09-29  |  3KB  |  75 lines

  1. /* @(#) log_tcp.h 1.10 93/09/27 18:59:13 */
  2.  
  3. /* Structure filled in by the fromhost() routine. */
  4.  
  5. struct client_info {
  6.     char   *name;            /* host name */
  7.     char   *addr;            /* host address */
  8.     char   *user;            /* user name ("" if not looked up) */
  9.     int     fd;                /* socket handle */
  10.     struct sockaddr_in *rmt_sin;    /* their side of the link */
  11.     struct sockaddr_in *our_sin;    /* our side of the link */
  12.     void  (*sink)();            /* datagram sink function */
  13. };
  14.  
  15. #define from_host client_info        /* backwards compatibility */
  16.  
  17. #define FROM_UNKNOWN    "unknown"    /* name or address lookup failed */
  18. #define FROM_HOST(f) \
  19.     (((f)->name[0] && strcmp((f)->name, FROM_UNKNOWN)) ? (f)->name : \
  20.     (f)->addr[0] ? (f)->addr : FROM_UNKNOWN)
  21.  
  22. /* The following are to be used in assignment context, not in comparisons. */
  23.  
  24. #define FROM_GOOD    1        /* AIX pre-empts GOOD */
  25. #define FROM_BAD    0        /* AIX pre-empts BAD */
  26.  
  27. /* Global functions. */
  28.  
  29. #ifndef TLI
  30. #define fromhost sock_host
  31. #endif
  32.  
  33. extern int fromhost();            /* get/validate remote host info */
  34. extern int hosts_access();        /* access control */
  35. extern void refuse();            /* refuse request */
  36. extern void shell_cmd();        /* execute shell command */
  37. extern void percent_x();        /* do %<char> expansion */
  38. extern char *rfc931();            /* remote name from RFC 931 daemon */
  39. extern char *hosts_info();        /* show origin of connection */
  40. extern void clean_exit();        /* clean up and exit */
  41. extern void init_client();        /* init a client_info structure */
  42.  
  43. #define RFC931_POSSIBLE(f) ((f)->sink == 0 && (f)->rmt_sin && (f)->our_sin)
  44.  
  45. /* Global variables. */
  46.  
  47. extern int allow_severity;        /* for connection logging */
  48. extern int deny_severity;        /* for connection logging */
  49. extern char *hosts_allow_table;        /* for verification mode redirection */
  50. extern char *hosts_deny_table;        /* for verification mode redirection */
  51. extern char *hosts_access_file;        /* for diagnostics */
  52. extern int hosts_access_line;        /* for diagnostics */
  53.  
  54. /* Bug workarounds. */
  55.  
  56. #ifdef INET_ADDR_BUG            /* inet_addr() returns struct */
  57. #define inet_addr fix_inet_addr
  58. extern long fix_inet_addr();
  59. #endif     /* INET_ADDR_BUG */
  60.  
  61. #ifdef BROKEN_FGETS            /* partial reads from sockets */
  62. #define fgets fix_fgets
  63. extern char *fix_fgets();
  64. #endif     /* BROKEN_FGETS */
  65.  
  66. #ifdef RECVFROM_BUG            /* no address family info */
  67. #define recvfrom fix_recvfrom
  68. extern int fix_recvfrom();
  69. #endif     /* RECVFROM_BUG */
  70.  
  71. #ifdef GETPEERNAME_BUG            /* claims success with UDP */
  72. #define getpeername     fix_getpeername
  73. extern int fix_getpeername();
  74. #endif     /* GETPEERNAME_BUG */
  75.