/usr/include/ident.h is in libident-dev 0.22-3.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | /*
** ident.h
**
** Author: Peter Eriksson <pen@lysator.liu.se>
** Intruder: Pär Emanuelsson <pell@lysator.liu.se>
** QNX mod: Sven Behnsen <sven@becom.de> (inserted by PH)
** ultrix mod: Harald Meland <Harald.Meland@usit.uio.no> (inserted by PH)
** HI-UX mods: Nick Maclaren <nmm1@cam.ac.uk> (inserted by PH)
*/
#ifndef __IDENT_H__
#define __IDENT_H__
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __QNX__
#include <sys/select.h>
#endif
/* Sigh */
#ifdef __STDC__
# if __STDC__ == 1
# define IS_STDC 1
# endif
#endif
#ifdef __P
# undef __P
#endif
#ifdef IS_STDC
# define __P(AL) AL
#ifdef IN_LIBIDENT_SRC
# define __P1(t1,a1) \
(t1 a1)
# define __P2(t1,a1,t2,a2) \
(t1 a1, t2 a2)
# define __P3(t1,a1,t2,a2,t3,a3) \
(t1 a1, t2 a2, t3 a3)
# define __P4(t1,a1,t2,a2,t3,a3,t4,a4) \
(t1 a1, t2 a2, t3 a3, t4 a4)
# define __P5(t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) \
(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5)
# define __P7(t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
(t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7)
#endif
#else
# define __P(AL) ()
#ifdef IN_LIBIDENT_SRC
# define __P1(t1,a1) (a1) \
t1 a1;
# define __P2(t1,a1,t2,a2) (a1, a2) \
t1 a1; \
t2 a2;
# define __P3(t1,a1,t2,a2,t3,a3) (a1, a2, a3) \
t1 a1; \
t2 a2; \
t3 a3;
# define __P4(t1,a1,t2,a2,t3,a3,t4,a4) (a1, a2, a3, a4) \
t1 a1; \
t2 a2; \
t3 a3; \
t4 a4;
# define __P5(t1,a1,t2,a2,t3,a3,t4,a4,t5,a5) (a1, a2, a3, a4, a5) \
t1 a1; \
t2 a2; \
t3 a3; \
t4 a4; \
t5 a5;
# define __P7(t1,a1,t2,a2,t3,a3,t4,a4,t5,a5,t6,a6,t7,a7) \
(a1, a2, a3, a4, a5, a6, a7) \
t1 a1; \
t2 a2; \
t3 a3; \
t4 a4; \
t5 a5; \
t6 a6; \
t7 a7;
#endif
#endif
#ifdef IS_STDC
# undef IS_STDC
#endif
#ifdef _AIX
# include <sys/select.h>
#endif
#ifdef __sgi
# include <bstring.h>
#endif
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/time.h>
#ifndef ultrix
#include <sys/socket.h>
#endif
#if defined(VMS) && !defined(FD_SETSIZE)
# define FD_SETSIZE 64
#endif
/*
* Sigh, GCC v2 complains when using undefined struct tags
* in function prototypes...
*/
#if defined(__GNUC__) && !defined(INADDR_ANY)
# define __STRUCT_IN_ADDR_P void *
#else
#ifdef INET6
# define __STRUCT_IN_ADDR_P struct in6_addr *
#else
# define __STRUCT_IN_ADDR_P struct in_addr *
#endif
#endif
#if defined(__GNUC__) && !defined(DST_NONE) && !defined(linux)
# define __STRUCT_TIMEVAL_P void *
#else
# define __STRUCT_TIMEVAL_P struct timeval *
#endif
#if defined(__sgi) && defined(_POSIX_SOURCE)
# undef __STRUCT_TIMEVAL_P
# define __STRUCT_TIMEVAL_P void *
#endif
#ifndef IDBUFSIZE
# define IDBUFSIZE 2048
#endif
#ifndef IDPORT
# define IDPORT 113
#endif
typedef struct
{
int fd;
char buf[IDBUFSIZE];
} ident_t;
typedef struct {
int lport; /* Local port */
int fport; /* Far (remote) port */
char *identifier; /* Normally user name */
char *opsys; /* OS */
char *charset; /* Charset (what did you expect?) */
} IDENT; /* For higher-level routines */
/* Low-level calls and macros */
#define id_fileno(ID) ((ID)->fd)
extern ident_t * id_open __P((__STRUCT_IN_ADDR_P laddr,
__STRUCT_IN_ADDR_P faddr,
__STRUCT_TIMEVAL_P timeout));
extern int id_close __P((ident_t *id));
extern int id_query __P((ident_t *id,
int lport,
int fport,
__STRUCT_TIMEVAL_P timeout));
extern int id_parse __P((ident_t *id,
__STRUCT_TIMEVAL_P timeout,
int *lport,
int *fport,
char **identifier,
char **opsys,
char **charset));
/* High-level calls */
extern IDENT *ident_lookup __P((int fd, int timeout));
extern char *ident_id __P((int fd, int timeout));
extern IDENT *ident_query __P(( __STRUCT_IN_ADDR_P laddr, __STRUCT_IN_ADDR_P raddr, int lport, int rport, int timeout));
extern void ident_free __P((IDENT *id));
extern char _id_version[];
#ifdef IN_LIBIDENT_SRC
extern char *id_strdup __P((char *str));
extern char *id_strtok __P((char *cp, char *cs, char *dc));
#endif
#ifdef __cplusplus
}
#endif
#endif
|