Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 166230 Details for
Bug 237593
mail-mta/exim-4.69 fails to compile with message iconv.h: No such file or directory
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Second build failure instructed me to attach this file to the bug report.
ccywFTAJ.out (text/plain), 251.94 KB, created by
Tom Lloyd
on 2008-09-24 00:47:19 UTC
(
hide
)
Description:
Second build failure instructed me to attach this file to the bug report.
Filename:
MIME Type:
Creator:
Tom Lloyd
Created:
2008-09-24 00:47:19 UTC
Size:
251.94 KB
patch
obsolete
>// /usr/libexec/gcc/powerpc-gentoo-linux-uclibc/3.4.6/cc1 -fpreprocessed /var/tmp/ccache/malware.tmp.muttley.7668.i -fPIE -fstack-protector -fstack-protector-all -quiet -dumpbase malware.tmp.muttley.7668.i -mcpu=603e -auxbase-strip /var/tmp/ccache/tmp.hash.muttley.7668.o -O2 -o - -frandom-seed=0 ># 1 "malware.c" ># 1 "<built-in>" ># 1 "<command line>" ># 1 "malware.c" ># 12 "malware.c" ># 1 "exim.h" 1 ># 23 "exim.h" ># 1 "os.h" 1 ># 21 "os.h" >typedef struct flock flock_t; ># 50 "os.h" >struct ip_address_item; >extern struct ip_address_item *os_find_running_interfaces_linux(void); ># 24 "exim.h" 2 ># 50 "exim.h" ># 1 "/usr/include/ctype.h" 1 3 4 ># 27 "/usr/include/ctype.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 262 "/usr/include/features.h" 3 4 ># 1 "/usr/include/bits/uClibc_config.h" 1 3 4 ># 263 "/usr/include/features.h" 2 3 4 ># 303 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 304 "/usr/include/features.h" 2 3 4 ># 28 "/usr/include/ctype.h" 2 3 4 ># 1 "/usr/include/bits/types.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 213 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 30 "/usr/include/bits/types.h" 2 3 4 ># 1 "/usr/include/bits/kernel_types.h" 1 3 4 ># 40 "/usr/include/bits/kernel_types.h" 3 4 >typedef unsigned int __kernel_dev_t; >typedef unsigned int __kernel_ino_t; >typedef unsigned int __kernel_mode_t; >typedef unsigned short __kernel_nlink_t; >typedef long __kernel_off_t; >typedef int __kernel_pid_t; >typedef unsigned int __kernel_uid_t; >typedef unsigned int __kernel_gid_t; >typedef unsigned int __kernel_size_t; >typedef int __kernel_ssize_t; >typedef long __kernel_ptrdiff_t; >typedef long __kernel_time_t; >typedef long __kernel_suseconds_t; >typedef long __kernel_clock_t; >typedef int __kernel_daddr_t; >typedef char * __kernel_caddr_t; >typedef short __kernel_ipc_pid_t; >typedef unsigned short __kernel_uid16_t; >typedef unsigned short __kernel_gid16_t; >typedef unsigned int __kernel_uid32_t; >typedef unsigned int __kernel_gid32_t; >typedef unsigned int __kernel_old_uid_t; >typedef unsigned int __kernel_old_gid_t; >typedef __kernel_dev_t __kernel_old_dev_t; >typedef long long __kernel_loff_t; > > >typedef struct { > int val[2]; >} __kernel_fsid_t; ># 31 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short __u_short; >typedef unsigned int __u_int; >typedef unsigned long __u_long; > >__extension__ typedef unsigned long long int __u_quad_t; >__extension__ typedef long long int __quad_t; ># 50 "/usr/include/bits/types.h" 3 4 >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > >typedef __quad_t *__qaddr_t; > >typedef __u_quad_t __dev_t; >typedef __u_int __uid_t; >typedef __u_int __gid_t; >typedef __u_long __ino_t; >typedef __u_int __mode_t; >typedef __u_int __nlink_t; >typedef long int __off_t; >typedef __quad_t __loff_t; >typedef int __pid_t; >typedef int __ssize_t; >typedef __u_long __rlim_t; >typedef __u_quad_t __rlim64_t; >typedef __u_int __id_t; > >typedef struct > { > int __val[2]; > } __fsid_t; > > >typedef int __daddr_t; >typedef char *__caddr_t; >typedef long int __time_t; >typedef unsigned int __useconds_t; >typedef long int __suseconds_t; >typedef long int __swblk_t; > >typedef long int __clock_t; > > >typedef int __clockid_t; > > >typedef int __timer_t; > > > > > > >typedef int __key_t; > > >typedef __kernel_ipc_pid_t __ipc_pid_t; > > > >typedef long int __blksize_t; > > > > >typedef long int __blkcnt_t; >typedef __quad_t __blkcnt64_t; > > >typedef __u_long __fsblkcnt_t; >typedef __u_quad_t __fsblkcnt64_t; > > >typedef __u_long __fsfilcnt_t; >typedef __u_quad_t __fsfilcnt64_t; > > >typedef __u_quad_t __ino64_t; > > >typedef __loff_t __off64_t; > > >typedef int __intptr_t; > > >typedef unsigned int __socklen_t; > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 68 "/usr/include/bits/sched.h" 3 4 >struct __sched_param > { > int __sched_priority; > }; ># 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 > > >struct _pthread_fastlock >{ > long int __status; > int __spinlock; > >}; > > > >typedef struct _pthread_descr_struct *_pthread_descr; > > > > > >typedef struct __pthread_attr_s >{ > int __detachstate; > int __schedpolicy; > struct __sched_param __schedparam; > int __inheritsched; > int __scope; > size_t __guardsize; > int __stackaddr_set; > void *__stackaddr; > size_t __stacksize; >} pthread_attr_t; > > > >typedef struct >{ > struct _pthread_fastlock __c_lock; > _pthread_descr __c_waiting; >} pthread_cond_t; > > > >typedef struct >{ > int __dummy; >} pthread_condattr_t; > > >typedef unsigned int pthread_key_t; > > > > > >typedef struct >{ > int __m_reserved; > int __m_count; > _pthread_descr __m_owner; > int __m_kind; > struct _pthread_fastlock __m_lock; >} pthread_mutex_t; > > > >typedef struct >{ > int __mutexkind; >} pthread_mutexattr_t; > > > >typedef int pthread_once_t; ># 140 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; ># 141 "/usr/include/bits/types.h" 2 3 4 ># 29 "/usr/include/ctype.h" 2 3 4 ># 41 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = (1 << (0)), > _ISlower = (1 << (1)), > _ISalpha = (1 << (2)), > _ISdigit = (1 << (3)), > _ISxdigit = (1 << (4)), > _ISspace = (1 << (5)), > _ISprint = (1 << (6)), > _ISgraph = (1 << (7)), > _ISblank = (1 << (8)), > _IScntrl = (1 << (9)), > _ISpunct = (1 << (10)), > _ISalnum = (1 << (11)) >}; > > > > ># 1 "/usr/include/bits/uClibc_touplow.h" 1 3 4 ># 37 "/usr/include/bits/uClibc_touplow.h" 3 4 >typedef __uint16_t __ctype_mask_t; > > > >typedef __int16_t __ctype_touplow_t; ># 61 "/usr/include/ctype.h" 2 3 4 ># 103 "/usr/include/ctype.h" 3 4 >extern const __ctype_mask_t *__C_ctype_b; >extern const __ctype_touplow_t *__C_ctype_toupper; >extern const __ctype_touplow_t *__C_ctype_tolower; ># 123 "/usr/include/ctype.h" 3 4 >extern const __ctype_mask_t *__ctype_b; >extern const __ctype_touplow_t *__ctype_toupper; >extern const __ctype_touplow_t *__ctype_tolower; ># 143 "/usr/include/ctype.h" 3 4 >extern int isxlower(int c) ; >extern int isxupper(int c) ; ># 155 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) ; >extern int isalpha (int) ; >extern int iscntrl (int) ; >extern int isdigit (int) ; >extern int islower (int) ; >extern int isgraph (int) ; >extern int isprint (int) ; >extern int ispunct (int) ; >extern int isspace (int) ; >extern int isupper (int) ; >extern int isxdigit (int) ; > > > >extern int tolower (int __c) ; > > >extern int toupper (int __c) ; ># 201 "/usr/include/ctype.h" 3 4 >extern int isascii (int __c) ; > > > >extern int toascii (int __c) ; > > > >extern int _toupper (int) ; >extern int _tolower (int) ; ># 382 "/usr/include/ctype.h" 3 4 ># 51 "exim.h" 2 ># 1 "/usr/include/locale.h" 1 3 4 ># 29 "/usr/include/locale.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 30 "/usr/include/locale.h" 2 3 4 ># 1 "/usr/include/bits/uClibc_locale.h" 1 3 4 ># 31 "/usr/include/locale.h" 2 3 4 ># 54 "/usr/include/locale.h" 3 4 >struct lconv >{ > > > char *decimal_point; > char *thousands_sep; > > > > > > char *grouping; > > > > > > char *int_curr_symbol; > char *currency_symbol; > char *mon_decimal_point; > char *mon_thousands_sep; > char *mon_grouping; > char *positive_sign; > char *negative_sign; > char int_frac_digits; > char frac_digits; > > char p_cs_precedes; > > char p_sep_by_space; > > char n_cs_precedes; > > char n_sep_by_space; > > > > > > > char p_sign_posn; > char n_sign_posn; ># 114 "/usr/include/locale.h" 3 4 > char __int_p_cs_precedes; > char __int_p_sep_by_space; > char __int_n_cs_precedes; > char __int_n_sep_by_space; > char __int_p_sign_posn; > char __int_n_sign_posn; > >}; > > > > > >extern char *setlocale (int __category, __const char *__locale) ; > > >extern struct lconv *localeconv (void) ; ># 229 "/usr/include/locale.h" 3 4 ># 52 "exim.h" 2 ># 1 "/usr/include/math.h" 1 3 4 ># 29 "/usr/include/math.h" 3 4 > > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 34 "/usr/include/math.h" 2 3 4 > > > > > > ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 41 "/usr/include/math.h" 2 3 4 ># 63 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 54 "/usr/include/bits/mathcalls.h" 3 4 >extern double acos (double __x) ; extern double __acos (double __x) ; > >extern double asin (double __x) ; extern double __asin (double __x) ; > >extern double atan (double __x) ; extern double __atan (double __x) ; > >extern double atan2 (double __y, double __x) ; extern double __atan2 (double __y, double __x) ; > > >extern double cos (double __x) ; extern double __cos (double __x) ; > >extern double sin (double __x) ; extern double __sin (double __x) ; > >extern double tan (double __x) ; extern double __tan (double __x) ; ># 78 "/usr/include/bits/mathcalls.h" 3 4 >extern double cosh (double __x) ; extern double __cosh (double __x) ; > >extern double sinh (double __x) ; extern double __sinh (double __x) ; > >extern double tanh (double __x) ; extern double __tanh (double __x) ; > > > >extern double acosh (double __x) ; extern double __acosh (double __x) ; > >extern double asinh (double __x) ; extern double __asinh (double __x) ; > >extern double atanh (double __x) ; extern double __atanh (double __x) ; > > > > > >extern double exp (double __x) ; extern double __exp (double __x) ; ># 106 "/usr/include/bits/mathcalls.h" 3 4 >extern double frexp (double __x, int *__exponent) ; extern double __frexp (double __x, int *__exponent) ; > > >extern double ldexp (double __x, int __exponent) ; extern double __ldexp (double __x, int __exponent) ; > > >extern double log (double __x) ; extern double __log (double __x) ; > > >extern double log10 (double __x) ; extern double __log10 (double __x) ; > > >extern double modf (double __x, double *__iptr) ; extern double __modf (double __x, double *__iptr) ; > > > >extern double expm1 (double __x) ; extern double __expm1 (double __x) ; > > >extern double log1p (double __x) ; extern double __log1p (double __x) ; > > >extern double logb (double __x) ; extern double __logb (double __x) ; ># 143 "/usr/include/bits/mathcalls.h" 3 4 >extern double pow (double __x, double __y) ; extern double __pow (double __x, double __y) ; > > >extern double sqrt (double __x) ; extern double __sqrt (double __x) ; > > > >extern double hypot (double __x, double __y) ; extern double __hypot (double __x, double __y) ; > > > > >extern double cbrt (double __x) ; extern double __cbrt (double __x) ; > > > > > > >extern double ceil (double __x) ; extern double __ceil (double __x) ; > > >extern double fabs (double __x) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__const__)); > > >extern double floor (double __x) ; extern double __floor (double __x) ; > > >extern double fmod (double __x, double __y) ; extern double __fmod (double __x, double __y) ; > > > > >extern int __isinf (double __value) __attribute__ ((__const__)); > > >extern int __finite (double __value) __attribute__ ((__const__)); > > > > >extern int isinf (double __value) __attribute__ ((__const__)); > > >extern int finite (double __value) __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) ; extern double __drem (double __x, double __y) ; > > > >extern double significand (double __x) ; extern double __significand (double __x) ; > > > > >extern double copysign (double __x, double __y) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__const__)); ># 209 "/usr/include/bits/mathcalls.h" 3 4 >extern int __isnan (double __value) __attribute__ ((__const__)); > > > >extern int isnan (double __value) __attribute__ ((__const__)); > > >extern double j0 (double) ; extern double __j0 (double) ; >extern double j1 (double) ; extern double __j1 (double) ; >extern double jn (int, double) ; extern double __jn (int, double) ; >extern double y0 (double) ; extern double __y0 (double) ; >extern double y1 (double) ; extern double __y1 (double) ; >extern double yn (int, double) ; extern double __yn (int, double) ; > > > > > >extern double erf (double) ; extern double __erf (double) ; >extern double erfc (double) ; extern double __erfc (double) ; >extern double lgamma (double) ; extern double __lgamma (double) ; ># 238 "/usr/include/bits/mathcalls.h" 3 4 >extern double gamma (double) ; extern double __gamma (double) ; > > > > > > >extern double lgamma_r (double, int *__signgamp) ; extern double __lgamma_r (double, int *__signgamp) ; > > > > > > >extern double rint (double __x) ; extern double __rint (double __x) ; > > >extern double nextafter (double __x, double __y) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__const__)); > > > > > >extern double remainder (double __x, double __y) ; extern double __remainder (double __x, double __y) ; > > > >extern double scalb (double __x, double __n) ; extern double __scalb (double __x, double __n) ; > > > > >extern double scalbn (double __x, int __n) ; extern double __scalbn (double __x, int __n) ; > > > >extern int ilogb (double __x) ; extern int __ilogb (double __x) ; ># 64 "/usr/include/math.h" 2 3 4 ># 82 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 54 "/usr/include/bits/mathcalls.h" 3 4 >extern float acosf (float __x) ; extern float __acosf (float __x) ; > >extern float asinf (float __x) ; extern float __asinf (float __x) ; > >extern float atanf (float __x) ; extern float __atanf (float __x) ; > >extern float atan2f (float __y, float __x) ; extern float __atan2f (float __y, float __x) ; > > >extern float cosf (float __x) ; extern float __cosf (float __x) ; > >extern float sinf (float __x) ; extern float __sinf (float __x) ; > >extern float tanf (float __x) ; extern float __tanf (float __x) ; ># 78 "/usr/include/bits/mathcalls.h" 3 4 >extern float coshf (float __x) ; extern float __coshf (float __x) ; > >extern float sinhf (float __x) ; extern float __sinhf (float __x) ; > >extern float tanhf (float __x) ; extern float __tanhf (float __x) ; > > > >extern float acoshf (float __x) ; extern float __acoshf (float __x) ; > >extern float asinhf (float __x) ; extern float __asinhf (float __x) ; > >extern float atanhf (float __x) ; extern float __atanhf (float __x) ; > > > > > >extern float expf (float __x) ; extern float __expf (float __x) ; ># 106 "/usr/include/bits/mathcalls.h" 3 4 >extern float frexpf (float __x, int *__exponent) ; extern float __frexpf (float __x, int *__exponent) ; > > >extern float ldexpf (float __x, int __exponent) ; extern float __ldexpf (float __x, int __exponent) ; > > >extern float logf (float __x) ; extern float __logf (float __x) ; > > >extern float log10f (float __x) ; extern float __log10f (float __x) ; > > >extern float modff (float __x, float *__iptr) ; extern float __modff (float __x, float *__iptr) ; > > > >extern float expm1f (float __x) ; extern float __expm1f (float __x) ; > > >extern float log1pf (float __x) ; extern float __log1pf (float __x) ; > > >extern float logbf (float __x) ; extern float __logbf (float __x) ; ># 143 "/usr/include/bits/mathcalls.h" 3 4 >extern float powf (float __x, float __y) ; extern float __powf (float __x, float __y) ; > > >extern float sqrtf (float __x) ; extern float __sqrtf (float __x) ; > > > >extern float hypotf (float __x, float __y) ; extern float __hypotf (float __x, float __y) ; > > > > >extern float cbrtf (float __x) ; extern float __cbrtf (float __x) ; > > > > > > >extern float ceilf (float __x) ; extern float __ceilf (float __x) ; > > >extern float fabsf (float __x) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__const__)); > > >extern float floorf (float __x) ; extern float __floorf (float __x) ; > > >extern float fmodf (float __x, float __y) ; extern float __fmodf (float __x, float __y) ; > > > > >extern int __isinff (float __value) __attribute__ ((__const__)); > > >extern int __finitef (float __value) __attribute__ ((__const__)); > > > > >extern int isinff (float __value) __attribute__ ((__const__)); > > >extern int finitef (float __value) __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) ; extern float __dremf (float __x, float __y) ; > > > >extern float significandf (float __x) ; extern float __significandf (float __x) ; > > > > >extern float copysignf (float __x, float __y) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__const__)); ># 209 "/usr/include/bits/mathcalls.h" 3 4 >extern int __isnanf (float __value) __attribute__ ((__const__)); > > > >extern int isnanf (float __value) __attribute__ ((__const__)); > > >extern float j0f (float) ; extern float __j0f (float) ; >extern float j1f (float) ; extern float __j1f (float) ; >extern float jnf (int, float) ; extern float __jnf (int, float) ; >extern float y0f (float) ; extern float __y0f (float) ; >extern float y1f (float) ; extern float __y1f (float) ; >extern float ynf (int, float) ; extern float __ynf (int, float) ; > > > > > >extern float erff (float) ; extern float __erff (float) ; >extern float erfcf (float) ; extern float __erfcf (float) ; >extern float lgammaf (float) ; extern float __lgammaf (float) ; ># 238 "/usr/include/bits/mathcalls.h" 3 4 >extern float gammaf (float) ; extern float __gammaf (float) ; > > > > > > >extern float lgammaf_r (float, int *__signgamp) ; extern float __lgammaf_r (float, int *__signgamp) ; > > > > > > >extern float rintf (float __x) ; extern float __rintf (float __x) ; > > >extern float nextafterf (float __x, float __y) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__const__)); > > > > > >extern float remainderf (float __x, float __y) ; extern float __remainderf (float __x, float __y) ; > > > >extern float scalbf (float __x, float __n) ; extern float __scalbf (float __x, float __n) ; > > > > >extern float scalbnf (float __x, int __n) ; extern float __scalbnf (float __x, int __n) ; > > > >extern int ilogbf (float __x) ; extern int __ilogbf (float __x) ; ># 83 "/usr/include/math.h" 2 3 4 ># 113 "/usr/include/math.h" 3 4 >extern int signgam; ># 240 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 265 "/usr/include/math.h" 3 4 >struct exception > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > > > >extern int matherr (struct exception *__exc); ># 411 "/usr/include/math.h" 3 4 ># 53 "exim.h" 2 ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 23 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 103 "/usr/include/bits/sigset.h" 3 4 >extern int __sigismember (__const __sigset_t *, int); >extern int __sigaddset (__sigset_t *, int); >extern int __sigdelset (__sigset_t *, int); ># 34 "/usr/include/signal.h" 2 3 4 > > > > > > >typedef __sig_atomic_t sig_atomic_t; > > > > > > > >typedef __sigset_t sigset_t; > > > > > > > ># 1 "/usr/include/bits/signum.h" 1 3 4 ># 57 "/usr/include/signal.h" 2 3 4 ># 71 "/usr/include/signal.h" 3 4 >typedef void (*__sighandler_t) (int); > > > > >extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) > ; ># 87 "/usr/include/signal.h" 3 4 >extern __sighandler_t signal (int __sig, __sighandler_t __handler) ; ># 110 "/usr/include/signal.h" 3 4 >extern int kill (__pid_t __pid, int __sig) ; > > > > > > >extern int killpg (__pid_t __pgrp, int __sig) ; > > > >extern int raise (int __sig) ; > > > >extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) ; >extern int gsignal (int __sig) ; > > > > >extern void psignal (int __sig, __const char *__s) ; ># 140 "/usr/include/signal.h" 3 4 >extern int __sigpause (int __sig_or_mask, int __is_sig) ; > > > > >extern int sigpause (int __mask) ; ># 168 "/usr/include/signal.h" 3 4 >extern int sigblock (int __mask) ; > > >extern int sigsetmask (int __mask) ; > > >extern int siggetmask (void) ; ># 188 "/usr/include/signal.h" 3 4 >typedef __sighandler_t sig_t; > > > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 118 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 197 "/usr/include/signal.h" 2 3 4 > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 > > > > > > > >typedef union sigval > { > int sival_int; > void *sival_ptr; > } sigval_t; ># 51 "/usr/include/bits/siginfo.h" 3 4 >typedef struct siginfo > { > int si_signo; > int si_errno; > > int si_code; > > union > { > int _pad[((128 / sizeof (int)) - 3)]; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > } _kill; > > > struct > { > unsigned int _timer1; > unsigned int _timer2; > } _timer; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > sigval_t si_sigval; > } _rt; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > int si_status; > __clock_t si_utime; > __clock_t si_stime; > } _sigchld; > > > struct > { > void *si_addr; > } _sigfault; > > > struct > { > long int si_band; > int si_fd; > } _sigpoll; > } _sifields; > } siginfo_t; ># 128 "/usr/include/bits/siginfo.h" 3 4 >enum >{ > SI_ASYNCNL = -6, > > SI_SIGIO, > > SI_ASYNCIO, > > SI_MESGQ, > > SI_TIMER, > > SI_QUEUE, > > SI_USER, > > SI_KERNEL = 0x80 > >}; > > > >enum >{ > ILL_ILLOPC = 1, > > ILL_ILLOPN, > > ILL_ILLADR, > > ILL_ILLTRP, > > ILL_PRVOPC, > > ILL_PRVREG, > > ILL_COPROC, > > ILL_BADSTK > >}; > > >enum >{ > FPE_INTDIV = 1, > > FPE_INTOVF, > > FPE_FLTDIV, > > FPE_FLTOVF, > > FPE_FLTUND, > > FPE_FLTRES, > > FPE_FLTINV, > > FPE_FLTSUB > >}; > > >enum >{ > SEGV_MAPERR = 1, > > SEGV_ACCERR > >}; > > >enum >{ > BUS_ADRALN = 1, > > BUS_ADRERR, > > BUS_OBJERR > >}; > > >enum >{ > TRAP_BRKPT = 1, > > TRAP_TRACE > >}; > > >enum >{ > CLD_EXITED = 1, > > CLD_KILLED, > > CLD_DUMPED, > > CLD_TRAPPED, > > CLD_STOPPED, > > CLD_CONTINUED > >}; > > >enum >{ > POLL_IN = 1, > > POLL_OUT, > > POLL_MSG, > > POLL_ERR, > > POLL_PRI, > > POLL_HUP > >}; ># 271 "/usr/include/bits/siginfo.h" 3 4 >struct __pthread_attr_s; > >typedef struct sigevent > { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > > union > { > int _pad[((64 / sizeof (int)) - 3)]; > > struct > { > void (*_function) (sigval_t); > struct __pthread_attr_s *_attribute; > } _sigev_thread; > } _sigev_un; > } sigevent_t; > > > > > > >enum >{ > SIGEV_SIGNAL = 0, > > SIGEV_NONE, > > SIGEV_THREAD > >}; ># 200 "/usr/include/signal.h" 2 3 4 > > > >extern int sigemptyset (sigset_t *__set) ; > > >extern int sigfillset (sigset_t *__set) ; > > >extern int sigaddset (sigset_t *__set, int __signo) ; > > >extern int sigdelset (sigset_t *__set, int __signo) ; > > >extern int sigismember (__const sigset_t *__set, int __signo) ; ># 232 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/sigaction.h" 1 3 4 ># 25 "/usr/include/bits/sigaction.h" 3 4 >struct sigaction > { > > > union > { > > __sighandler_t sa_handler; > > void (*sa_sigaction) (int, siginfo_t *, void *); > } > __sigaction_handler; > > > > > > > > __sigset_t sa_mask; > > > int sa_flags; > > > void (*sa_restorer) (void); > }; ># 233 "/usr/include/signal.h" 2 3 4 > > >extern int sigprocmask (int __how, __const sigset_t *__restrict __set, > sigset_t *__restrict __oset) ; > > > >extern int sigsuspend (__const sigset_t *__set) ; > > >extern int sigaction (int __sig, __const struct sigaction *__restrict __act, > struct sigaction *__restrict __oact) ; > > >extern int sigpending (sigset_t *__set) ; > > > >extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) > ; > > > >extern int sigwaitinfo (__const sigset_t *__restrict __set, > siginfo_t *__restrict __info) ; > > > >extern int sigtimedwait (__const sigset_t *__restrict __set, > siginfo_t *__restrict __info, > __const struct timespec *__restrict __timeout) > ; > > > >extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) > ; ># 284 "/usr/include/signal.h" 3 4 >struct sigvec > { > __sighandler_t sv_handler; > int sv_mask; > > int sv_flags; > > }; ># 304 "/usr/include/signal.h" 3 4 >extern int sigvec (int __sig, __const struct sigvec *__vec, > struct sigvec *__ovec) ; > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 28 "/usr/include/bits/sigcontext.h" 3 4 ># 1 "/usr/include/asm/sigcontext.h" 1 3 4 ># 10 "/usr/include/asm/sigcontext.h" 3 4 ># 1 "/usr/include/asm/ptrace.h" 1 3 4 ># 29 "/usr/include/asm/ptrace.h" 3 4 >struct pt_regs { > unsigned long gpr[32]; > unsigned long nip; > unsigned long msr; > unsigned long orig_gpr3; > unsigned long ctr; > unsigned long link; > unsigned long xer; > unsigned long ccr; > > > > unsigned long mq; > > > unsigned long trap; > > > unsigned long dar; > unsigned long dsisr; > unsigned long result; >}; ># 11 "/usr/include/asm/sigcontext.h" 2 3 4 > > > > >struct sigcontext { > unsigned long _unused[4]; > int signal; > > > > unsigned long handler; > unsigned long oldmask; > struct pt_regs *regs; ># 49 "/usr/include/asm/sigcontext.h" 3 4 >}; ># 29 "/usr/include/bits/sigcontext.h" 2 3 4 ># 310 "/usr/include/signal.h" 2 3 4 > > >extern int sigreturn (struct sigcontext *__scp) ; ># 322 "/usr/include/signal.h" 3 4 >extern int siginterrupt (int __sig, int __interrupt) ; > ># 1 "/usr/include/bits/sigstack.h" 1 3 4 ># 26 "/usr/include/bits/sigstack.h" 3 4 >struct sigstack > { > void *ss_sp; > int ss_onstack; > }; > > > >enum >{ > SS_ONSTACK = 1, > > SS_DISABLE > >}; ># 50 "/usr/include/bits/sigstack.h" 3 4 >typedef struct sigaltstack > { > void *ss_sp; > int ss_flags; > size_t ss_size; > } stack_t; ># 325 "/usr/include/signal.h" 2 3 4 > > > > > > > >extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) ; > > > >extern int sigaltstack (__const struct sigaltstack *__restrict __ss, > struct sigaltstack *__restrict __oss) ; ># 360 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/sigthread.h" 1 3 4 ># 31 "/usr/include/bits/sigthread.h" 3 4 >extern int pthread_sigmask (int __how, > __const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask); > > >extern int pthread_kill (pthread_t __thread_id, int __signo) ; ># 361 "/usr/include/signal.h" 2 3 4 > > > > > > >extern int __libc_current_sigrtmin (void) ; > >extern int __libc_current_sigrtmax (void) ; ># 54 "exim.h" 2 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 105 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stdarg.h" 3 4 >typedef __gnuc_va_list va_list; ># 55 "exim.h" 2 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 151 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 325 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 3 4 >typedef long int wchar_t; ># 56 "exim.h" 2 ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 > > > > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 35 "/usr/include/stdio.h" 2 3 4 ># 44 "/usr/include/stdio.h" 3 4 > > >typedef struct __STDIO_FILE_STRUCT FILE; ># 62 "/usr/include/stdio.h" 3 4 >typedef struct __STDIO_FILE_STRUCT __FILE; ># 72 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/uClibc_stdio.h" 1 3 4 ># 81 "/usr/include/bits/uClibc_stdio.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 82 "/usr/include/bits/uClibc_stdio.h" 2 3 4 > > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 52 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 354 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 3 4 >typedef unsigned int wint_t; ># 53 "/usr/include/wchar.h" 2 3 4 > ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 55 "/usr/include/wchar.h" 2 3 4 ># 81 "/usr/include/wchar.h" 3 4 >typedef struct >{ > wchar_t __mask; > wchar_t __wc; >} __mbstate_t; ># 88 "/usr/include/bits/uClibc_stdio.h" 2 3 4 ># 119 "/usr/include/bits/uClibc_stdio.h" 3 4 ># 1 "/usr/include/bits/uClibc_mutex.h" 1 3 4 ># 19 "/usr/include/bits/uClibc_mutex.h" 3 4 ># 1 "/usr/include/pthread.h" 1 3 4 ># 20 "/usr/include/pthread.h" 3 4 ># 1 "/usr/include/sched.h" 1 3 4 ># 29 "/usr/include/sched.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 30 "/usr/include/sched.h" 2 3 4 > > ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 47 "/usr/include/bits/sched.h" 3 4 >struct sched_param > { > int __sched_priority; > }; > > > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg) ; ># 33 "/usr/include/sched.h" 2 3 4 > > > > > > > >extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) > ; > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) ; > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > __const struct sched_param *__param) ; > > >extern int sched_getscheduler (__pid_t __pid) ; > > >extern int sched_yield (void) ; > > >extern int sched_get_priority_max (int __algorithm) ; > > >extern int sched_get_priority_min (int __algorithm) ; > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) ; ># 21 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 30 "/usr/include/time.h" 3 4 ># 38 "/usr/include/time.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 39 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 38 "/usr/include/bits/time.h" 3 4 ># 1 "/usr/include/bits/uClibc_clk_tck.h" 1 3 4 ># 39 "/usr/include/bits/time.h" 2 3 4 ># 43 "/usr/include/time.h" 2 3 4 ># 58 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; ># 74 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; ># 92 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 104 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 129 "/usr/include/time.h" 3 4 > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > > long int tm_gmtoff; > __const char *tm_zone; > > > > > >}; ># 161 "/usr/include/time.h" 3 4 >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; ># 180 "/usr/include/time.h" 3 4 > > > >extern clock_t clock (void) ; > > >extern time_t time (time_t *__timer) ; > > > >extern double difftime (time_t __time1, time_t __time0) > __attribute__ ((__const__)); > > > >extern time_t mktime (struct tm *__tp) ; > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp) ; ># 243 "/usr/include/time.h" 3 4 > > > >extern struct tm *gmtime (__const time_t *__timer) ; > > > >extern struct tm *localtime (__const time_t *__timer) ; > > > > > >extern struct tm *gmtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) ; > > > >extern struct tm *localtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) ; > > > > > >extern char *asctime (__const struct tm *__tp) ; > > >extern char *ctime (__const time_t *__timer) ; > > > > > > > >extern char *asctime_r (__const struct tm *__restrict __tp, > char *__restrict __buf) ; > > >extern char *ctime_r (__const time_t *__restrict __timer, > char *__restrict __buf) ; ># 299 "/usr/include/time.h" 3 4 >extern char *tzname[2]; > > > >extern void tzset (void) ; > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (__const time_t *__when) ; ># 329 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) ; > > >extern time_t timelocal (struct tm *__tp) ; > > >extern int dysize (int __year) __attribute__ ((__const__)); ># 344 "/usr/include/time.h" 3 4 >extern int nanosleep (__const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ; > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ; > > >extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) ; ># 438 "/usr/include/time.h" 3 4 ># 22 "/usr/include/pthread.h" 2 3 4 > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 26 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/initspin.h" 1 3 4 ># 27 "/usr/include/pthread.h" 2 3 4 ># 62 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > >enum >{ > PTHREAD_MUTEX_ADAPTIVE_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_TIMED_NP ># 103 "/usr/include/pthread.h" 3 4 >}; > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; ># 134 "/usr/include/pthread.h" 3 4 >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 166 "/usr/include/pthread.h" 3 4 >extern int pthread_create (pthread_t *__restrict __thread_id, > __const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) ; > > >extern pthread_t pthread_self (void) ; > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) ; > > >extern void pthread_exit (void *__retval) > __attribute__ ((__noreturn__)); > > > > >extern int pthread_join (pthread_t __th, void **__thread_return) ; > > > > > >extern int pthread_detach (pthread_t __th) ; > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) ; > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) ; > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) ; > > >extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, > int *__detachstate) ; > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > __const struct sched_param *__restrict > __param) ; > > >extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict > __attr, > struct sched_param *__restrict __param) > ; > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > ; > > >extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > ; > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) ; > > >extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > ; > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > ; > > >extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, > int *__restrict __scope) ; ># 263 "/usr/include/pthread.h" 3 4 >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) ; > > >extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > ; ># 291 "/usr/include/pthread.h" 3 4 >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) ; > > >extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > ; ># 312 "/usr/include/pthread.h" 3 4 >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > __const struct sched_param *__param) > ; > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > ; ># 346 "/usr/include/pthread.h" 3 4 >extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex, > __const pthread_mutexattr_t *__restrict > __mutex_attr) ; > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) ; > > >extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) ; > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) ; ># 367 "/usr/include/pthread.h" 3 4 >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) ; > > > > > > >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) ; > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) ; > > >extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) ; > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) ; ># 405 "/usr/include/pthread.h" 3 4 >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > __const pthread_condattr_t *__restrict > __cond_attr) ; > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) ; > > >extern int pthread_cond_signal (pthread_cond_t *__cond) ; > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) ; > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex) ; > > > > > >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) ; > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) ; > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) ; > > >extern int pthread_condattr_getpshared (__const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) ; > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) ; ># 577 "/usr/include/pthread.h" 3 4 >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) ; > > >extern int pthread_key_delete (pthread_key_t __key) ; > > >extern int pthread_setspecific (pthread_key_t __key, > __const void *__pointer) ; > > >extern void *pthread_getspecific (pthread_key_t __key) ; ># 597 "/usr/include/pthread.h" 3 4 >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)) ; > > > > > > >extern int pthread_setcancelstate (int __state, int *__oldstate) ; > > > >extern int pthread_setcanceltype (int __type, int *__oldtype) ; > > >extern int pthread_cancel (pthread_t __thread_id) ; > > > > >extern void pthread_testcancel (void) ; ># 631 "/usr/include/pthread.h" 3 4 >extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer, > void (*__routine) (void *), > void *__arg) ; > > > > > > > >extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer, > int __execute) ; ># 697 "/usr/include/pthread.h" 3 4 >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) ; > > > > >extern void pthread_kill_other_threads_np (void) ; ># 20 "/usr/include/bits/uClibc_mutex.h" 2 3 4 ># 1 "/usr/include/bits/uClibc_pthread.h" 1 3 4 ># 21 "/usr/include/bits/uClibc_mutex.h" 2 3 4 ># 120 "/usr/include/bits/uClibc_stdio.h" 2 3 4 ># 170 "/usr/include/bits/uClibc_stdio.h" 3 4 >typedef struct { > __off_t __pos; > > __mbstate_t __mbstate; > > > int __mblen_pending; > >} __STDIO_fpos_t; > > >typedef struct { > __off64_t __pos; > > __mbstate_t __mbstate; > > > int __mblen_pending; > >} __STDIO_fpos64_t; > > > > >typedef __off64_t __offmax_t; > > > > > > > >typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __bufsize); >typedef __ssize_t __io_write_fn(void *__cookie, > __const char *__buf, size_t __bufsize); > > > > >typedef int __io_seek_fn(void *__cookie, __offmax_t *__pos, int __whence); >typedef int __io_close_fn(void *__cookie); > >typedef struct { > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > > > > > > >struct __STDIO_FILE_STRUCT { > unsigned short __modeflags; > > > unsigned char __ungot_width[2]; > > > > > > > int __filedes; > > unsigned char *__bufstart; > unsigned char *__bufend; > unsigned char *__bufpos; > unsigned char *__bufread; > > > unsigned char *__bufgetc_u; > > > unsigned char *__bufputc_u; > > > > > > struct __STDIO_FILE_STRUCT *__nextopen; > > > void *__cookie; > _IO_cookie_io_functions_t __gcs; > > > wchar_t __ungot[2]; > > > __mbstate_t __state; > > > > > > int __user_locking; > pthread_mutex_t __lock; > > > > > >}; ># 384 "/usr/include/bits/uClibc_stdio.h" 3 4 >extern int __fgetc_unlocked(FILE *__stream); >extern int __fputc_unlocked(int __c, FILE *__stream); ># 404 "/usr/include/bits/uClibc_stdio.h" 3 4 >extern FILE *__stdin; ># 463 "/usr/include/bits/uClibc_stdio.h" 3 4 >extern FILE *__stdout; ># 73 "/usr/include/stdio.h" 2 3 4 ># 81 "/usr/include/stdio.h" 3 4 >typedef __STDIO_fpos_t fpos_t; ># 131 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 132 "/usr/include/stdio.h" 2 3 4 > > > >extern FILE *stdin; >extern FILE *stdout; >extern FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) ; > >extern int rename (__const char *__old, __const char *__new) ; ># 157 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile (void); ># 171 "/usr/include/stdio.h" 3 4 >extern char *tmpnam (char *__s) ; > > > > > >extern char *tmpnam_r (char *__s) ; ># 189 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > __attribute__ ((__malloc__)); ># 199 "/usr/include/stdio.h" 3 4 >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); ># 214 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 228 "/usr/include/stdio.h" 3 4 > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes); > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); ># 255 "/usr/include/stdio.h" 3 4 ># 266 "/usr/include/stdio.h" 3 4 >extern FILE *fdopen (int __fd, __const char *__modes) ; ># 289 "/usr/include/stdio.h" 3 4 > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ; > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) ; > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) ; > > >extern void setlinebuf (FILE *__stream) ; ># 316 "/usr/include/stdio.h" 3 4 >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) ; > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) ; > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 3, 0))); ># 383 "/usr/include/stdio.h" 3 4 > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int scanf (__const char *__restrict __format, ...); > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) ; ># 425 "/usr/include/stdio.h" 3 4 > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); ># 449 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 463 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); ># 475 "/usr/include/stdio.h" 3 4 >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); ># 496 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); ># 515 "/usr/include/stdio.h" 3 4 >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); ># 527 "/usr/include/stdio.h" 3 4 >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); > > > > > > >extern char *gets (char *__s); ># 579 "/usr/include/stdio.h" 3 4 > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s); ># 632 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream); ># 644 "/usr/include/stdio.h" 3 4 >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream); > > > > >extern void rewind (FILE *__stream); ># 687 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 710 "/usr/include/stdio.h" 3 4 ># 719 "/usr/include/stdio.h" 3 4 > > >extern void clearerr (FILE *__stream) ; > >extern int feof (FILE *__stream) ; > >extern int ferror (FILE *__stream) ; > > > > >extern void clearerr_unlocked (FILE *__stream) ; >extern int feof_unlocked (FILE *__stream) ; >extern int ferror_unlocked (FILE *__stream) ; ># 741 "/usr/include/stdio.h" 3 4 >extern void perror (__const char *__s); ># 756 "/usr/include/stdio.h" 3 4 >extern int fileno (FILE *__stream) ; > > > > >extern int fileno_unlocked (FILE *__stream) ; ># 771 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes); > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) ; ># 811 "/usr/include/stdio.h" 3 4 >extern void flockfile (FILE *__stream) ; > > > >extern int ftrylockfile (FILE *__stream) ; > > >extern void funlockfile (FILE *__stream) ; ># 858 "/usr/include/stdio.h" 3 4 ># 57 "exim.h" 2 ># 1 "/usr/include/stdlib.h" 1 3 4 ># 35 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 36 "/usr/include/stdlib.h" 2 3 4 ># 95 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; ># 143 "/usr/include/stdlib.h" 3 4 >extern size_t _stdlib_mb_cur_max (void) ; > > > > > > >extern double atof (__const char *__nptr) __attribute__ ((__pure__)); > > >extern int atoi (__const char *__nptr) __attribute__ ((__pure__)); > >extern long int atol (__const char *__nptr) __attribute__ ((__pure__)); > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > __attribute__ ((__pure__)); > > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) ; ># 185 "/usr/include/stdlib.h" 3 4 > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) ; > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > ; > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) ; > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > ; > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) ; > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > ; ># 309 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) ; > > >extern long int a64l (__const char *__s) __attribute__ ((__pure__)); > > > > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 28 "/usr/include/sys/types.h" 3 4 > > > > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > >typedef __ino_t ino_t; ># 61 "/usr/include/sys/types.h" 3 4 >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; ># 99 "/usr/include/sys/types.h" 3 4 >typedef __pid_t pid_t; > > > > >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 146 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 147 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 190 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 212 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 213 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 35 "/usr/include/sys/select.h" 2 3 4 ># 45 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/time.h" 1 3 4 ># 73 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 46 "/usr/include/sys/select.h" 2 3 4 > > > >typedef long int __fd_mask; > > > > > > > >typedef struct > { > > > > > > > __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 89 "/usr/include/sys/select.h" 3 4 > > > > > > > >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout) ; ># 112 "/usr/include/sys/select.h" 3 4 ># 216 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 29 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >static __inline unsigned int gnu_dev_major (unsigned long long int __dev) > ; >__extension__ >static __inline unsigned int gnu_dev_minor (unsigned long long int __dev) > ; >__extension__ >static __inline unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > ; > > >__extension__ static __inline unsigned int >gnu_dev_major (unsigned long long int __dev) >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ static __inline unsigned int >gnu_dev_minor (unsigned long long int __dev) >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ static __inline unsigned long long int >gnu_dev_makedev (unsigned int __major, unsigned int __minor) >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 219 "/usr/include/sys/types.h" 2 3 4 ># 230 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 262 "/usr/include/sys/types.h" 3 4 ># 318 "/usr/include/stdlib.h" 2 3 4 > > > > > > >extern long int random (void) ; > > >extern void srandom (unsigned int __seed) ; > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) ; > > > >extern char *setstate (char *__statebuf) ; > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) ; > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) ; > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) ; > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) ; > > > > > > >extern int rand (void) ; > >extern void srand (unsigned int __seed) ; > > > > >extern int rand_r (unsigned int *__seed) ; ># 390 "/usr/include/stdlib.h" 3 4 >extern double drand48 (void) ; >extern double erand48 (unsigned short int __xsubi[3]) ; > > > >extern long int lrand48 (void) ; >extern long int nrand48 (unsigned short int __xsubi[3]) ; > > >extern long int mrand48 (void) ; >extern long int jrand48 (unsigned short int __xsubi[3]) ; > > >extern void srand48 (long int __seedval) ; >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ; >extern void lcong48 (unsigned short int __param[7]) ; > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) ; >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) ; > > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) ; >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) ; > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) ; >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) ; > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > ; > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) ; > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) ; ># 461 "/usr/include/stdlib.h" 3 4 >extern void *malloc (size_t __size) __attribute__ ((__malloc__)); > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__malloc__)); > > > > > > > >extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__)); > >extern void free (void *__ptr) ; > > > > >extern void cfree (void *__ptr) ; > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > > > > > > > >extern void *alloca (size_t __size) ; ># 484 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) __attribute__ ((__malloc__)); ># 497 "/usr/include/stdlib.h" 3 4 > > >extern void abort (void) __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) ; > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > ; > > > > > > >extern void exit (int __status) __attribute__ ((__noreturn__)); ># 529 "/usr/include/stdlib.h" 3 4 > > >extern char *getenv (__const char *__name) ; > > > > >extern char *__secure_getenv (__const char *__name) ; > > > > > >extern int putenv (char *__string) ; > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > ; > > >extern int unsetenv (__const char *__name) ; ># 568 "/usr/include/stdlib.h" 3 4 >extern int clearenv (void) ; ># 577 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) ; ># 588 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template); ># 607 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) ; ># 616 "/usr/include/stdlib.h" 3 4 >extern int system (__const char *__command); ># 627 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) ; > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); ># 645 "/usr/include/stdlib.h" 3 4 >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar); > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar); > > > >extern int abs (int __x) __attribute__ ((__const__)); >extern long int labs (long int __x) __attribute__ ((__const__)); ># 669 "/usr/include/stdlib.h" 3 4 >extern div_t div (int __numer, int __denom) > __attribute__ ((__const__)); >extern ldiv_t ldiv (long int __numer, long int __denom) > __attribute__ ((__const__)); ># 685 "/usr/include/stdlib.h" 3 4 > > > >extern int mblen (__const char *__s, size_t __n) ; > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) ; > > >extern int wctomb (char *__s, wchar_t __wchar) ; > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) ; > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > ; ># 714 "/usr/include/stdlib.h" 3 4 >extern int rpmatch (__const char *__response) ; ># 774 "/usr/include/stdlib.h" 3 4 ># 58 "exim.h" 2 ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 82 "/usr/include/string.h" 3 4 > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nonnull__ (2))); ># 138 "/usr/include/string.h" 3 4 >extern char *strdup (__const char *__s) > __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 173 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 189 "/usr/include/string.h" 3 4 > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nonnull__ (2, 3))); ># 248 "/usr/include/string.h" 3 4 > > >extern size_t strlen (__const char *__s) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 262 "/usr/include/string.h" 3 4 > > >extern char *strerror (int __errnum) ; > > >extern char *__glibc_strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nonnull__ (2))); >extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nonnull__ (2))); ># 305 "/usr/include/string.h" 3 4 >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) __attribute__ ((__const__)); ># 342 "/usr/include/string.h" 3 4 >extern int strcasecmp (__const char *__s1, __const char *__s2) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 373 "/usr/include/string.h" 3 4 >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > __attribute__ ((__nonnull__ (1, 2))); ># 421 "/usr/include/string.h" 3 4 >extern size_t strlcat(char *__restrict dst, const char *__restrict src, > size_t n) __attribute__ ((__nonnull__ (1, 2))); >extern size_t strlcpy(char *__restrict dst, const char *__restrict src, > size_t n) __attribute__ ((__nonnull__ (1, 2))); ># 59 "exim.h" 2 > > > > ># 1 "/usr/include/errno.h" 1 3 4 ># 32 "/usr/include/errno.h" 3 4 > > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 22 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/include/bits/errno_values.h" 1 3 4 ># 23 "/usr/include/bits/errno.h" 2 3 4 ># 35 "/usr/include/bits/errno.h" 3 4 >extern int errno; > > >extern int *__errno_location (void) __attribute__ ((__const__)); ># 37 "/usr/include/errno.h" 2 3 4 ># 61 "/usr/include/errno.h" 3 4 ># 64 "exim.h" 2 > > > > > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 1 3 4 ># 11 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 144 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 130 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 36 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 ># 131 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 145 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 149 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 2 3 4 ># 70 "exim.h" 2 ># 101 "exim.h" ># 1 "/usr/include/sys/file.h" 1 3 4 ># 25 "/usr/include/sys/file.h" 3 4 ># 1 "/usr/include/fcntl.h" 1 3 4 ># 29 "/usr/include/fcntl.h" 3 4 > > > > ># 1 "/usr/include/bits/fcntl.h" 1 3 4 ># 141 "/usr/include/bits/fcntl.h" 3 4 >struct flock > { > short int l_type; > short int l_whence; > > __off_t l_start; > __off_t l_len; > > > > > __pid_t l_pid; > }; ># 208 "/usr/include/bits/fcntl.h" 3 4 ># 239 "/usr/include/bits/fcntl.h" 3 4 ># 34 "/usr/include/fcntl.h" 2 3 4 ># 61 "/usr/include/fcntl.h" 3 4 >extern int fcntl (int __fd, int __cmd, ...) ; ># 75 "/usr/include/fcntl.h" 3 4 >extern int open (__const char *__file, int __oflag, ...) ; ># 92 "/usr/include/fcntl.h" 3 4 >extern int creat (__const char *__file, __mode_t __mode) ; ># 121 "/usr/include/fcntl.h" 3 4 >extern int lockf (int __fd, int __cmd, __off_t __len) ; ># 180 "/usr/include/fcntl.h" 3 4 ># 26 "/usr/include/sys/file.h" 2 3 4 ># 51 "/usr/include/sys/file.h" 3 4 >extern int flock (int __fd, int __operation) ; ># 102 "exim.h" 2 ># 1 "/usr/include/dirent.h" 1 3 4 ># 28 "/usr/include/dirent.h" 3 4 ># 62 "/usr/include/dirent.h" 3 4 ># 1 "/usr/include/bits/dirent.h" 1 3 4 ># 23 "/usr/include/bits/dirent.h" 3 4 >struct dirent > { > > __ino_t d_ino; > __off_t d_off; > > > > > unsigned short int d_reclen; > unsigned char d_type; > char d_name[256]; > }; ># 63 "/usr/include/dirent.h" 2 3 4 ># 98 "/usr/include/dirent.h" 3 4 >enum > { > DT_UNKNOWN = 0, > > DT_FIFO = 1, > > DT_CHR = 2, > > DT_DIR = 4, > > DT_BLK = 6, > > DT_REG = 8, > > DT_LNK = 10, > > DT_SOCK = 12, > > DT_WHT = 14 > > }; ># 128 "/usr/include/dirent.h" 3 4 >typedef struct __dirstream DIR; > > > >extern DIR *opendir (__const char *__name) ; > > > >extern int closedir (DIR *__dirp) ; ># 146 "/usr/include/dirent.h" 3 4 >extern struct dirent *readdir (DIR *__dirp) ; ># 163 "/usr/include/dirent.h" 3 4 >extern int readdir_r (DIR *__restrict __dirp, > struct dirent *__restrict __entry, > struct dirent **__restrict __result) ; ># 186 "/usr/include/dirent.h" 3 4 >extern void rewinddir (DIR *__dirp) ; > > > > > >extern void seekdir (DIR *__dirp, long int __pos) ; > > >extern long int telldir (DIR *__dirp) ; > > > > > >extern int dirfd (DIR *__dirp) ; ># 216 "/usr/include/dirent.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 217 "/usr/include/dirent.h" 2 3 4 > > > > > > >extern int scandir (__const char *__restrict __dir, > struct dirent ***__restrict __namelist, > int (*__selector) (__const struct dirent *), > int (*__cmp) (__const void *, __const void *)) ; ># 251 "/usr/include/dirent.h" 3 4 >extern int alphasort (__const void *__e1, __const void *__e2) > __attribute__ ((__pure__)); ># 272 "/usr/include/dirent.h" 3 4 ># 103 "exim.h" 2 ># 1 "/usr/include/netdb.h" 1 3 4 ># 28 "/usr/include/netdb.h" 3 4 ># 1 "/usr/include/netinet/in.h" 1 3 4 ># 23 "/usr/include/netinet/in.h" 3 4 ># 1 "/usr/include/stdint.h" 1 3 4 ># 30 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 31 "/usr/include/stdint.h" 2 3 4 ># 51 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 128 "/usr/include/stdint.h" 3 4 >typedef int intptr_t; > > >typedef unsigned int uintptr_t; ># 140 "/usr/include/stdint.h" 3 4 >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 24 "/usr/include/netinet/in.h" 2 3 4 > > > > > > >enum > { > IPPROTO_IP = 0, > > IPPROTO_HOPOPTS = 0, > > IPPROTO_ICMP = 1, > > IPPROTO_IGMP = 2, > > IPPROTO_IPIP = 4, > > IPPROTO_TCP = 6, > > IPPROTO_EGP = 8, > > IPPROTO_PUP = 12, > > IPPROTO_UDP = 17, > > IPPROTO_IDP = 22, > > IPPROTO_TP = 29, > > IPPROTO_IPV6 = 41, > > IPPROTO_ROUTING = 43, > > IPPROTO_FRAGMENT = 44, > > IPPROTO_RSVP = 46, > > IPPROTO_GRE = 47, > > IPPROTO_ESP = 50, > > IPPROTO_AH = 51, > > IPPROTO_ICMPV6 = 58, > > IPPROTO_NONE = 59, > > IPPROTO_DSTOPTS = 60, > > IPPROTO_MTP = 92, > > IPPROTO_ENCAP = 98, > > IPPROTO_PIM = 103, > > IPPROTO_COMP = 108, > > IPPROTO_RAW = 255, > > IPPROTO_MAX > }; > > > >typedef uint16_t in_port_t; > > >enum > { > IPPORT_ECHO = 7, > IPPORT_DISCARD = 9, > IPPORT_SYSTAT = 11, > IPPORT_DAYTIME = 13, > IPPORT_NETSTAT = 15, > IPPORT_FTP = 21, > IPPORT_TELNET = 23, > IPPORT_SMTP = 25, > IPPORT_TIMESERVER = 37, > IPPORT_NAMESERVER = 42, > IPPORT_WHOIS = 43, > IPPORT_MTP = 57, > > IPPORT_TFTP = 69, > IPPORT_RJE = 77, > IPPORT_FINGER = 79, > IPPORT_TTYLINK = 87, > IPPORT_SUPDUP = 95, > > > IPPORT_EXECSERVER = 512, > IPPORT_LOGINSERVER = 513, > IPPORT_CMDSERVER = 514, > IPPORT_EFSSERVER = 520, > > > IPPORT_BIFFUDP = 512, > IPPORT_WHOSERVER = 513, > IPPORT_ROUTESERVER = 520, > > > IPPORT_RESERVED = 1024, > > > IPPORT_USERRESERVED = 5000 > }; > > > >typedef uint32_t in_addr_t; >struct in_addr > { > in_addr_t s_addr; > }; ># 190 "/usr/include/netinet/in.h" 3 4 >struct in6_addr > { > union > { > uint8_t u6_addr8[16]; > uint16_t u6_addr16[8]; > uint32_t u6_addr32[4]; > } in6_u; > > > > }; > >extern const struct in6_addr in6addr_any; >extern const struct in6_addr in6addr_loopback; > > > > > > > ># 1 "/usr/include/bits/socket.h" 1 3 4 ># 29 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 30 "/usr/include/bits/socket.h" 2 3 4 > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 1 3 4 ># 32 "/usr/include/bits/socket.h" 2 3 4 > > > > >typedef __socklen_t socklen_t; > > > > >enum __socket_type >{ > SOCK_STREAM = 1, > > > SOCK_DGRAM = 2, > > > SOCK_RAW = 3, > > SOCK_RDM = 4, > > SOCK_SEQPACKET = 5, > > > SOCK_PACKET = 10 > > > >}; ># 142 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/include/bits/sockaddr.h" 1 3 4 ># 29 "/usr/include/bits/sockaddr.h" 3 4 >typedef unsigned short int sa_family_t; ># 143 "/usr/include/bits/socket.h" 2 3 4 > > >struct sockaddr > { > sa_family_t sa_family; > char sa_data[14]; > }; ># 162 "/usr/include/bits/socket.h" 3 4 >struct sockaddr_storage > { > sa_family_t ss_family; > __uint32_t __ss_align; > char __ss_padding[(128 - (2 * sizeof (__uint32_t)))]; > }; > > > >enum > { > MSG_OOB = 0x01, > > MSG_PEEK = 0x02, > > MSG_DONTROUTE = 0x04, > > > > > > > MSG_CTRUNC = 0x08, > > MSG_PROXY = 0x10, > > MSG_TRUNC = 0x20, > > MSG_DONTWAIT = 0x40, > > MSG_EOR = 0x80, > > MSG_WAITALL = 0x100, > > MSG_FIN = 0x200, > > MSG_SYN = 0x400, > > MSG_CONFIRM = 0x800, > > MSG_RST = 0x1000, > > MSG_ERRQUEUE = 0x2000, > > MSG_NOSIGNAL = 0x4000, > > MSG_MORE = 0x8000 > > }; > > > > >struct msghdr > { > void *msg_name; > socklen_t msg_namelen; > > struct iovec *msg_iov; > int msg_iovlen; > > void *msg_control; > socklen_t msg_controllen; > > int msg_flags; > }; > > >struct cmsghdr > { > size_t cmsg_len; > > int cmsg_level; > int cmsg_type; > > __extension__ unsigned char __cmsg_data []; > > }; ># 257 "/usr/include/bits/socket.h" 3 4 >extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, > struct cmsghdr *__cmsg) ; ># 284 "/usr/include/bits/socket.h" 3 4 >enum > { > SCM_RIGHTS = 0x01, > > > SCM_CREDENTIALS = 0x02, > > > __SCM_CONNECT = 0x03 > }; > > > >struct ucred >{ > pid_t pid; > uid_t uid; > gid_t gid; >}; > > ># 1 "/usr/include/asm/socket.h" 1 3 4 ># 11 "/usr/include/asm/socket.h" 3 4 ># 1 "/usr/include/asm/sockios.h" 1 3 4 ># 12 "/usr/include/asm/socket.h" 2 3 4 ># 306 "/usr/include/bits/socket.h" 2 3 4 > > > >struct linger > { > int l_onoff; > int l_linger; > }; ># 213 "/usr/include/netinet/in.h" 2 3 4 > > > >struct sockaddr_in > { > sa_family_t sin_family; > in_port_t sin_port; > struct in_addr sin_addr; > > > unsigned char sin_zero[sizeof (struct sockaddr) - > (sizeof (unsigned short int)) - > sizeof (in_port_t) - > sizeof (struct in_addr)]; > }; > > >struct sockaddr_in6 > { > sa_family_t sin6_family; > in_port_t sin6_port; > uint32_t sin6_flowinfo; > struct in6_addr sin6_addr; > uint32_t sin6_scope_id; > }; > > >struct ipv6_mreq > { > > struct in6_addr ipv6mr_multiaddr; > > > unsigned int ipv6mr_interface; > }; > > ># 1 "/usr/include/bits/in.h" 1 3 4 ># 66 "/usr/include/bits/in.h" 3 4 >struct ip_opts > { > struct in_addr ip_dst; > char ip_opts[40]; > }; > > >struct ip_mreq > { > struct in_addr imr_multiaddr; > struct in_addr imr_interface; > }; > > >struct ip_mreqn > { > struct in_addr imr_multiaddr; > struct in_addr imr_address; > int imr_ifindex; > }; > > >struct in_pktinfo > { > int ipi_ifindex; > struct in_addr ipi_spec_dst; > struct in_addr ipi_addr; > }; ># 251 "/usr/include/netinet/in.h" 2 3 4 ># 259 "/usr/include/netinet/in.h" 3 4 >extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__const__)); >extern uint16_t ntohs (uint16_t __netshort) > __attribute__ ((__const__)); >extern uint32_t htonl (uint32_t __hostlong) > __attribute__ ((__const__)); >extern uint16_t htons (uint16_t __hostshort) > __attribute__ ((__const__)); > > > > ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 271 "/usr/include/netinet/in.h" 2 3 4 ># 336 "/usr/include/netinet/in.h" 3 4 >extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) ; > > >extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) > ; ># 364 "/usr/include/netinet/in.h" 3 4 >struct in6_pktinfo > { > struct in6_addr ipi6_addr; > unsigned int ipi6_ifindex; > }; ># 29 "/usr/include/netdb.h" 2 3 4 > > > > ># 1 "/usr/include/rpc/netdb.h" 1 3 4 ># 42 "/usr/include/rpc/netdb.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 43 "/usr/include/rpc/netdb.h" 2 3 4 > > > >struct rpcent >{ > char *r_name; > char **r_aliases; > int r_number; >}; > >extern void setrpcent (int __stayopen) ; >extern void endrpcent (void) ; >extern struct rpcent *getrpcbyname (__const char *__name) ; >extern struct rpcent *getrpcbynumber (int __number) ; >extern struct rpcent *getrpcent (void) ; > > >extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf, > char *__buffer, size_t __buflen, > struct rpcent **__result) ; > >extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf, > char *__buffer, size_t __buflen, > struct rpcent **__result) ; > >extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer, > size_t __buflen, struct rpcent **__result) ; ># 34 "/usr/include/netdb.h" 2 3 4 ># 43 "/usr/include/netdb.h" 3 4 ># 1 "/usr/include/bits/netdb.h" 1 3 4 ># 27 "/usr/include/bits/netdb.h" 3 4 >struct netent >{ > char *n_name; > char **n_aliases; > int n_addrtype; > uint32_t n_net; >}; ># 44 "/usr/include/netdb.h" 2 3 4 ># 54 "/usr/include/netdb.h" 3 4 > > > >extern int h_errno; > > >extern int *__h_errno_location (void) __attribute__ ((__const__)); ># 96 "/usr/include/netdb.h" 3 4 >extern void herror (__const char *__str) ; > > >extern __const char *hstrerror (int __err_num) ; > > > > >struct hostent >{ > char *h_name; > char **h_aliases; > int h_addrtype; > int h_length; > char **h_addr_list; > >}; > > > >extern void sethostent (int __stay_open) ; > > >extern void endhostent (void) ; > > > >extern struct hostent *gethostent (void) ; > > > >extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len, > int __type) ; > > >extern struct hostent *gethostbyname (__const char *__name) ; > > > > > >extern struct hostent *gethostbyname2 (__const char *__name, int __af) ; > > > > > > >extern int gethostent_r (struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop) ; > >extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len, > int __type, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop) ; > >extern int gethostbyname_r (__const char *__restrict __name, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop) ; > >extern int gethostbyname2_r (__const char *__restrict __name, int __af, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop) ; > > > > > >extern void setnetent (int __stay_open) ; > > >extern void endnetent (void) ; > > > >extern struct netent *getnetent (void) ; > > > >extern struct netent *getnetbyaddr (uint32_t __net, int __type) > ; > > >extern struct netent *getnetbyname (__const char *__name) ; ># 218 "/usr/include/netdb.h" 3 4 >struct servent >{ > char *s_name; > char **s_aliases; > int s_port; > char *s_proto; >}; > > > >extern void setservent (int __stay_open) ; > > >extern void endservent (void) ; > > > >extern struct servent *getservent (void) ; > > > >extern struct servent *getservbyname (__const char *__name, > __const char *__proto) ; > > > >extern struct servent *getservbyport (int __port, __const char *__proto) > ; > > > > > >extern int getservent_r (struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result) ; > >extern int getservbyname_r (__const char *__restrict __name, > __const char *__restrict __proto, > struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result) ; > >extern int getservbyport_r (int __port, __const char *__restrict __proto, > struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result) ; > > > > >struct protoent >{ > char *p_name; > char **p_aliases; > int p_proto; >}; > > > >extern void setprotoent (int __stay_open) ; > > >extern void endprotoent (void) ; > > > >extern struct protoent *getprotoent (void) ; > > >extern struct protoent *getprotobyname (__const char *__name) ; > > >extern struct protoent *getprotobynumber (int __proto) ; > > > > > >extern int getprotoent_r (struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result) ; > >extern int getprotobyname_r (__const char *__restrict __name, > struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result) ; > >extern int getprotobynumber_r (int __proto, > struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result) ; ># 320 "/usr/include/netdb.h" 3 4 >extern int rcmd (char **__restrict __ahost, unsigned short int __rport, > __const char *__restrict __locuser, > __const char *__restrict __remuser, > __const char *__restrict __cmd, int *__restrict __fd2p) > ; ># 342 "/usr/include/netdb.h" 3 4 >extern int rexec (char **__restrict __ahost, int __rport, > __const char *__restrict __name, > __const char *__restrict __pass, > __const char *__restrict __cmd, int *__restrict __fd2p) > ; > > > >extern int rexec_af (char **__restrict __ahost, int __rport, > __const char *__restrict __name, > __const char *__restrict __pass, > __const char *__restrict __cmd, int *__restrict __fd2p, > sa_family_t __af) ; > > > > >extern int ruserok (__const char *__rhost, int __suser, > __const char *__remuser, __const char *__locuser) ; ># 374 "/usr/include/netdb.h" 3 4 >extern int rresvport (int *__alport) ; ># 388 "/usr/include/netdb.h" 3 4 >struct addrinfo >{ > int ai_flags; > int ai_family; > int ai_socktype; > int ai_protocol; > socklen_t ai_addrlen; > struct sockaddr *ai_addr; > char *ai_canonname; > struct addrinfo *ai_next; >}; ># 439 "/usr/include/netdb.h" 3 4 >extern int getaddrinfo (__const char *__restrict __name, > __const char *__restrict __service, > __const struct addrinfo *__restrict __req, > struct addrinfo **__restrict __pai) ; > > >extern void freeaddrinfo (struct addrinfo *__ai) ; > > >extern __const char *gai_strerror (int __ecode) ; > > >extern int getnameinfo (__const struct sockaddr *__restrict __sa, > socklen_t __salen, char *__restrict __host, > socklen_t __hostlen, char *__restrict __serv, > socklen_t __servlen, unsigned int __flags) ; ># 104 "exim.h" 2 > ># 1 "/usr/include/poll.h" 1 3 4 ># 1 "/usr/include/sys/poll.h" 1 3 4 ># 26 "/usr/include/sys/poll.h" 3 4 ># 1 "/usr/include/bits/poll.h" 1 3 4 ># 27 "/usr/include/sys/poll.h" 2 3 4 > > > >typedef unsigned long int nfds_t; > > >struct pollfd > { > int fd; > short int events; > short int revents; > }; ># 48 "/usr/include/sys/poll.h" 3 4 >extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout) ; ># 2 "/usr/include/poll.h" 2 3 4 ># 106 "exim.h" 2 > ># 1 "/usr/include/pwd.h" 1 3 4 ># 28 "/usr/include/pwd.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 34 "/usr/include/pwd.h" 2 3 4 ># 50 "/usr/include/pwd.h" 3 4 >struct passwd >{ > char *pw_name; > char *pw_passwd; > __uid_t pw_uid; > __gid_t pw_gid; > char *pw_gecos; > char *pw_dir; > char *pw_shell; >}; ># 70 "/usr/include/pwd.h" 3 4 >extern void setpwent (void) ; > > >extern void endpwent (void) ; > > >extern struct passwd *getpwent (void) ; > > > > >extern struct passwd *fgetpwent (FILE *__stream) ; > > >extern int putpwent (__const struct passwd *__restrict __p, > FILE *__restrict __f) ; > > > >extern struct passwd *getpwuid (__uid_t __uid) ; > > >extern struct passwd *getpwnam (__const char *__name) ; ># 111 "/usr/include/pwd.h" 3 4 >extern int getpwent_r (struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result) ; > > >extern int getpwuid_r (__uid_t __uid, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result) ; > >extern int getpwnam_r (__const char *__restrict __name, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result) ; > > > > > >extern int fgetpwent_r (FILE *__restrict __stream, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result) ; ># 145 "/usr/include/pwd.h" 3 4 ># 108 "exim.h" 2 ># 1 "/usr/include/grp.h" 1 3 4 ># 28 "/usr/include/grp.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 34 "/usr/include/grp.h" 2 3 4 ># 43 "/usr/include/grp.h" 3 4 >struct group > { > char *gr_name; > char *gr_passwd; > __gid_t gr_gid; > char **gr_mem; > }; ># 60 "/usr/include/grp.h" 3 4 >extern void setgrent (void) ; > > >extern void endgrent (void) ; > > >extern struct group *getgrent (void) ; > > > > >extern struct group *fgetgrent (FILE *__stream) ; ># 81 "/usr/include/grp.h" 3 4 >extern struct group *getgrgid (__gid_t __gid) ; > > >extern struct group *getgrnam (__const char *__name) ; ># 109 "/usr/include/grp.h" 3 4 >extern int getgrgid_r (__gid_t __gid, struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result) ; > > >extern int getgrnam_r (__const char *__restrict __name, > struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result) ; > > > > >extern int fgetgrent_r (FILE *__restrict __stream, > struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result) ; ># 134 "/usr/include/grp.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 135 "/usr/include/grp.h" 2 3 4 > > >extern int setgroups (size_t __n, __const __gid_t *__groups) ; > > > > >extern int initgroups (__const char *, __gid_t __group) ; ># 109 "exim.h" 2 ># 1 "/usr/include/syslog.h" 1 3 4 ># 1 "/usr/include/sys/syslog.h" 1 3 4 ># 169 "/usr/include/sys/syslog.h" 3 4 > > > >extern void closelog (void) ; > > >extern void openlog (__const char *__ident, int __option, int __facility) > ; > > >extern int setlogmask (int __mask) ; > > >extern void syslog (int __pri, __const char *__fmt, ...) > __attribute__ ((__format__(__printf__, 2, 3))); > > > >extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap) > __attribute__ ((__format__(__printf__, 2, 0))); ># 2 "/usr/include/syslog.h" 2 3 4 ># 110 "exim.h" 2 ># 119 "exim.h" ># 1 "/usr/include/sysexits.h" 1 3 4 ># 120 "exim.h" 2 ># 150 "exim.h" ># 1 "/usr/include/sys/time.h" 1 3 4 ># 28 "/usr/include/sys/time.h" 3 4 ># 1 "/usr/include/bits/time.h" 1 3 4 ># 29 "/usr/include/sys/time.h" 2 3 4 > > > > >typedef __suseconds_t suseconds_t; ># 56 "/usr/include/sys/time.h" 3 4 >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 72 "/usr/include/sys/time.h" 3 4 >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) ; > > > > >extern int settimeofday (__const struct timeval *__tv, > __const struct timezone *__tz) ; > > > > > >extern int adjtime (__const struct timeval *__delta, > struct timeval *__olddelta) ; > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > > > >typedef int __itimer_which_t; > > > > >extern int getitimer (__itimer_which_t __which, > struct itimerval *__value) ; > > > > >extern int setitimer (__itimer_which_t __which, > __const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) ; > > > >extern int utimes (__const char *__file, __const struct timeval __tvp[2]) > ; ># 171 "/usr/include/sys/time.h" 3 4 ># 151 "exim.h" 2 ># 1 "/usr/include/sys/param.h" 1 3 4 ># 22 "/usr/include/sys/param.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/limits.h" 1 3 4 ># 23 "/usr/include/sys/param.h" 2 3 4 > ># 1 "/usr/include/linux/param.h" 1 3 4 > > > ># 1 "/usr/include/asm/param.h" 1 3 4 ># 5 "/usr/include/linux/param.h" 2 3 4 ># 25 "/usr/include/sys/param.h" 2 3 4 ># 152 "exim.h" 2 > > ># 1 "/usr/include/sys/resource.h" 1 3 4 ># 25 "/usr/include/sys/resource.h" 3 4 ># 1 "/usr/include/bits/resource.h" 1 3 4 ># 32 "/usr/include/bits/resource.h" 3 4 >enum __rlimit_resource >{ > > RLIMIT_CPU = 0, > > > > RLIMIT_FSIZE = 1, > > > > RLIMIT_DATA = 2, > > > > RLIMIT_STACK = 3, > > > > RLIMIT_CORE = 4, > > > > > > > RLIMIT_RSS = 5, > > > > RLIMIT_NOFILE = 7, > RLIMIT_OFILE = RLIMIT_NOFILE, > > > > > RLIMIT_AS = 9, > > > > RLIMIT_NPROC = 6, > > > > RLIMIT_MEMLOCK = 8, > > > > RLIMIT_LOCKS = 10, > > > RLIMIT_NLIMITS = 11, > RLIM_NLIMITS = RLIMIT_NLIMITS > > >}; ># 107 "/usr/include/bits/resource.h" 3 4 >typedef __rlim_t rlim_t; > > > > > > > >struct rlimit > { > > rlim_t rlim_cur; > > rlim_t rlim_max; > }; ># 134 "/usr/include/bits/resource.h" 3 4 >enum __rusage_who >{ > > RUSAGE_SELF = 0, > > > > RUSAGE_CHILDREN = -1, > > > > RUSAGE_BOTH = -2 > >}; > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 151 "/usr/include/bits/resource.h" 2 3 4 > > >struct rusage > { > > struct timeval ru_utime; > > struct timeval ru_stime; > > long int ru_maxrss; > > > long int ru_ixrss; > > long int ru_idrss; > > long int ru_isrss; > > > long int ru_minflt; > > long int ru_majflt; > > long int ru_nswap; > > > long int ru_inblock; > > long int ru_oublock; > > long int ru_msgsnd; > > long int ru_msgrcv; > > long int ru_nsignals; > > > > long int ru_nvcsw; > > > long int ru_nivcsw; > }; > > > > > > > >enum __priority_which >{ > PRIO_PROCESS = 0, > > PRIO_PGRP = 1, > > PRIO_USER = 2 > >}; ># 26 "/usr/include/sys/resource.h" 2 3 4 ># 43 "/usr/include/sys/resource.h" 3 4 >typedef int __rlimit_resource_t; >typedef int __rusage_who_t; >typedef int __priority_which_t; > > > > > >extern int getrlimit (__rlimit_resource_t __resource, > struct rlimit *__rlimits) ; ># 71 "/usr/include/sys/resource.h" 3 4 >extern int setrlimit (__rlimit_resource_t __resource, > __const struct rlimit *__rlimits) ; ># 89 "/usr/include/sys/resource.h" 3 4 >extern int getrusage (__rusage_who_t __who, struct rusage *__usage) ; > > > > > >extern int getpriority (__priority_which_t __which, id_t __who) ; > > > >extern int setpriority (__priority_which_t __which, id_t __who, int __prio) > ; ># 155 "exim.h" 2 > > ># 1 "/usr/include/sys/socket.h" 1 3 4 ># 25 "/usr/include/sys/socket.h" 3 4 > > ># 1 "/usr/include/sys/uio.h" 1 3 4 ># 26 "/usr/include/sys/uio.h" 3 4 > > > ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 44 "/usr/include/bits/uio.h" 3 4 >struct iovec > { > void *iov_base; > size_t iov_len; > }; ># 30 "/usr/include/sys/uio.h" 2 3 4 > > > > > > > >extern ssize_t readv (int __fd, __const struct iovec *__vector, int __count) > ; > > > > > > >extern ssize_t writev (int __fd, __const struct iovec *__vector, int __count) > ; ># 28 "/usr/include/sys/socket.h" 2 3 4 > ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 30 "/usr/include/sys/socket.h" 2 3 4 ># 40 "/usr/include/sys/socket.h" 3 4 >struct osockaddr > { > unsigned short int sa_family; > unsigned char sa_data[14]; > }; > > > > >enum >{ > SHUT_RD = 0, > > SHUT_WR, > > SHUT_RDWR > >}; ># 100 "/usr/include/sys/socket.h" 3 4 >extern int socket (int __domain, int __type, int __protocol) ; > > > > > >extern int socketpair (int __domain, int __type, int __protocol, > int __fds[2]) ; > > >extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len) > ; > > >extern int getsockname (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __len) ; > > > > > >extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len) > ; > > > >extern int getpeername (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __len) ; > > > >extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags) > ; > > > >extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags) > ; > > > >extern ssize_t sendto (int __fd, __const void *__buf, size_t __n, > int __flags, __const struct sockaddr * __addr, > socklen_t __addr_len) ; > > > > > >extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, > struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) > ; > > > > >extern ssize_t sendmsg (int __fd, __const struct msghdr *__message, int __flags) > ; > > > >extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags) > ; > > > > > >extern int getsockopt (int __fd, int __level, int __optname, > void *__restrict __optval, > socklen_t *__restrict __optlen) ; > > > > >extern int setsockopt (int __fd, int __level, int __optname, > __const void *__optval, socklen_t __optlen) ; > > > > > >extern int listen (int __fd, int __n) ; > > > > > > >extern int accept (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __addr_len) > ; > > > > > > > >extern int shutdown (int __fd, int __how) ; ># 212 "/usr/include/sys/socket.h" 3 4 >extern int isfdtype (int __fd, int __fdtype) ; ># 158 "exim.h" 2 ># 168 "exim.h" ># 1 "/usr/include/sys/ioctl.h" 1 3 4 ># 24 "/usr/include/sys/ioctl.h" 3 4 > > > ># 1 "/usr/include/bits/ioctls.h" 1 3 4 ># 24 "/usr/include/bits/ioctls.h" 3 4 ># 1 "/usr/include/asm/ioctls.h" 1 3 4 > > > ># 1 "/usr/include/asm/ioctl.h" 1 3 4 ># 41 "/usr/include/asm/ioctl.h" 3 4 >extern unsigned int __invalid_size_argument_for_IOC; ># 5 "/usr/include/asm/ioctls.h" 2 3 4 ># 25 "/usr/include/bits/ioctls.h" 2 3 4 ># 28 "/usr/include/sys/ioctl.h" 2 3 4 > > ># 1 "/usr/include/bits/ioctl-types.h" 1 3 4 > > > > ># 1 "/usr/include/termios.h" 1 3 4 ># 36 "/usr/include/termios.h" 3 4 > > > > ># 1 "/usr/include/bits/termios.h" 1 3 4 ># 23 "/usr/include/bits/termios.h" 3 4 >typedef unsigned char cc_t; >typedef unsigned int speed_t; >typedef unsigned int tcflag_t; ># 34 "/usr/include/bits/termios.h" 3 4 >struct termios { > tcflag_t c_iflag; > tcflag_t c_oflag; > tcflag_t c_cflag; > tcflag_t c_lflag; > cc_t c_line; > cc_t c_cc[32]; > speed_t c_ispeed; > speed_t c_ospeed; >}; ># 204 "/usr/include/bits/termios.h" 3 4 >struct sgttyb { > char sg_ispeed; > char sg_ospeed; > char sg_erase; > char sg_kill; > short sg_flags; >}; > >struct tchars { > char t_intrc; > char t_quitc; > char t_startc; > char t_stopc; > char t_eofc; > char t_brkc; >}; > >struct ltchars { > char t_suspc; > char t_dsuspc; > char t_rprntc; > char t_flushc; > char t_werasc; > char t_lnextc; >}; ># 239 "/usr/include/bits/termios.h" 3 4 >struct winsize { > unsigned short ws_row; > unsigned short ws_col; > unsigned short ws_xpixel; > unsigned short ws_ypixel; >}; > > >struct termio { > unsigned short c_iflag; > unsigned short c_oflag; > unsigned short c_cflag; > unsigned short c_lflag; > unsigned char c_line; > unsigned char c_cc[10]; >}; ># 41 "/usr/include/termios.h" 2 3 4 ># 49 "/usr/include/termios.h" 3 4 >extern speed_t cfgetospeed (__const struct termios *__termios_p) ; > > >extern speed_t cfgetispeed (__const struct termios *__termios_p) ; > > >extern int cfsetospeed (struct termios *__termios_p, speed_t __speed) ; > > >extern int cfsetispeed (struct termios *__termios_p, speed_t __speed) ; > > > >extern int cfsetspeed (struct termios *__termios_p, speed_t __speed) ; > > > > >extern int tcgetattr (int __fd, struct termios *__termios_p) ; > > > >extern int tcsetattr (int __fd, int __optional_actions, > __const struct termios *__termios_p) ; > > > > >extern void cfmakeraw (struct termios *__termios_p) ; > > > >extern int tcsendbreak (int __fd, int __duration) ; > > >extern int tcdrain (int __fd) ; > > > >extern int tcflush (int __fd, int __queue_selector) ; > > > >extern int tcflow (int __fd, int __action) ; ># 102 "/usr/include/termios.h" 3 4 ># 1 "/usr/include/sys/ttydefaults.h" 1 3 4 ># 103 "/usr/include/termios.h" 2 3 4 ># 6 "/usr/include/bits/ioctl-types.h" 2 3 4 ># 31 "/usr/include/sys/ioctl.h" 2 3 4 > > > > > > ># 1 "/usr/include/sys/ttydefaults.h" 1 3 4 ># 38 "/usr/include/sys/ioctl.h" 2 3 4 > > > > >extern int ioctl (int __fd, unsigned long int __request, ...) ; ># 169 "exim.h" 2 ># 183 "exim.h" ># 1 "/usr/include/sys/statvfs.h" 1 3 4 ># 26 "/usr/include/sys/statvfs.h" 3 4 ># 1 "/usr/include/bits/statvfs.h" 1 3 4 ># 25 "/usr/include/bits/statvfs.h" 3 4 >struct statvfs > { > unsigned long int f_bsize; > unsigned long int f_frsize; > > __fsblkcnt_t f_blocks; > __fsblkcnt_t f_bfree; > __fsblkcnt_t f_bavail; > __fsfilcnt_t f_files; > __fsfilcnt_t f_ffree; > __fsfilcnt_t f_favail; ># 44 "/usr/include/bits/statvfs.h" 3 4 > unsigned long int f_fsid; > int __f_unused; > unsigned long int f_flag; > unsigned long int f_namemax; > int __f_spare[6]; > }; ># 73 "/usr/include/bits/statvfs.h" 3 4 >enum >{ > ST_RDONLY = 1, > > ST_NOSUID = 2, ># 99 "/usr/include/bits/statvfs.h" 3 4 >}; ># 27 "/usr/include/sys/statvfs.h" 2 3 4 ># 48 "/usr/include/sys/statvfs.h" 3 4 > > > > >extern int statvfs (__const char *__restrict __file, > struct statvfs *__restrict __buf) ; ># 72 "/usr/include/sys/statvfs.h" 3 4 >extern int fstatvfs (int __fildes, struct statvfs *__buf) ; ># 85 "/usr/include/sys/statvfs.h" 3 4 ># 184 "exim.h" 2 ># 226 "exim.h" ># 1 "/usr/include/sys/stat.h" 1 3 4 ># 96 "/usr/include/sys/stat.h" 3 4 > > ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 24 "/usr/include/bits/stat.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 25 "/usr/include/bits/stat.h" 2 3 4 ># 45 "/usr/include/bits/stat.h" 3 4 >struct stat > { > __dev_t st_dev; > > unsigned short int __pad1; > __ino_t st_ino; > > > > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned short int __pad2; > > __off_t st_size; > > > > __blksize_t st_blksize; > > > __blkcnt_t st_blocks; > > > > __time_t st_atime; > unsigned long int __unused1; > __time_t st_mtime; > unsigned long int __unused2; > __time_t st_ctime; > unsigned long int __unused3; > unsigned long int __unused4; > unsigned long int __unused5; > }; ># 99 "/usr/include/sys/stat.h" 2 3 4 ># 200 "/usr/include/sys/stat.h" 3 4 >extern int stat (__const char *__restrict __file, > struct stat *__restrict __buf) ; > > > >extern int fstat (int __fd, struct stat *__buf) ; ># 228 "/usr/include/sys/stat.h" 3 4 >extern int lstat (__const char *__restrict __file, > struct stat *__restrict __buf) ; ># 249 "/usr/include/sys/stat.h" 3 4 >extern int chmod (__const char *__file, __mode_t __mode) ; > > > >extern int fchmod (int __fd, __mode_t __mode) ; > > > > > >extern __mode_t umask (__mode_t __mask) ; ># 268 "/usr/include/sys/stat.h" 3 4 >extern int mkdir (__const char *__path, __mode_t __mode) ; > > > > > >extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) > ; > > > >extern int mkfifo (__const char *__path, __mode_t __mode) ; ># 227 "exim.h" 2 ># 1 "/usr/include/sys/wait.h" 1 3 4 ># 28 "/usr/include/sys/wait.h" 3 4 ># 37 "/usr/include/sys/wait.h" 3 4 ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 38 "/usr/include/sys/wait.h" 2 3 4 ># 62 "/usr/include/sys/wait.h" 3 4 >typedef union > { > union wait *__uptr; > int *__iptr; > } __WAIT_STATUS __attribute__ ((__transparent_union__)); ># 79 "/usr/include/sys/wait.h" 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 65 "/usr/include/bits/waitstatus.h" 3 4 >union wait > { > int w_status; > struct > { > > > > > > > > unsigned int:16; > unsigned int __w_retcode:8; > unsigned int __w_coredump:1; > unsigned int __w_termsig:7; > > } __wait_terminated; > struct > { > > > > > > > unsigned int:16; > unsigned int __w_stopsig:8; > unsigned int __w_stopval:8; > > } __wait_stopped; > }; ># 80 "/usr/include/sys/wait.h" 2 3 4 ># 98 "/usr/include/sys/wait.h" 3 4 >typedef enum >{ > P_ALL, > P_PID, > P_PGID >} idtype_t; > > > > > >extern __pid_t wait (__WAIT_STATUS __stat_loc) ; ># 129 "/usr/include/sys/wait.h" 3 4 >extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options) ; > > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 ># 134 "/usr/include/sys/wait.h" 2 3 4 ># 142 "/usr/include/sys/wait.h" 3 4 >extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop, > int __options) ; > > > > > >struct rusage; > > > > > > >extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options, > struct rusage * __usage) ; > > > > > >struct rusage; > > >extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options, > struct rusage *__usage) ; ># 228 "exim.h" 2 ># 1 "/usr/include/sys/utsname.h" 1 3 4 ># 28 "/usr/include/sys/utsname.h" 3 4 > > ># 1 "/usr/include/bits/utsname.h" 1 3 4 ># 31 "/usr/include/sys/utsname.h" 2 3 4 > > > > > > >struct utsname > { > > char sysname[65]; > > > char nodename[65]; > > > char release[65]; > > char version[65]; > > > char machine[65]; > > > > > > > char __domainname[65]; > > > }; > > > > > > > >extern int uname (struct utsname *__name) ; ># 229 "exim.h" 2 ># 243 "exim.h" ># 1 "/usr/include/unistd.h" 1 3 4 ># 28 "/usr/include/unistd.h" 3 4 ># 175 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 176 "/usr/include/unistd.h" 2 3 4 ># 199 "/usr/include/unistd.h" 3 4 ># 1 "/usr/lib/gcc/powerpc-gentoo-linux-uclibc/3.4.6/include/stddef.h" 1 3 4 ># 200 "/usr/include/unistd.h" 2 3 4 ># 260 "/usr/include/unistd.h" 3 4 >extern int access (__const char *__name, int __type) ; ># 284 "/usr/include/unistd.h" 3 4 >extern __off_t lseek (int __fd, __off_t __offset, int __whence) ; ># 300 "/usr/include/unistd.h" 3 4 >extern int close (int __fd) ; > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; > > >extern ssize_t write (int __fd, __const void *__buf, size_t __n) ; ># 347 "/usr/include/unistd.h" 3 4 >extern int pipe (int __pipedes[2]) ; ># 356 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) ; ># 365 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds) ; > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > ; > > > >extern int usleep (__useconds_t __useconds) ; > > > > > >extern int pause (void) ; > > > >extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) > ; > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ; > > > > >extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) > ; > > > > >extern int chdir (__const char *__path) ; > > > >extern int fchdir (int __fd) ; ># 417 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) ; > > > > >extern char *get_current_dir_name (void) ; > > > > >extern int dup (int __fd) ; > > >extern int dup2 (int __fd, int __fd2) ; > > >extern char **__environ; > > > > > > > >extern int execve (__const char *__path, char *__const __argv[], > char *__const __envp[]) ; > > >extern int execv (__const char *__path, char *__const __argv[]) ; > > > >extern int execle (__const char *__path, __const char *__arg, ...) ; > > > >extern int execl (__const char *__path, __const char *__arg, ...) ; > > > >extern int execvp (__const char *__file, char *__const __argv[]) ; > > > > >extern int execlp (__const char *__file, __const char *__arg, ...) ; > > > > >extern int nice (int __inc) ; > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 25 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG > > }; > > > > > >enum > { > _CS_PATH, ># 563 "/usr/include/bits/confname.h" 3 4 > _CS_V6_WIDTH_RESTRICTED_ENVS > > }; ># 479 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (__const char *__path, int __name) ; > > >extern long int fpathconf (int __fd, int __name) ; > > >extern long int sysconf (int __name) __attribute__ ((__const__)); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) ; > > > > >extern __pid_t getpid (void) ; > > >extern __pid_t getppid (void) ; > > > > >extern __pid_t getpgrp (void) ; ># 514 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) ; ># 523 "/usr/include/unistd.h" 3 4 >extern int setpgid (__pid_t __pid, __pid_t __pgid) ; ># 540 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) ; ># 558 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) ; > > > > > > > >extern __uid_t getuid (void) ; > > >extern __uid_t geteuid (void) ; > > >extern __gid_t getgid (void) ; > > >extern __gid_t getegid (void) ; > > > > >extern int getgroups (int __size, __gid_t __list[]) ; > > > > > >extern int setuid (__uid_t __uid) ; > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) ; > > > > >extern int seteuid (__uid_t __uid) ; > > > > > > >extern int setgid (__gid_t __gid) ; > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) ; > > > > >extern int setegid (__gid_t __gid) ; ># 638 "/usr/include/unistd.h" 3 4 >extern __pid_t fork (void) ; > > > > > > >extern __pid_t vfork (void) ; > > > > > >extern char *ttyname (int __fd) ; > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ; > > > >extern int isatty (int __fd) ; > > > > >extern int link (__const char *__from, __const char *__to) ; > > > >extern int symlink (__const char *__from, __const char *__to) ; > > > > >extern int readlink (__const char *__restrict __path, char *__restrict __buf, > size_t __len) ; > > > >extern int unlink (__const char *__name) ; > > >extern int rmdir (__const char *__path) ; > > > >extern __pid_t tcgetpgrp (int __fd) ; > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ; > > > >extern char *getlogin (void) ; ># 707 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/getopt.h" 1 3 4 ># 47 "/usr/include/bits/getopt.h" 3 4 >extern char *optarg; ># 61 "/usr/include/bits/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 139 "/usr/include/bits/getopt.h" 3 4 >extern int getopt (int __argc, char *const *__argv, const char *__shortopts); ># 708 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) ; > > > > > > >extern int sethostname (__const char *__name, size_t __len) ; > > > >extern int sethostid (long int __id) ; > > > > > >extern int getdomainname (char *__name, size_t __len) ; >extern int setdomainname (__const char *__name, size_t __len) ; > > > > > >extern int vhangup (void) ; > > > > > > >extern int acct (__const char *__name) ; > > > >extern char *getusershell (void) ; >extern void endusershell (void) ; >extern void setusershell (void) ; > > > > > >extern int daemon (int __nochdir, int __noclose) ; > > > > > > >extern int chroot (__const char *__path) ; > > > >extern char *getpass (__const char *__prompt) ; > > > > > >extern int fsync (int __fd) ; > > > > > > >extern long int gethostid (void) ; > > >extern void sync (void) ; > > > > >extern int getpagesize (void) __attribute__ ((__const__)); > > > > >extern int truncate (__const char *__file, __off_t __length) ; ># 811 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off_t __length) ; ># 827 "/usr/include/unistd.h" 3 4 >extern int getdtablesize (void) ; ># 836 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) ; > > > > > >extern void *sbrk (intptr_t __delta) ; ># 857 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) ; ># 908 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes) ; ># 939 "/usr/include/unistd.h" 3 4 ># 244 "exim.h" 2 > ># 1 "/usr/include/utime.h" 1 3 4 ># 28 "/usr/include/utime.h" 3 4 ># 38 "/usr/include/utime.h" 3 4 >struct utimbuf > { > __time_t actime; > __time_t modtime; > }; > > > >extern int utime (__const char *__file, > __const struct utimbuf *__file_times) ; ># 246 "exim.h" 2 > ># 1 "/usr/include/net/if.h" 1 3 4 ># 34 "/usr/include/net/if.h" 3 4 >struct if_nameindex > { > unsigned int if_index; > char *if_name; > }; > > > > >enum > { > IFF_UP = 0x1, > > IFF_BROADCAST = 0x2, > > IFF_DEBUG = 0x4, > > IFF_LOOPBACK = 0x8, > > IFF_POINTOPOINT = 0x10, > > IFF_NOTRAILERS = 0x20, > > IFF_RUNNING = 0x40, > > IFF_NOARP = 0x80, > > IFF_PROMISC = 0x100, > > > > IFF_ALLMULTI = 0x200, > > > IFF_MASTER = 0x400, > > IFF_SLAVE = 0x800, > > > IFF_MULTICAST = 0x1000, > > > IFF_PORTSEL = 0x2000, > > IFF_AUTOMEDIA = 0x4000 > > }; > > > > > > >struct ifaddr > { > struct sockaddr ifa_addr; > union > { > struct sockaddr ifu_broadaddr; > struct sockaddr ifu_dstaddr; > } ifa_ifu; > struct iface *ifa_ifp; > struct ifaddr *ifa_next; > }; ># 110 "/usr/include/net/if.h" 3 4 >struct ifmap > { > unsigned long int mem_start; > unsigned long int mem_end; > unsigned short int base_addr; > unsigned char irq; > unsigned char dma; > unsigned char port; > > }; > > > > > >struct ifreq > { > > > union > { > char ifrn_name[16]; > } ifr_ifrn; > > union > { > struct sockaddr ifru_addr; > struct sockaddr ifru_dstaddr; > struct sockaddr ifru_broadaddr; > struct sockaddr ifru_netmask; > struct sockaddr ifru_hwaddr; > short int ifru_flags; > int ifru_ivalue; > int ifru_mtu; > struct ifmap ifru_map; > char ifru_slave[16]; > char ifru_newname[16]; > __caddr_t ifru_data; > } ifr_ifru; > }; ># 175 "/usr/include/net/if.h" 3 4 >struct ifconf > { > int ifc_len; > union > { > __caddr_t ifcu_buf; > struct ifreq *ifcu_req; > } ifc_ifcu; > }; ># 192 "/usr/include/net/if.h" 3 4 >extern unsigned int if_nametoindex (__const char *__ifname) ; >extern char *if_indextoname (unsigned int __ifindex, char *__ifname) ; > > >extern struct if_nameindex *if_nameindex (void) ; > > >extern void if_freenameindex (struct if_nameindex *__ptr) ; ># 248 "exim.h" 2 > ># 1 "/usr/include/sys/un.h" 1 3 4 ># 27 "/usr/include/sys/un.h" 3 4 > > > >struct sockaddr_un > { > sa_family_t sun_family; > char sun_path[108]; > }; ># 45 "/usr/include/sys/un.h" 3 4 ># 250 "exim.h" 2 > ># 1 "/usr/include/netinet/tcp.h" 1 3 4 ># 89 "/usr/include/netinet/tcp.h" 3 4 >struct tcphdr > { > u_int16_t source; > u_int16_t dest; > u_int32_t seq; > u_int32_t ack_seq; ># 106 "/usr/include/netinet/tcp.h" 3 4 > u_int16_t doff:4; > u_int16_t res1:4; > u_int16_t res2:2; > u_int16_t urg:1; > u_int16_t ack:1; > u_int16_t psh:1; > u_int16_t rst:1; > u_int16_t syn:1; > u_int16_t fin:1; > > > > u_int16_t window; > u_int16_t check; > u_int16_t urg_ptr; >}; > > >enum >{ > TCP_ESTABLISHED = 1, > TCP_SYN_SENT, > TCP_SYN_RECV, > TCP_FIN_WAIT1, > TCP_FIN_WAIT2, > TCP_TIME_WAIT, > TCP_CLOSE, > TCP_CLOSE_WAIT, > TCP_LAST_ACK, > TCP_LISTEN, > TCP_CLOSING >}; ># 176 "/usr/include/netinet/tcp.h" 3 4 >enum tcp_ca_state >{ > TCP_CA_Open = 0, > TCP_CA_Disorder = 1, > TCP_CA_CWR = 2, > TCP_CA_Recovery = 3, > TCP_CA_Loss = 4 >}; > >struct tcp_info >{ > u_int8_t tcpi_state; > u_int8_t tcpi_ca_state; > u_int8_t tcpi_retransmits; > u_int8_t tcpi_probes; > u_int8_t tcpi_backoff; > u_int8_t tcpi_options; > u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; > > u_int32_t tcpi_rto; > u_int32_t tcpi_ato; > u_int32_t tcpi_snd_mss; > u_int32_t tcpi_rcv_mss; > > u_int32_t tcpi_unacked; > u_int32_t tcpi_sacked; > u_int32_t tcpi_lost; > u_int32_t tcpi_retrans; > u_int32_t tcpi_fackets; > > > u_int32_t tcpi_last_data_sent; > u_int32_t tcpi_last_ack_sent; > u_int32_t tcpi_last_data_recv; > u_int32_t tcpi_last_ack_recv; > > > u_int32_t tcpi_pmtu; > u_int32_t tcpi_rcv_ssthresh; > u_int32_t tcpi_rtt; > u_int32_t tcpi_rttvar; > u_int32_t tcpi_snd_ssthresh; > u_int32_t tcpi_snd_cwnd; > u_int32_t tcpi_advmss; > u_int32_t tcpi_reordering; >}; ># 252 "exim.h" 2 ># 1 "/usr/include/arpa/inet.h" 1 3 4 ># 31 "/usr/include/arpa/inet.h" 3 4 > > > > >extern in_addr_t inet_addr (__const char *__cp) ; > > >extern in_addr_t inet_lnaof (struct in_addr __in) ; > > > >extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host) > ; > > >extern in_addr_t inet_netof (struct in_addr __in) ; > > > >extern in_addr_t inet_network (__const char *__cp) ; > > > >extern char *inet_ntoa (struct in_addr __in) ; > > > > >extern int inet_pton (int __af, __const char *__restrict __cp, > void *__restrict __buf) ; > > > > >extern __const char *inet_ntop (int __af, __const void *__restrict __cp, > char *__restrict __buf, socklen_t __len) > ; > > > > > > >extern in_addr_t inet_aton (__const char *__cp, struct in_addr *__inp) ; > > > >extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) ; > > > > >extern char *inet_net_ntop (int __af, __const void *__cp, int __bits, > char *__buf, size_t __len) ; > > > > >extern int inet_net_pton (int __af, __const char *__cp, > void *__buf, size_t __len) ; > > > > >extern unsigned int inet_nsap_addr (__const char *__cp, > unsigned char *__buf, int __len) ; > > > >extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, > char *__buf) ; ># 253 "exim.h" 2 ># 1 "/usr/include/arpa/nameser.h" 1 3 4 ># 58 "/usr/include/arpa/nameser.h" 3 4 ># 1 "/usr/include/sys/bitypes.h" 1 3 4 ># 59 "/usr/include/arpa/nameser.h" 2 3 4 ># 96 "/usr/include/arpa/nameser.h" 3 4 >typedef enum __ns_sect { > ns_s_qd = 0, > ns_s_zn = 0, > ns_s_an = 1, > ns_s_pr = 1, > ns_s_ns = 2, > ns_s_ud = 2, > ns_s_ar = 3, > ns_s_max = 4 >} ns_sect; > > > > > > >typedef struct __ns_msg { > const u_char *_msg, *_eom; > u_int16_t _id, _flags, _counts[ns_s_max]; > const u_char *_sections[ns_s_max]; > ns_sect _sect; > int _rrnum; > const u_char *_ptr; >} ns_msg; > > >struct _ns_flagdata { int mask, shift; }; >extern struct _ns_flagdata _ns_flagdata[]; ># 139 "/usr/include/arpa/nameser.h" 3 4 >typedef struct __ns_rr { > char name[1025]; > u_int16_t type; > u_int16_t rr_class; > u_int32_t ttl; > u_int16_t rdlength; > const u_char * rdata; >} ns_rr; ># 161 "/usr/include/arpa/nameser.h" 3 4 >typedef enum __ns_flag { > ns_f_qr, > ns_f_opcode, > ns_f_aa, > ns_f_tc, > ns_f_rd, > ns_f_ra, > ns_f_z, > ns_f_ad, > ns_f_cd, > ns_f_rcode, > ns_f_max >} ns_flag; > > > > >typedef enum __ns_opcode { > ns_o_query = 0, > ns_o_iquery = 1, > ns_o_status = 2, > > ns_o_notify = 4, > ns_o_update = 5, > ns_o_max = 6 >} ns_opcode; > > > > >typedef enum __ns_rcode { > ns_r_noerror = 0, > ns_r_formerr = 1, > ns_r_servfail = 2, > ns_r_nxdomain = 3, > ns_r_notimpl = 4, > ns_r_refused = 5, > > ns_r_yxdomain = 6, > ns_r_yxrrset = 7, > ns_r_nxrrset = 8, > ns_r_notauth = 9, > ns_r_notzone = 10, > ns_r_max = 11, > > ns_r_badsig = 16, > ns_r_badkey = 17, > ns_r_badtime = 18 >} ns_rcode; > > >typedef enum __ns_update_operation { > ns_uop_delete = 0, > ns_uop_add = 1, > ns_uop_max = 2 >} ns_update_operation; > > > > >struct ns_tsig_key { > char name[1025], alg[1025]; > unsigned char *data; > int len; >}; >typedef struct ns_tsig_key ns_tsig_key; > > > > >struct ns_tcp_tsig_state { > int counter; > struct dst_key *key; > void *ctx; > unsigned char sig[512]; > int siglen; >}; >typedef struct ns_tcp_tsig_state ns_tcp_tsig_state; ># 251 "/usr/include/arpa/nameser.h" 3 4 >typedef enum __ns_type { > ns_t_invalid = 0, > ns_t_a = 1, > ns_t_ns = 2, > ns_t_md = 3, > ns_t_mf = 4, > ns_t_cname = 5, > ns_t_soa = 6, > ns_t_mb = 7, > ns_t_mg = 8, > ns_t_mr = 9, > ns_t_null = 10, > ns_t_wks = 11, > ns_t_ptr = 12, > ns_t_hinfo = 13, > ns_t_minfo = 14, > ns_t_mx = 15, > ns_t_txt = 16, > ns_t_rp = 17, > ns_t_afsdb = 18, > ns_t_x25 = 19, > ns_t_isdn = 20, > ns_t_rt = 21, > ns_t_nsap = 22, > ns_t_nsap_ptr = 23, > ns_t_sig = 24, > ns_t_key = 25, > ns_t_px = 26, > ns_t_gpos = 27, > ns_t_aaaa = 28, > ns_t_loc = 29, > ns_t_nxt = 30, > ns_t_eid = 31, > ns_t_nimloc = 32, > ns_t_srv = 33, > ns_t_atma = 34, > ns_t_naptr = 35, > ns_t_kx = 36, > ns_t_cert = 37, > ns_t_a6 = 38, > ns_t_dname = 39, > ns_t_sink = 40, > ns_t_opt = 41, > ns_t_tsig = 250, > ns_t_ixfr = 251, > ns_t_axfr = 252, > ns_t_mailb = 253, > ns_t_maila = 254, > ns_t_any = 255, > ns_t_zxfr = 256, > ns_t_max = 65536 >} ns_type; ># 318 "/usr/include/arpa/nameser.h" 3 4 >typedef enum __ns_class { > ns_c_invalid = 0, > ns_c_in = 1, > ns_c_2 = 2, > ns_c_chaos = 3, > ns_c_hs = 4, > > ns_c_none = 254, > ns_c_any = 255, > ns_c_max = 65536 >} ns_class; > > > >typedef enum __ns_key_types { > ns_kt_rsa = 1, > ns_kt_dh = 2, > ns_kt_dsa = 3, > ns_kt_private = 254 >} ns_key_types; > >typedef enum __ns_cert_types { > cert_t_pkix = 1, > cert_t_spki = 2, > cert_t_pgp = 3, > cert_t_url = 253, > cert_t_oid = 254 >} ns_cert_types; ># 501 "/usr/include/arpa/nameser.h" 3 4 > >u_int __ns_get16 (const u_char *); >u_long __ns_get32 (const u_char *); >void __ns_put16 (u_int, u_char *); >void __ns_put32 (u_long, u_char *); >int __ns_initparse (const u_char *, int, ns_msg *); >int __ns_skiprr (const u_char *, const u_char *, ns_sect, int); >int __ns_parserr (ns_msg *, ns_sect, int, ns_rr *); >int __ns_sprintrr (const ns_msg *, const ns_rr *, const char *, const char *, char *, size_t); > >int __ns_sprintrrf (const u_char *, size_t, const char *, ns_class, ns_type, u_long, const u_char *, size_t, const char *, const char *, char *, size_t); > > > >int __ns_format_ttl (u_long, char *, size_t); >int __ns_parse_ttl (const char *, u_long *); >u_int32_t __ns_datetosecs (const char *cp, int *errp); >int __ns_name_ntol (const u_char *, u_char *, size_t); >int __ns_name_ntop (const u_char *, char *, size_t); >int __ns_name_pton (const char *, u_char *, size_t); >int __ns_name_unpack (const u_char *, const u_char *, const u_char *, u_char *, size_t); > >int __ns_name_pack (const u_char *, u_char *, int, const u_char **, const u_char **); > >int __ns_name_uncompress (const u_char *, const u_char *, const u_char *, char *, size_t); > >int __ns_name_compress (const char *, u_char *, size_t, const u_char **, const u_char **); > >int __ns_name_skip (const u_char **, const u_char *); >void __ns_name_rollback (const u_char *, const u_char **, const u_char **); > >int __ns_sign (u_char *, int *, int, int, void *, const u_char *, int, u_char *, int *, time_t); > >int __ns_sign_tcp (u_char *, int *, int, int, ns_tcp_tsig_state *, int); > >int __ns_sign_tcp_init (void *, const u_char *, int, ns_tcp_tsig_state *); > >u_char *__ns_find_tsig (u_char *, u_char *); >int __ns_verify (u_char *, int *, void *, const u_char *, int, u_char *, int *, time_t *, int); > > >int __ns_verify_tcp (u_char *, int *, ns_tcp_tsig_state *, int); >int __ns_verify_tcp_init (void *, const u_char *, int, ns_tcp_tsig_state *); > >int __ns_samedomain (const char *, const char *); >int __ns_subdomain (const char *, const char *); >int __ns_makecanon (const char *, char *, size_t); >int __ns_samename (const char *, const char *); > > > ># 1 "/usr/include/arpa/nameser_compat.h" 1 3 4 ># 48 "/usr/include/arpa/nameser_compat.h" 3 4 >typedef struct { > unsigned id :16; > > > unsigned qr: 1; > unsigned opcode: 4; > unsigned aa: 1; > unsigned tc: 1; > unsigned rd: 1; > > unsigned ra: 1; > unsigned unused :1; > unsigned ad: 1; > unsigned cd: 1; > unsigned rcode :4; ># 79 "/usr/include/arpa/nameser_compat.h" 3 4 > unsigned qdcount :16; > unsigned ancount :16; > unsigned nscount :16; > unsigned arcount :16; >} HEADER; ># 553 "/usr/include/arpa/nameser.h" 2 3 4 ># 254 "exim.h" 2 ># 342 "exim.h" ># 1 "/usr/include/resolv.h" 1 3 4 ># 57 "/usr/include/resolv.h" 3 4 ># 1 "/usr/include/sys/bitypes.h" 1 3 4 ># 58 "/usr/include/resolv.h" 2 3 4 ># 88 "/usr/include/resolv.h" 3 4 >typedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } > res_sendhookact; > >typedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *ns, > const u_char **query, > int *querylen, > u_char *ans, > int anssiz, > int *resplen); > >typedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *ns, > const u_char *query, > int querylen, > u_char *ans, > int anssiz, > int *resplen); > >struct res_sym { > int number; > char * name; > char * humanname; >}; ># 127 "/usr/include/resolv.h" 3 4 >struct __res_state { > int retrans; > int retry; > u_long options; > int nscount; > struct sockaddr_in > nsaddr_list[3]; > > u_short id; > char *dnsrch[6 +1]; > char defdname[256]; > u_long pfcode; > unsigned ndots:4; > unsigned nsort:4; > char unused[3]; > struct { > struct in_addr addr; > u_int32_t mask; > } sort_list[10]; > res_send_qhook qhook; > res_send_rhook rhook; > int res_h_errno; > int _vcsock; > u_int _flags; > union { > char pad[52]; > struct { > u_int16_t nscount; > u_int16_t nstimes[3]; > int nssocks[3]; > u_int16_t nscount6; > u_int16_t nsinit; > struct sockaddr_in6 *nsaddrs[3]; > } _ext; > } _u; >}; > >typedef struct __res_state *res_state; ># 220 "/usr/include/resolv.h" 3 4 >extern struct __res_state _res; ># 237 "/usr/include/resolv.h" 3 4 > >void __fp_nquery (const u_char *, int, FILE *); >void __fp_query (const u_char *, FILE *); >const char * __hostalias (const char *); >void __p_query (const u_char *); >void __res_close (void); >int __res_init (void); >int __res_isourserver (const struct sockaddr_in *); >int __res_mkquery (int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); > >int __res_query (const char *, int, int, u_char *, int); >int __res_querydomain (const char *, const char *, int, int, u_char *, int); > >int __res_search (const char *, int, int, u_char *, int); >int __res_send (const u_char *, int, u_char *, int); ># 265 "/usr/include/resolv.h" 3 4 >extern const struct res_sym __p_key_syms[]; >extern const struct res_sym __p_cert_syms[]; >extern const struct res_sym __p_class_syms[]; >extern const struct res_sym __p_type_syms[]; >extern const struct res_sym __p_rcode_syms[]; ># 314 "/usr/include/resolv.h" 3 4 > >int __res_hnok (const char *); >int __res_ownok (const char *); >int __res_mailok (const char *); >int __res_dnok (const char *); >int __sym_ston (const struct res_sym *, const char *, int *); >const char * __sym_ntos (const struct res_sym *, int, int *); >const char * __sym_ntop (const struct res_sym *, int, int *); >int __b64_ntop (u_char const *, size_t, char *, size_t); >int __b64_pton (char const *, u_char *, size_t); >int __loc_aton (const char *ascii, u_char *binary); >const char * __loc_ntoa (const u_char *binary, char *ascii); >int __dn_skipname (const u_char *, const u_char *); >void __putlong (u_int32_t, u_char *); >void __putshort (u_int16_t, u_char *); >const char * __p_class (int); >const char * __p_time (u_int32_t); >const char * __p_type (int); >const char * __p_rcode (int); >const u_char * __p_cdnname (const u_char *, const u_char *, int, FILE *); >const u_char * __p_cdname (const u_char *, const u_char *, FILE *); >const u_char * __p_fqnname (const u_char *cp, const u_char *msg, int, char *, int); > >const u_char * __p_fqname (const u_char *, const u_char *, FILE *); >const char * __p_option (u_long option); >char * __p_secstodate (u_long); >int __dn_count_labels (const char *); >int __dn_comp (const char *, u_char *, int, u_char **, u_char **); > >int __dn_expand (const u_char *, const u_char *, const u_char *, char *, int); > >u_int __res_randomid (void); >int __res_nameinquery (const char *, int, int, const u_char *, const u_char *); > >int __res_queriesmatch (const u_char *, const u_char *, const u_char *, const u_char *); > >const char * __p_section (int section, int opcode); > >int __res_ninit (res_state); >int __res_nisourserver (const res_state, const struct sockaddr_in *); > >void __fp_resstat (const res_state, FILE *); >void __res_npquery (const res_state, const u_char *, int, FILE *); >const char * __res_hostalias (const res_state, const char *, char *, size_t); > >int __res_nquery (res_state, const char *, int, int, u_char *, int); > >int __res_nsearch (res_state, const char *, int, int, u_char *, int); > >int __res_nquerydomain (res_state, const char *, const char *, int, int, u_char *, int); > > >int __res_nmkquery (res_state, int, const char *, int, int, const u_char *, int, const u_char *, u_char *, int); > > >int __res_nsend (res_state, const u_char *, int, u_char *, int); >void __res_nclose (res_state); ># 343 "exim.h" 2 ># 352 "exim.h" ># 1 "/usr/include/netinet/in_systm.h" 1 3 4 ># 26 "/usr/include/netinet/in_systm.h" 3 4 ># 35 "/usr/include/netinet/in_systm.h" 3 4 >typedef u_int16_t n_short; >typedef u_int32_t n_long; >typedef u_int32_t n_time; ># 353 "exim.h" 2 ># 1 "/usr/include/netinet/ip.h" 1 3 4 ># 27 "/usr/include/netinet/ip.h" 3 4 > > >struct timestamp > { > u_int8_t len; > u_int8_t ptr; > > > > > unsigned int overflow:4; > unsigned int flags:4; > > > > u_int32_t data[9]; > }; > >struct iphdr > { > > > > > unsigned int version:4; > unsigned int ihl:4; > > > > u_int8_t tos; > u_int16_t tot_len; > u_int16_t id; > u_int16_t frag_off; > u_int8_t ttl; > u_int8_t protocol; > u_int16_t check; > u_int32_t saddr; > u_int32_t daddr; > > }; ># 108 "/usr/include/netinet/ip.h" 3 4 >struct ip > { > > > > > > unsigned int ip_v:4; > unsigned int ip_hl:4; > > u_int8_t ip_tos; > u_short ip_len; > u_short ip_id; > u_short ip_off; > > > > > u_int8_t ip_ttl; > u_int8_t ip_p; > u_short ip_sum; > struct in_addr ip_src, ip_dst; > }; > > > > >struct ip_timestamp > { > u_int8_t ipt_code; > u_int8_t ipt_len; > u_int8_t ipt_ptr; > > > > > > unsigned int ipt_oflw:4; > unsigned int ipt_flg:4; > > u_int32_t data[9]; > }; ># 247 "/usr/include/netinet/ip.h" 3 4 ># 354 "exim.h" 2 ># 425 "exim.h" ># 1 "pcre/pcre.h" 1 ># 200 "pcre/pcre.h" >struct real_pcre; >typedef struct real_pcre pcre; ># 215 "pcre/pcre.h" >typedef struct pcre_extra { > unsigned long int flags; > void *study_data; > unsigned long int match_limit; > void *callout_data; > const unsigned char *tables; > unsigned long int match_limit_recursion; >} pcre_extra; > > > > > > >typedef struct pcre_callout_block { > int version; > > int callout_number; > int *offset_vector; > const char * subject; > int subject_length; > int start_match; > int current_position; > int capture_top; > int capture_last; > void *callout_data; > > int pattern_position; > int next_item_length; > >} pcre_callout_block; ># 254 "pcre/pcre.h" >extern void *(*pcre_malloc)(size_t); >extern void (*pcre_free)(void *); >extern void *(*pcre_stack_malloc)(size_t); >extern void (*pcre_stack_free)(void *); >extern int (*pcre_callout)(pcre_callout_block *); ># 269 "pcre/pcre.h" >extern pcre *pcre_compile(const char *, int, const char **, int *, > const unsigned char *); >extern pcre *pcre_compile2(const char *, int, int *, const char **, > int *, const unsigned char *); >extern int pcre_config(int, void *); >extern int pcre_copy_named_substring(const pcre *, const char *, > int *, int, const char *, char *, int); >extern int pcre_copy_substring(const char *, int *, int, int, char *, > int); >extern int pcre_dfa_exec(const pcre *, const pcre_extra *, > const char *, int, int, int, int *, int , int *, int); >extern int pcre_exec(const pcre *, const pcre_extra *, const char *, > int, int, int, int *, int); >extern void pcre_free_substring(const char *); >extern void pcre_free_substring_list(const char **); >extern int pcre_fullinfo(const pcre *, const pcre_extra *, int, > void *); >extern int pcre_get_named_substring(const pcre *, const char *, > int *, int, const char *, const char **); >extern int pcre_get_stringnumber(const pcre *, const char *); >extern int pcre_get_stringtable_entries(const pcre *, const char *, > char **, char **); >extern int pcre_get_substring(const char *, int *, int, int, > const char **); >extern int pcre_get_substring_list(const char *, int *, int, > const char ***); >extern int pcre_info(const pcre *, int *, int *); >extern const unsigned char *pcre_maketables(void); >extern int pcre_refcount(pcre *, int); >extern pcre_extra *pcre_study(const pcre *, int, const char **); >extern const char *pcre_version(void); ># 426 "exim.h" 2 > > > > > ># 1 "local_scan.h" 1 ># 21 "local_scan.h" ># 1 "config.h" 1 ># 22 "local_scan.h" 2 ># 1 "mytypes.h" 1 ># 38 "mytypes.h" >typedef int BOOL; >typedef unsigned char uschar; ># 23 "local_scan.h" 2 ># 1 "store.h" 1 ># 17 "store.h" >enum { POOL_MAIN, POOL_PERM, POOL_SEARCH }; > > > > > >extern void *store_last_get[3]; > > > >extern int store_pool; ># 45 "store.h" >extern BOOL store_extend_3(void *, int, int, const char *, int); >extern void store_free_3(void *, const char *, int); >extern void *store_get_3(int, const char *, int); >extern void *store_get_perm_3(int, const char *, int); >extern void *store_malloc_3(int, const char *, int); >extern void store_release_3(void *, const char *, int); >extern void store_reset_3(void *, const char *, int); ># 24 "local_scan.h" 2 > > > > >extern int local_scan(int, uschar **); > >enum { > LOCAL_SCAN_ACCEPT, > LOCAL_SCAN_ACCEPT_FREEZE, > LOCAL_SCAN_ACCEPT_QUEUE, > LOCAL_SCAN_REJECT, > LOCAL_SCAN_REJECT_NOLOGHDR, > LOCAL_SCAN_TEMPREJECT, > LOCAL_SCAN_TEMPREJECT_NOLOGHDR >}; ># 47 "local_scan.h" >typedef int exim_dlfunc_t(uschar **yield, int argc, uschar *argv[]); ># 79 "local_scan.h" >enum { opt_stringptr, opt_int, opt_octint, opt_mkint, opt_Kint, opt_fixed, > opt_time, opt_bool }; ># 109 "local_scan.h" >typedef struct header_line { > struct header_line *next; > int type; > int slen; > uschar *text; >} header_line; > > > >typedef struct { > char *name; > int type; > void *value; >} optionlist; > > > > > >typedef struct recipient_item { > uschar *address; > int pno; > uschar *errors_to; > > > >} recipient_item; > > > > >extern unsigned int debug_selector; > >extern int body_linecount; >extern int body_zerocount; >extern uschar *expand_string_message; >extern uschar *headers_charset; >extern header_line *header_last; >extern header_line *header_list; >extern BOOL host_checking; >extern uschar *interface_address; >extern int interface_port; >extern uschar *message_id; >extern uschar *received_protocol; >extern int recipients_count; >extern recipient_item *recipients_list; >extern unsigned char *sender_address; >extern uschar *sender_host_address; >extern uschar *sender_host_authenticated; >extern uschar *sender_host_name; >extern int sender_host_port; >extern BOOL smtp_batched_input; >extern BOOL smtp_input; > > > > >extern int child_close(pid_t, int); >extern pid_t child_open(uschar **, uschar **, int, int *, int *, BOOL); >extern pid_t child_open_exim(int *); >extern pid_t child_open_exim2(int *, uschar *, uschar *); >extern void debug_printf(char *, ...) __attribute__((format(printf,1,2))); >extern uschar *expand_string(uschar *); >extern void header_add(int, char *, ...); >extern void header_add_at_position(BOOL, uschar *, BOOL, int, char *, ...); >extern void header_remove(int, uschar *); >extern BOOL header_testname(header_line *, uschar *, int, BOOL); >extern BOOL header_testname_incomplete(header_line *, uschar *, int, BOOL); >extern void log_write(unsigned int, int, char *format, ...); >extern int lss_b64decode(uschar *, uschar **); >extern uschar *lss_b64encode(uschar *, int); >extern int lss_match_domain(uschar *, uschar *); >extern int lss_match_local_part(uschar *, uschar *, BOOL); >extern int lss_match_address(uschar *, uschar *, BOOL); >extern int lss_match_host(uschar *, uschar *, uschar *); >extern void receive_add_recipient(uschar *, int); >extern BOOL receive_remove_recipient(uschar *); >extern uschar *rfc2047_decode(uschar *, BOOL, uschar *, int, int *, uschar **); >extern int smtp_fflush(void); >extern void smtp_printf(char *, ...) __attribute__((format(printf,1,2))); >extern uschar *string_copy(uschar *); >extern uschar *string_copyn(uschar *, int); >extern uschar *string_sprintf(char *, ...); ># 432 "exim.h" 2 ># 1 "macros.h" 1 ># 190 "macros.h" >enum { RESET_NEXT, RESET_ANSWERS, RESET_AUTHORITY, RESET_ADDITIONAL }; > > > >enum { tod_log, tod_log_bare, tod_log_zone, tod_log_datestamp, > tod_zone, tod_full, tod_bsdin, tod_mbx, tod_epoch, tod_zulu }; > > > >enum { > DTYPE_NONE, > DTYPE_ROUTER, > DTYPE_TRANSPORT >}; > > > > >enum { > ERRMESS_BADARGADDRESS, > ERRMESS_BADADDRESS, > ERRMESS_NOADDRESS, > ERRMESS_IGADDRESS, > ERRMESS_BADNOADDRESS, > ERRMESS_IOERR, > ERRMESS_VLONGHEADER, > ERRMESS_VLONGHDRLINE, > ERRMESS_TOOBIG, > ERRMESS_TOOMANYRECIP, > ERRMESS_LOCAL_SCAN, > ERRMESS_LOCAL_ACL >}; > > > > >enum { > ERRORS_SENDER, > ERRORS_STDERR >}; > > > >enum { > CEE_RETURN_ARGV, > CEE_EXEC_EXIT, > CEE_EXEC_PANIC >}; ># 282 "macros.h" >enum { DNS_SUCCEED, DNS_NOMATCH, DNS_NODATA, DNS_AGAIN, DNS_FAIL }; ># 485 "macros.h" >enum { > SPECIAL_NONE, > SPECIAL_FREEZE, > SPECIAL_FAIL, > SPECIAL_WARN >}; ># 538 "macros.h" >enum { RDON_BLACKHOLE, RDON_DEFER, RDON_EACCES, RDON_ENOTDIR, RDON_EXISTS, > RDON_FAIL, RDON_FILTER, RDON_FREEZE, RDON_INCLUDE, RDON_LOG, RDON_LOOKUP, > RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN, RDON_DLFUNC, RDON_REALLOG, > RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER, RDON_PREPEND_HOME }; > > > > >enum { > FF_DELIVERED, > FF_NOTDELIVERED, > FF_BLACKHOLE, > FF_DEFER, > FF_FAIL, > FF_INCLUDEFAIL, > FF_NONEXIST, > FF_FREEZE, > FF_ERROR >}; ># 602 "macros.h" >enum { opt_bit = 32, opt_bool_verify, opt_bool_set, opt_expand_bool, > opt_bool_last, > opt_rewrite, opt_timelist, opt_uid, opt_gid, opt_uidlist, opt_gidlist, > opt_expand_uid, opt_expand_gid, opt_void }; ># 626 "macros.h" >enum { v_none, v_sender, v_recipient, v_expn }; ># 657 "macros.h" >enum { hstatus_unknown, hstatus_usable, hstatus_unusable, > hstatus_unusable_expired }; > > > >enum { hwhy_unknown, hwhy_retry, hwhy_failed, hwhy_deferred, hwhy_ignored }; > > > >enum { lk_default, lk_byname, lk_bydns }; > > > >enum { self_freeze, self_defer, self_send, self_reroute, self_pass, self_fail }; ># 715 "macros.h" >enum { SCH_NONE, SCH_AUTH, SCH_DATA, SCH_EHLO, SCH_ETRN, SCH_EXPN, SCH_HELO, > SCH_HELP, SCH_MAIL, SCH_NOOP, SCH_QUIT, SCH_RCPT, SCH_RSET, SCH_STARTTLS, > SCH_VRFY }; > > > >enum { > HOST_FIND_FAILED, > HOST_FIND_AGAIN, > HOST_FOUND, > HOST_FOUND_LOCAL, > HOST_IGNORED >}; ># 739 "macros.h" >enum { MSG_DELIVER, MSG_FREEZE, MSG_REMOVE, MSG_THAW, MSG_ADD_RECIPIENT, > MSG_MARK_ALL_DELIVERED, MSG_MARK_DELIVERED, MSG_EDIT_SENDER, > MSG_SHOW_COPY, MSG_LOAD, > > > MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG }; > > > >enum { > spool_read_OK, > spool_read_notopen, > spool_read_enverror, > spool_read_hdrerror >}; ># 785 "macros.h" >enum { MCL_STRING, MCL_DOMAIN, MCL_HOST, MCL_ADDRESS, MCL_LOCALPART }; ># 798 "macros.h" >enum { ACL_WHERE_RCPT, > ACL_WHERE_MAIL, > ACL_WHERE_PREDATA, > ACL_WHERE_MIME, > ACL_WHERE_DATA, > ACL_WHERE_NOTSMTP, > > ACL_WHERE_AUTH, > ACL_WHERE_CONNECT, > ACL_WHERE_ETRN, > ACL_WHERE_EXPN, > ACL_WHERE_HELO, > ACL_WHERE_MAILAUTH, > ACL_WHERE_NOTSMTP_START, > ACL_WHERE_NOTQUIT, > ACL_WHERE_QUIT, > ACL_WHERE_STARTTLS, > ACL_WHERE_VRFY > }; > > > >enum { SW_RECEIVING, SW_DELIVERING, SW_MODIFYING }; ># 841 "macros.h" >enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE }; ># 433 "exim.h" 2 ># 1 "dbstuff.h" 1 ># 103 "dbstuff.h" ># 1 "/usr/include/db.h" 1 3 4 ># 28 "/usr/include/db.h" 3 4 ># 1 "/usr/include/inttypes.h" 1 3 4 ># 36 "/usr/include/inttypes.h" 3 4 >typedef long int __gwchar_t; ># 276 "/usr/include/inttypes.h" 3 4 ># 290 "/usr/include/inttypes.h" 3 4 >typedef struct > { > long long int quot; > long long int rem; > } imaxdiv_t; > > > > > >extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > __attribute__ ((__const__)); > > >extern intmax_t strtoimax (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) ; > > >extern uintmax_t strtoumax (__const char *__restrict __nptr, > char ** __restrict __endptr, int __base) ; > > > >extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, int __base) > ; > > >extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, > __gwchar_t ** __restrict __endptr, int __base) > ; ># 29 "/usr/include/db.h" 2 3 4 ># 77 "/usr/include/db.h" 3 4 >typedef u_int32_t db_pgno_t; >typedef u_int16_t db_indx_t; > > >typedef u_int32_t db_recno_t; > > >typedef u_int32_t db_timeout_t; > > > > > > >typedef u_int32_t roff_t; > > > > > >struct __db; typedef struct __db DB; >struct __db_bt_stat; typedef struct __db_bt_stat DB_BTREE_STAT; >struct __db_cipher; typedef struct __db_cipher DB_CIPHER; >struct __db_dbt; typedef struct __db_dbt DBT; >struct __db_env; typedef struct __db_env DB_ENV; >struct __db_h_stat; typedef struct __db_h_stat DB_HASH_STAT; >struct __db_ilock; typedef struct __db_ilock DB_LOCK_ILOCK; >struct __db_lock_stat; typedef struct __db_lock_stat DB_LOCK_STAT; >struct __db_lock_u; typedef struct __db_lock_u DB_LOCK; >struct __db_lockreq; typedef struct __db_lockreq DB_LOCKREQ; >struct __db_log_cursor; typedef struct __db_log_cursor DB_LOGC; >struct __db_log_stat; typedef struct __db_log_stat DB_LOG_STAT; >struct __db_lsn; typedef struct __db_lsn DB_LSN; >struct __db_mpool; typedef struct __db_mpool DB_MPOOL; >struct __db_mpool_fstat;typedef struct __db_mpool_fstat DB_MPOOL_FSTAT; >struct __db_mpool_stat; typedef struct __db_mpool_stat DB_MPOOL_STAT; >struct __db_mpoolfile; typedef struct __db_mpoolfile DB_MPOOLFILE; >struct __db_preplist; typedef struct __db_preplist DB_PREPLIST; >struct __db_qam_stat; typedef struct __db_qam_stat DB_QUEUE_STAT; >struct __db_rep; typedef struct __db_rep DB_REP; >struct __db_rep_stat; typedef struct __db_rep_stat DB_REP_STAT; >struct __db_txn; typedef struct __db_txn DB_TXN; >struct __db_txn_active; typedef struct __db_txn_active DB_TXN_ACTIVE; >struct __db_txn_stat; typedef struct __db_txn_stat DB_TXN_STAT; >struct __db_txnmgr; typedef struct __db_txnmgr DB_TXNMGR; >struct __dbc; typedef struct __dbc DBC; >struct __dbc_internal; typedef struct __dbc_internal DBC_INTERNAL; >struct __fh_t; typedef struct __fh_t DB_FH; >struct __fname; typedef struct __fname FNAME; >struct __key_range; typedef struct __key_range DB_KEY_RANGE; >struct __mpoolfile; typedef struct __mpoolfile MPOOLFILE; >struct __mutex_t; typedef struct __mutex_t DB_MUTEX; > > >struct __db_dbt { > > > > void *data; > u_int32_t size; > > u_int32_t ulen; > u_int32_t dlen; > u_int32_t doff; ># 149 "/usr/include/db.h" 3 4 > u_int32_t flags; >}; ># 349 "/usr/include/db.h" 3 4 >typedef enum { > DB_LOCK_NG=0, > DB_LOCK_READ=1, > DB_LOCK_WRITE=2, > DB_LOCK_WAIT=3, > DB_LOCK_IWRITE=4, > DB_LOCK_IREAD=5, > DB_LOCK_IWR=6, > DB_LOCK_DIRTY=7, > DB_LOCK_WWRITE=8 >} db_lockmode_t; > > > > >typedef enum { > DB_LOCK_DUMP=0, > DB_LOCK_GET=1, > DB_LOCK_GET_TIMEOUT=2, > DB_LOCK_INHERIT=3, > DB_LOCK_PUT=4, > DB_LOCK_PUT_ALL=5, > DB_LOCK_PUT_OBJ=6, > DB_LOCK_PUT_READ=7, > DB_LOCK_TIMEOUT=8, > DB_LOCK_TRADE=9, > DB_LOCK_UPGRADE_WRITE=10 >} db_lockop_t; > > > > >typedef enum { > DB_LSTAT_ABORTED=1, > DB_LSTAT_ERR=2, > DB_LSTAT_EXPIRED=3, > DB_LSTAT_FREE=4, > DB_LSTAT_HELD=5, > DB_LSTAT_NOTEXIST=6, > > DB_LSTAT_PENDING=7, > > > DB_LSTAT_WAITING=8 >}db_status_t; > > >struct __db_lock_stat { > u_int32_t st_id; > u_int32_t st_cur_maxid; > u_int32_t st_maxlocks; > u_int32_t st_maxlockers; > u_int32_t st_maxobjects; > u_int32_t st_nmodes; > u_int32_t st_nlocks; > u_int32_t st_maxnlocks; > u_int32_t st_nlockers; > u_int32_t st_maxnlockers; > u_int32_t st_nobjects; > u_int32_t st_maxnobjects; > u_int32_t st_nconflicts; > u_int32_t st_nrequests; > u_int32_t st_nreleases; > u_int32_t st_nnowaits; > > u_int32_t st_ndeadlocks; > db_timeout_t st_locktimeout; > u_int32_t st_nlocktimeouts; > db_timeout_t st_txntimeout; > u_int32_t st_ntxntimeouts; > u_int32_t st_region_wait; > u_int32_t st_region_nowait; > u_int32_t st_regsize; >}; > > > > > >struct __db_ilock { > db_pgno_t pgno; > u_int8_t fileid[20]; > > > > u_int32_t type; >}; > > > > > > >struct __db_lock_u { > size_t off; > u_int32_t ndx; > > u_int32_t gen; > db_lockmode_t mode; >}; > > >struct __db_lockreq { > db_lockop_t op; > db_lockmode_t mode; > db_timeout_t timeout; > DBT *obj; > DB_LOCK lock; >}; ># 490 "/usr/include/db.h" 3 4 >struct __db_lsn { > u_int32_t file; > u_int32_t offset; >}; ># 511 "/usr/include/db.h" 3 4 >struct __db_log_cursor { > DB_ENV *dbenv; > > DB_FH *c_fhp; > DB_LSN c_lsn; > u_int32_t c_len; > u_int32_t c_prev; > > DBT c_dbt; > > > u_int8_t *bp; > u_int32_t bp_size; > u_int32_t bp_rlen; > DB_LSN bp_lsn; > > u_int32_t bp_maxrec; > > > int (*close) (DB_LOGC *, u_int32_t); > int (*get) (DB_LOGC *, DB_LSN *, DBT *, u_int32_t); > > > > > u_int32_t flags; >}; > > >struct __db_log_stat { > u_int32_t st_magic; > u_int32_t st_version; > int st_mode; > u_int32_t st_lg_bsize; > u_int32_t st_lg_size; > u_int32_t st_w_bytes; > u_int32_t st_w_mbytes; > u_int32_t st_wc_bytes; > u_int32_t st_wc_mbytes; > u_int32_t st_wcount; > u_int32_t st_wcount_fill; > u_int32_t st_scount; > u_int32_t st_region_wait; > u_int32_t st_region_nowait; > u_int32_t st_cur_file; > u_int32_t st_cur_offset; > u_int32_t st_disk_file; > u_int32_t st_disk_offset; > u_int32_t st_regsize; > u_int32_t st_maxcommitperflush; > u_int32_t st_mincommitperflush; >}; ># 582 "/usr/include/db.h" 3 4 >typedef enum { > DB_PRIORITY_VERY_LOW=1, > DB_PRIORITY_LOW=2, > DB_PRIORITY_DEFAULT=3, > DB_PRIORITY_HIGH=4, > DB_PRIORITY_VERY_HIGH=5 >} DB_CACHE_PRIORITY; > > >struct __db_mpoolfile { > DB_FH *fhp; > > > > > > u_int32_t ref; > > u_int32_t pinref; > > > > > > > struct { > struct __db_mpoolfile *tqe_next; > struct __db_mpoolfile **tqe_prev; > } q; ># 622 "/usr/include/db.h" 3 4 > DB_ENV *dbenv; > MPOOLFILE *mfp; > > u_int32_t clear_len; > u_int8_t > fileid[20]; > int ftype; > int32_t lsn_offset; > u_int32_t gbytes, bytes; > DBT *pgcookie; > DB_CACHE_PRIORITY > priority; > > void *addr; > size_t len; > > u_int32_t config_flags; > > > int (*close) (DB_MPOOLFILE *, u_int32_t); > int (*get) (DB_MPOOLFILE *, db_pgno_t *, u_int32_t, void *); > int (*open)(DB_MPOOLFILE *, const char *, u_int32_t, int, size_t); > int (*put) (DB_MPOOLFILE *, void *, u_int32_t); > int (*set) (DB_MPOOLFILE *, void *, u_int32_t); > int (*get_clear_len) (DB_MPOOLFILE *, u_int32_t *); > int (*set_clear_len) (DB_MPOOLFILE *, u_int32_t); > int (*get_fileid) (DB_MPOOLFILE *, u_int8_t *); > int (*set_fileid) (DB_MPOOLFILE *, u_int8_t *); > int (*get_flags) (DB_MPOOLFILE *, u_int32_t *); > int (*set_flags) (DB_MPOOLFILE *, u_int32_t, int); > int (*get_ftype) (DB_MPOOLFILE *, int *); > int (*set_ftype) (DB_MPOOLFILE *, int); > int (*get_lsn_offset) (DB_MPOOLFILE *, int32_t *); > int (*set_lsn_offset) (DB_MPOOLFILE *, int32_t); > int (*get_maxsize) (DB_MPOOLFILE *, u_int32_t *, u_int32_t *); > int (*set_maxsize) (DB_MPOOLFILE *, u_int32_t, u_int32_t); > int (*get_pgcookie) (DB_MPOOLFILE *, DBT *); > int (*set_pgcookie) (DB_MPOOLFILE *, DBT *); > int (*get_priority) (DB_MPOOLFILE *, DB_CACHE_PRIORITY *); > int (*set_priority) (DB_MPOOLFILE *, DB_CACHE_PRIORITY); > int (*sync) (DB_MPOOLFILE *); ># 676 "/usr/include/db.h" 3 4 > u_int32_t flags; >}; > > > > >struct __db_mpool_stat { > u_int32_t st_gbytes; > u_int32_t st_bytes; > u_int32_t st_ncache; > u_int32_t st_regsize; > u_int32_t st_map; > u_int32_t st_cache_hit; > u_int32_t st_cache_miss; > u_int32_t st_page_create; > u_int32_t st_page_in; > u_int32_t st_page_out; > u_int32_t st_ro_evict; > u_int32_t st_rw_evict; > u_int32_t st_page_trickle; > u_int32_t st_pages; > u_int32_t st_page_clean; > u_int32_t st_page_dirty; > u_int32_t st_hash_buckets; > u_int32_t st_hash_searches; > u_int32_t st_hash_longest; > u_int32_t st_hash_examined; > u_int32_t st_hash_nowait; > u_int32_t st_hash_wait; > u_int32_t st_hash_max_wait; > u_int32_t st_region_nowait; > u_int32_t st_region_wait; > u_int32_t st_alloc; > u_int32_t st_alloc_buckets; > u_int32_t st_alloc_max_buckets; > u_int32_t st_alloc_pages; > u_int32_t st_alloc_max_pages; >}; > > >struct __db_mpool_fstat { > char *file_name; > size_t st_pagesize; > u_int32_t st_map; > u_int32_t st_cache_hit; > u_int32_t st_cache_miss; > u_int32_t st_page_create; > u_int32_t st_page_in; > u_int32_t st_page_out; >}; > > > > > > >typedef enum { > DB_TXN_ABORT=0, > DB_TXN_APPLY=1, > DB_TXN_BACKWARD_ALLOC=2, > DB_TXN_BACKWARD_ROLL=3, > DB_TXN_FORWARD_ROLL=4, > DB_TXN_GETPGNOS=5, > DB_TXN_OPENFILES=6, > DB_TXN_POPENFILES=7, > DB_TXN_PRINT=8 >} db_recops; ># 754 "/usr/include/db.h" 3 4 >struct __db_txn { > DB_TXNMGR *mgrp; > DB_TXN *parent; > DB_LSN last_lsn; > u_int32_t txnid; > u_int32_t tid; > roff_t off; > db_timeout_t lock_timeout; > db_timeout_t expire; > void *txn_list; > > > > > > > > struct { > struct __db_txn *tqe_next; > struct __db_txn **tqe_prev; > } links; > struct { > struct __db_txn *tqe_next; > struct __db_txn **tqe_prev; > } xalinks; > > > > > > > struct { > struct __txn_event *tqh_first; > struct __txn_event **tqh_last; > } events; > > > > > > > struct { > struct __txn_logrec *stqh_first; > struct __txn_logrec **stqh_last; > } logs; > > > > > > > struct __kids { > struct __db_txn *tqh_first; > struct __db_txn **tqh_last; > } kids; > > > > > > > struct { > struct __db_txn *tqe_next; > struct __db_txn **tqe_prev; > } klinks; > > > void *api_internal; > > u_int32_t cursors; > > > int (*abort) (DB_TXN *); > int (*commit) (DB_TXN *, u_int32_t); > int (*discard) (DB_TXN *, u_int32_t); > u_int32_t (*id) (DB_TXN *); > int (*prepare) (DB_TXN *, u_int8_t *); > int (*set_timeout) (DB_TXN *, db_timeout_t, u_int32_t); ># 843 "/usr/include/db.h" 3 4 > u_int32_t flags; >}; ># 855 "/usr/include/db.h" 3 4 >struct __db_preplist { > DB_TXN *txn; > u_int8_t gid[128]; >}; > > >struct __db_txn_active { > u_int32_t txnid; > u_int32_t parentid; > DB_LSN lsn; > u_int32_t xa_status; > u_int8_t xid[128]; >}; > >struct __db_txn_stat { > DB_LSN st_last_ckp; > time_t st_time_ckp; > u_int32_t st_last_txnid; > u_int32_t st_maxtxns; > u_int32_t st_naborts; > u_int32_t st_nbegins; > u_int32_t st_ncommits; > u_int32_t st_nactive; > u_int32_t st_nrestores; > > u_int32_t st_maxnactive; > DB_TXN_ACTIVE *st_txnarray; > u_int32_t st_region_wait; > u_int32_t st_region_nowait; > u_int32_t st_regsize; >}; ># 900 "/usr/include/db.h" 3 4 >struct __db_rep_stat { ># 910 "/usr/include/db.h" 3 4 > u_int32_t st_status; > DB_LSN st_next_lsn; > DB_LSN st_waiting_lsn; > > u_int32_t st_dupmasters; > > int st_env_id; > int st_env_priority; > u_int32_t st_gen; > u_int32_t st_in_recovery; > u_int32_t st_log_duplicated; > u_int32_t st_log_queued; > u_int32_t st_log_queued_max; > u_int32_t st_log_queued_total; > u_int32_t st_log_records; > u_int32_t st_log_requested; > int st_master; > u_int32_t st_master_changes; > u_int32_t st_msgs_badgen; > u_int32_t st_msgs_processed; > u_int32_t st_msgs_recover; > > u_int32_t st_msgs_send_failures; > u_int32_t st_msgs_sent; > u_int32_t st_newsites; > int st_nsites; > > u_int32_t st_nthrottles; > u_int32_t st_outdated; > > u_int32_t st_txns_applied; > > > u_int32_t st_elections; > u_int32_t st_elections_won; > > > int st_election_cur_winner; > u_int32_t st_election_gen; > DB_LSN st_election_lsn; > int st_election_nsites; > int st_election_priority; > int st_election_status; > int st_election_tiebreaker; > int st_election_votes; >}; > > > > >typedef enum { > DB_BTREE=1, > DB_HASH=2, > DB_RECNO=3, > DB_QUEUE=4, > DB_UNKNOWN=5 >} DBTYPE; ># 1088 "/usr/include/db.h" 3 4 >struct __db { > > > > u_int32_t pgsize; > > > int (*db_append_recno) (DB *, DBT *, db_recno_t); > void (*db_feedback) (DB *, int, int); > int (*dup_compare) (DB *, const DBT *, const DBT *); > > void *app_private; > > > > > DB_ENV *dbenv; > > DBTYPE type; > > DB_MPOOLFILE *mpf; > > DB_MUTEX *mutexp; > > char *fname, *dname; > u_int32_t open_flags; > > u_int8_t fileid[20]; > > u_int32_t adj_fileid; > > > FNAME *log_filename; > > db_pgno_t meta_pgno; > u_int32_t lid; > u_int32_t cur_lid; > u_int32_t associate_lid; > DB_LOCK handle_lock; > > long cl_id; > > time_t timestamp; > > > > > DBT my_rskey; > DBT my_rkey; > DBT my_rdata; ># 1152 "/usr/include/db.h" 3 4 > DB_FH *saved_open_fhp; ># 1162 "/usr/include/db.h" 3 4 > struct { > struct __db *le_next; > struct __db **le_prev; > } dblistlinks; ># 1176 "/usr/include/db.h" 3 4 > struct __cq_fq { > struct __dbc *tqh_first; > struct __dbc **tqh_last; > } free_queue; > struct __cq_aq { > struct __dbc *tqh_first; > struct __dbc **tqh_last; > } active_queue; > struct __cq_jq { > struct __dbc *tqh_first; > struct __dbc **tqh_last; > } join_queue; ># 1198 "/usr/include/db.h" 3 4 > struct { > struct __db *lh_first; > } s_secondaries; ># 1214 "/usr/include/db.h" 3 4 > struct { > struct __db *le_next; > struct __db **le_prev; > } s_links; > u_int32_t s_refcnt; > > > int (*s_callback) (DB *, const DBT *, const DBT *, DBT *); > > > DB *s_primary; > > > void *api_internal; > > > void *bt_internal; > void *h_internal; > void *q_internal; > void *xa_internal; > > > int (*associate) (DB *, DB_TXN *, DB *, int (*)(DB *, const DBT *, const DBT *, DBT *), u_int32_t); > > int (*close) (DB *, u_int32_t); > int (*cursor) (DB *, DB_TXN *, DBC **, u_int32_t); > int (*del) (DB *, DB_TXN *, DBT *, u_int32_t); > void (*err) (DB *, int, const char *, ...); > void (*errx) (DB *, const char *, ...); > int (*fd) (DB *, int *); > int (*get) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); > int (*pget) (DB *, DB_TXN *, DBT *, DBT *, DBT *, u_int32_t); > int (*get_byteswapped) (DB *, int *); > int (*get_cachesize) (DB *, u_int32_t *, u_int32_t *, int *); > int (*get_dbname) (DB *, const char **, const char **); > int (*get_encrypt_flags) (DB *, u_int32_t *); > int (*get_env) (DB *, DB_ENV **); > void (*get_errfile) (DB *, FILE **); > void (*get_errpfx) (DB *, const char **); > int (*get_flags) (DB *, u_int32_t *); > int (*get_lorder) (DB *, int *); > int (*get_open_flags) (DB *, u_int32_t *); > int (*get_pagesize) (DB *, u_int32_t *); > int (*get_transactional) (DB *, int *); > int (*get_type) (DB *, DBTYPE *); > int (*join) (DB *, DBC **, DBC **, u_int32_t); > int (*key_range) (DB *, DB_TXN *, DBT *, DB_KEY_RANGE *, u_int32_t); > > int (*open) (DB *, DB_TXN *, const char *, const char *, DBTYPE, u_int32_t, int); > > int (*put) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); > int (*remove) (DB *, const char *, const char *, u_int32_t); > int (*rename) (DB *, const char *, const char *, const char *, u_int32_t); > > int (*truncate) (DB *, DB_TXN *, u_int32_t *, u_int32_t); > int (*set_append_recno) (DB *, int (*)(DB *, DBT *, db_recno_t)); > int (*set_alloc) (DB *, void *(*)(size_t), void *(*)(void *, size_t), void (*)(void *)); > > int (*set_cachesize) (DB *, u_int32_t, u_int32_t, int); > int (*set_dup_compare) (DB *, int (*)(DB *, const DBT *, const DBT *)); > > int (*set_encrypt) (DB *, const char *, u_int32_t); > void (*set_errcall) (DB *, void (*)(const char *, char *)); > void (*set_errfile) (DB *, FILE *); > void (*set_errpfx) (DB *, const char *); > int (*set_feedback) (DB *, void (*)(DB *, int, int)); > int (*set_flags) (DB *, u_int32_t); > int (*set_lorder) (DB *, int); > int (*set_pagesize) (DB *, u_int32_t); > int (*set_paniccall) (DB *, void (*)(DB_ENV *, int)); > int (*stat) (DB *, void *, u_int32_t); > int (*sync) (DB *, u_int32_t); > int (*upgrade) (DB *, const char *, u_int32_t); > int (*verify) (DB *, const char *, const char *, FILE *, u_int32_t); > > > int (*get_bt_minkey) (DB *, u_int32_t *); > int (*set_bt_compare) (DB *, int (*)(DB *, const DBT *, const DBT *)); > > int (*set_bt_maxkey) (DB *, u_int32_t); > int (*set_bt_minkey) (DB *, u_int32_t); > int (*set_bt_prefix) (DB *, size_t (*)(DB *, const DBT *, const DBT *)); > > > int (*get_h_ffactor) (DB *, u_int32_t *); > int (*get_h_nelem) (DB *, u_int32_t *); > int (*set_h_ffactor) (DB *, u_int32_t); > int (*set_h_hash) (DB *, u_int32_t (*)(DB *, const void *, u_int32_t)); > > int (*set_h_nelem) (DB *, u_int32_t); > > int (*get_re_delim) (DB *, int *); > int (*get_re_len) (DB *, u_int32_t *); > int (*get_re_pad) (DB *, int *); > int (*get_re_source) (DB *, const char **); > int (*set_re_delim) (DB *, int); > int (*set_re_len) (DB *, u_int32_t); > int (*set_re_pad) (DB *, int); > int (*set_re_source) (DB *, const char *); > > int (*get_q_extentsize) (DB *, u_int32_t *); > int (*set_q_extentsize) (DB *, u_int32_t); > > int (*db_am_remove) (DB *, DB_TXN *, const char *, const char *, DB_LSN *); > > int (*db_am_rename) (DB *, DB_TXN *, const char *, const char *, const char *); > > > > > > > int (*stored_get) (DB *, DB_TXN *, DBT *, DBT *, u_int32_t); > int (*stored_close) (DB *, u_int32_t); > > > > > > u_int32_t am_ok; ># 1366 "/usr/include/db.h" 3 4 > u_int32_t orig_flags; > u_int32_t flags; >}; ># 1433 "/usr/include/db.h" 3 4 >struct __dbc { > DB *dbp; > DB_TXN *txn; ># 1444 "/usr/include/db.h" 3 4 > struct { > DBC *tqe_next; > DBC **tqe_prev; > } links; ># 1460 "/usr/include/db.h" 3 4 > DBT *rskey; > DBT *rkey; > DBT *rdata; > > DBT my_rskey; > DBT my_rkey; > DBT my_rdata; > > u_int32_t lid; > u_int32_t locker; > DBT lock_dbt; > DB_LOCK_ILOCK lock; > DB_LOCK mylock; > > long cl_id; > > DBTYPE dbtype; > > DBC_INTERNAL *internal; > > int (*c_close) (DBC *); > int (*c_count) (DBC *, db_recno_t *, u_int32_t); > int (*c_del) (DBC *, u_int32_t); > int (*c_dup) (DBC *, DBC **, u_int32_t); > int (*c_get) (DBC *, DBT *, DBT *, u_int32_t); > int (*c_pget) (DBC *, DBT *, DBT *, DBT *, u_int32_t); > int (*c_put) (DBC *, DBT *, DBT *, u_int32_t); > > > int (*c_am_bulk) (DBC *, DBT *, u_int32_t); > int (*c_am_close) (DBC *, db_pgno_t, int *); > int (*c_am_del) (DBC *); > int (*c_am_destroy) (DBC *); > int (*c_am_get) (DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *); > int (*c_am_put) (DBC *, DBT *, DBT *, u_int32_t, db_pgno_t *); > int (*c_am_writelock) (DBC *); ># 1509 "/usr/include/db.h" 3 4 > u_int32_t flags; >}; > > >struct __key_range { > double less; > double equal; > double greater; >}; > > >struct __db_bt_stat { > u_int32_t bt_magic; > u_int32_t bt_version; > u_int32_t bt_metaflags; > u_int32_t bt_nkeys; > u_int32_t bt_ndata; > u_int32_t bt_pagesize; > u_int32_t bt_maxkey; > u_int32_t bt_minkey; > u_int32_t bt_re_len; > u_int32_t bt_re_pad; > u_int32_t bt_levels; > u_int32_t bt_int_pg; > u_int32_t bt_leaf_pg; > u_int32_t bt_dup_pg; > u_int32_t bt_over_pg; > u_int32_t bt_free; > u_int32_t bt_int_pgfree; > u_int32_t bt_leaf_pgfree; > u_int32_t bt_dup_pgfree; > u_int32_t bt_over_pgfree; >}; > > >struct __db_h_stat { > u_int32_t hash_magic; > u_int32_t hash_version; > u_int32_t hash_metaflags; > u_int32_t hash_nkeys; > u_int32_t hash_ndata; > u_int32_t hash_pagesize; > u_int32_t hash_ffactor; > u_int32_t hash_buckets; > u_int32_t hash_free; > u_int32_t hash_bfree; > u_int32_t hash_bigpages; > u_int32_t hash_big_bfree; > u_int32_t hash_overflows; > u_int32_t hash_ovfl_free; > u_int32_t hash_dup; > u_int32_t hash_dup_free; >}; > > >struct __db_qam_stat { > u_int32_t qs_magic; > u_int32_t qs_version; > u_int32_t qs_metaflags; > u_int32_t qs_nkeys; > u_int32_t qs_ndata; > u_int32_t qs_pagesize; > u_int32_t qs_extentsize; > u_int32_t qs_pages; > u_int32_t qs_re_len; > u_int32_t qs_re_pad; > u_int32_t qs_pgfree; > u_int32_t qs_first_recno; > u_int32_t qs_cur_recno; >}; > > > > > > > >struct __db_env { > > > > FILE *db_errfile; > const char *db_errpfx; > > void (*db_errcall) (const char *, char *); > void (*db_feedback) (DB_ENV *, int, int); > void (*db_paniccall) (DB_ENV *, int); > > > void *(*db_malloc) (size_t); > void *(*db_realloc) (void *, size_t); > void (*db_free) (void *); ># 1612 "/usr/include/db.h" 3 4 > u_int32_t verbose; > > void *app_private; > > int (*app_dispatch) > (DB_ENV *, DBT *, DB_LSN *, db_recops); > > > u_int8_t *lk_conflicts; > u_int32_t lk_modes; > u_int32_t lk_max; > u_int32_t lk_max_lockers; > u_int32_t lk_max_objects; > u_int32_t lk_detect; > db_timeout_t lk_timeout; > > > u_int32_t lg_bsize; > u_int32_t lg_size; > u_int32_t lg_regionmax; > > > u_int32_t mp_gbytes; > u_int32_t mp_bytes; > size_t mp_size; > int mp_ncache; > size_t mp_mmapsize; > int mp_maxwrite; > int > mp_maxwrite_sleep; > > > int rep_eid; > int (*rep_send) > (DB_ENV *, const DBT *, const DBT *, const DB_LSN *, int, u_int32_t); > > > > u_int32_t tx_max; > time_t tx_timestamp; > db_timeout_t tx_timeout; > > > > > > char *db_home; > char *db_log_dir; > char *db_tmp_dir; > > char **db_data_dir; > int data_cnt; > int data_next; > > int db_mode; > u_int32_t open_flags; > > void *reginfo; > DB_FH *lockfhp; > > int (**recover_dtab) > (DB_ENV *, DBT *, DB_LSN *, db_recops, void *); > size_t recover_dtab_size; > > > void *cl_handle; > long cl_id; > > int db_ref; > > long shm_key; > u_int32_t tas_spins; ># 1698 "/usr/include/db.h" 3 4 > DB_MUTEX *dblist_mutexp; > struct { > struct __db *lh_first; > } dblist; ># 1711 "/usr/include/db.h" 3 4 > struct { > struct __db_env *tqe_next; > struct __db_env **tqe_prev; > } links; > struct __xa_txn { > struct __db_txn *tqh_first; > struct __db_txn **tqh_last; > } xa_txn; > int xa_rmid; > > > void *api1_internal; > void *api2_internal; > > char *passwd; > size_t passwd_len; > void *crypto_handle; > DB_MUTEX *mt_mutexp; > int mti; > u_long *mt; > > > int (*close) (DB_ENV *, u_int32_t); > int (*dbremove) (DB_ENV *, DB_TXN *, const char *, const char *, u_int32_t); > > int (*dbrename) (DB_ENV *, DB_TXN *, const char *, const char *, const char *, u_int32_t); > > void (*err) (const DB_ENV *, int, const char *, ...); > void (*errx) (const DB_ENV *, const char *, ...); > int (*get_home) (DB_ENV *, const char **); > int (*get_open_flags) (DB_ENV *, u_int32_t *); > int (*open) (DB_ENV *, const char *, u_int32_t, int); > int (*remove) (DB_ENV *, const char *, u_int32_t); > int (*set_alloc) (DB_ENV *, void *(*)(size_t), void *(*)(void *, size_t), void (*)(void *)); > > int (*set_app_dispatch) (DB_ENV *, int (*)(DB_ENV *, DBT *, DB_LSN *, db_recops)); > > int (*get_data_dirs) (DB_ENV *, const char ***); > int (*set_data_dir) (DB_ENV *, const char *); > int (*get_encrypt_flags) (DB_ENV *, u_int32_t *); > int (*set_encrypt) (DB_ENV *, const char *, u_int32_t); > void (*set_errcall) (DB_ENV *, void (*)(const char *, char *)); > void (*get_errfile) (DB_ENV *, FILE **); > void (*set_errfile) (DB_ENV *, FILE *); > void (*get_errpfx) (DB_ENV *, const char **); > void (*set_errpfx) (DB_ENV *, const char *); > int (*set_feedback) (DB_ENV *, void (*)(DB_ENV *, int, int)); > int (*get_flags) (DB_ENV *, u_int32_t *); > int (*set_flags) (DB_ENV *, u_int32_t, int); > int (*set_paniccall) (DB_ENV *, void (*)(DB_ENV *, int)); > int (*set_rpc_server) (DB_ENV *, void *, const char *, long, long, u_int32_t); > > int (*get_shm_key) (DB_ENV *, long *); > int (*set_shm_key) (DB_ENV *, long); > int (*get_tas_spins) (DB_ENV *, u_int32_t *); > int (*set_tas_spins) (DB_ENV *, u_int32_t); > int (*get_tmp_dir) (DB_ENV *, const char **); > int (*set_tmp_dir) (DB_ENV *, const char *); > int (*get_verbose) (DB_ENV *, u_int32_t, int *); > int (*set_verbose) (DB_ENV *, u_int32_t, int); > > void *lg_handle; > int (*get_lg_bsize) (DB_ENV *, u_int32_t *); > int (*set_lg_bsize) (DB_ENV *, u_int32_t); > int (*get_lg_dir) (DB_ENV *, const char **); > int (*set_lg_dir) (DB_ENV *, const char *); > int (*get_lg_max) (DB_ENV *, u_int32_t *); > int (*set_lg_max) (DB_ENV *, u_int32_t); > int (*get_lg_regionmax) (DB_ENV *, u_int32_t *); > int (*set_lg_regionmax) (DB_ENV *, u_int32_t); > int (*log_archive) (DB_ENV *, char **[], u_int32_t); > int (*log_cursor) (DB_ENV *, DB_LOGC **, u_int32_t); > int (*log_file) (DB_ENV *, const DB_LSN *, char *, size_t); > int (*log_flush) (DB_ENV *, const DB_LSN *); > int (*log_put) (DB_ENV *, DB_LSN *, const DBT *, u_int32_t); > int (*log_stat) (DB_ENV *, DB_LOG_STAT **, u_int32_t); > > void *lk_handle; > int (*get_lk_conflicts) (DB_ENV *, const u_int8_t **, int *); > int (*set_lk_conflicts) (DB_ENV *, u_int8_t *, int); > int (*get_lk_detect) (DB_ENV *, u_int32_t *); > int (*set_lk_detect) (DB_ENV *, u_int32_t); > int (*set_lk_max) (DB_ENV *, u_int32_t); > int (*get_lk_max_locks) (DB_ENV *, u_int32_t *); > int (*set_lk_max_locks) (DB_ENV *, u_int32_t); > int (*get_lk_max_lockers) (DB_ENV *, u_int32_t *); > int (*set_lk_max_lockers) (DB_ENV *, u_int32_t); > int (*get_lk_max_objects) (DB_ENV *, u_int32_t *); > int (*set_lk_max_objects) (DB_ENV *, u_int32_t); > int (*lock_detect) (DB_ENV *, u_int32_t, u_int32_t, int *); > int (*lock_dump_region) (DB_ENV *, const char *, FILE *); > int (*lock_get) (DB_ENV *, u_int32_t, u_int32_t, const DBT *, db_lockmode_t, DB_LOCK *); > > int (*lock_put) (DB_ENV *, DB_LOCK *); > int (*lock_id) (DB_ENV *, u_int32_t *); > int (*lock_id_free) (DB_ENV *, u_int32_t); > int (*lock_stat) (DB_ENV *, DB_LOCK_STAT **, u_int32_t); > int (*lock_vec) (DB_ENV *, u_int32_t, u_int32_t, DB_LOCKREQ *, int, DB_LOCKREQ **); > > > void *mp_handle; > int (*get_cachesize) (DB_ENV *, u_int32_t *, u_int32_t *, int *); > int (*set_cachesize) (DB_ENV *, u_int32_t, u_int32_t, int); > int (*get_mp_mmapsize) (DB_ENV *, size_t *); > int (*set_mp_mmapsize) (DB_ENV *, size_t); > int (*get_mp_maxwrite) (DB_ENV *, int *, int *); > int (*set_mp_maxwrite) (DB_ENV *, int, int); > int (*memp_dump_region) (DB_ENV *, const char *, FILE *); > int (*memp_fcreate) (DB_ENV *, DB_MPOOLFILE **, u_int32_t); > int (*memp_register) (DB_ENV *, int, int (*)(DB_ENV *, db_pgno_t, void *, DBT *), int (*)(DB_ENV *, db_pgno_t, void *, DBT *)); > > > int (*memp_stat) (DB_ENV *, DB_MPOOL_STAT **, DB_MPOOL_FSTAT ***, u_int32_t); > > int (*memp_sync) (DB_ENV *, DB_LSN *); > int (*memp_trickle) (DB_ENV *, int, int *); > > void *rep_handle; > int (*rep_elect) (DB_ENV *, int, int, u_int32_t, int *); > int (*rep_flush) (DB_ENV *); > int (*rep_process_message) (DB_ENV *, DBT *, DBT *, int *, DB_LSN *); > > int (*rep_start) (DB_ENV *, DBT *, u_int32_t); > int (*rep_stat) (DB_ENV *, DB_REP_STAT **, u_int32_t); > int (*get_rep_limit) (DB_ENV *, u_int32_t *, u_int32_t *); > int (*set_rep_limit) (DB_ENV *, u_int32_t, u_int32_t); > int (*set_rep_request) (DB_ENV *, u_int32_t, u_int32_t); > int (*set_rep_transport) (DB_ENV *, int, int (*) (DB_ENV *, const DBT *, const DBT *, const DB_LSN *, int, u_int32_t)); > > > > void *tx_handle; > int (*get_tx_max) (DB_ENV *, u_int32_t *); > int (*set_tx_max) (DB_ENV *, u_int32_t); > int (*get_tx_timestamp) (DB_ENV *, time_t *); > int (*set_tx_timestamp) (DB_ENV *, time_t *); > int (*txn_begin) (DB_ENV *, DB_TXN *, DB_TXN **, u_int32_t); > int (*txn_checkpoint) (DB_ENV *, u_int32_t, u_int32_t, u_int32_t); > int (*txn_recover) (DB_ENV *, DB_PREPLIST *, long, long *, u_int32_t); > > int (*txn_stat) (DB_ENV *, DB_TXN_STAT **, u_int32_t); > int (*get_timeout) (DB_ENV *, db_timeout_t *, u_int32_t); > int (*set_timeout) (DB_ENV *, db_timeout_t, u_int32_t); ># 1864 "/usr/include/db.h" 3 4 > int test_abort; > int test_copy; ># 1893 "/usr/include/db.h" 3 4 > u_int32_t flags; >}; ># 2057 "/usr/include/db.h" 3 4 >int db_create_4002 (DB **, DB_ENV *, u_int32_t); >char *db_strerror_4002 (int); >int db_env_create_4002 (DB_ENV **, u_int32_t); >char *db_version_4002 (int *, int *, int *); >int log_compare_4002 (const DB_LSN *, const DB_LSN *); >int db_env_set_func_close_4002 (int (*)(int)); >int db_env_set_func_dirfree_4002 (void (*)(char **, int)); >int db_env_set_func_dirlist_4002 (int (*)(const char *, char ***, int *)); >int db_env_set_func_exists_4002 (int (*)(const char *, int *)); >int db_env_set_func_free_4002 (void (*)(void *)); >int db_env_set_func_fsync_4002 (int (*)(int)); >int db_env_set_func_ioinfo_4002 (int (*)(const char *, int, u_int32_t *, u_int32_t *, u_int32_t *)); >int db_env_set_func_malloc_4002 (void *(*)(size_t)); >int db_env_set_func_map_4002 (int (*)(char *, size_t, int, int, void **)); >int db_env_set_func_open_4002 (int (*)(const char *, int, ...)); >int db_env_set_func_read_4002 (ssize_t (*)(int, void *, size_t)); >int db_env_set_func_realloc_4002 (void *(*)(void *, size_t)); >int db_env_set_func_rename_4002 (int (*)(const char *, const char *)); >int db_env_set_func_seek_4002 (int (*)(int, size_t, db_pgno_t, u_int32_t, int, int)); >int db_env_set_func_sleep_4002 (int (*)(u_long, u_long)); >int db_env_set_func_unlink_4002 (int (*)(const char *)); >int db_env_set_func_unmap_4002 (int (*)(void *, size_t)); >int db_env_set_func_write_4002 (ssize_t (*)(int, const void *, size_t)); >int db_env_set_func_yield_4002 (int (*)(void)); ># 104 "dbstuff.h" 2 ># 528 "dbstuff.h" >typedef struct { > DB *dbptr; > int lockfd; >} open_db; > > > > > > >typedef struct { > time_t time_stamp; >} dbdata_generic; > > > > > >typedef struct { > time_t time_stamp; > > time_t first_failed; > time_t last_try; > time_t next_try; > BOOL expired; > int basic_errno; > int more_errno; > uschar text[1]; >} dbdata_retry; ># 578 "dbstuff.h" >typedef struct { > time_t time_stamp; > > int result; > int postmaster_result; > int random_result; >} dbdata_callout_cache_obs; > >typedef struct { > time_t time_stamp; > > int result; >} dbdata_callout_cache_address; > > > > > >typedef struct { > time_t time_stamp; > > int result; > int postmaster_result; > int random_result; > time_t postmaster_stamp; > time_t random_stamp; >} dbdata_callout_cache; > > > > >typedef struct { > time_t time_stamp; > > int count; > int sequence; > uschar text[1]; >} dbdata_wait; ># 629 "dbstuff.h" >typedef struct { > time_t time_stamp; > > int count; >} dbdata_serialize; > > > > > >typedef struct { > time_t time_stamp; > > int time_usec; > double rate; >} dbdata_ratelimit; ># 434 "exim.h" 2 ># 1 "structs.h" 1 ># 21 "structs.h" >struct address_item; >struct auth_info; >struct driver_info; >struct director_info; >struct smtp_inblock; >struct smtp_outblock; >struct transport_info; >struct router_info; > > > >typedef struct macro_item { > struct macro_item *next; > BOOL command_line; > uschar *replacement; > uschar name[1]; >} macro_item; > > > >typedef struct bit_table { > uschar *name; > unsigned int bit; >} bit_table; > > > >typedef struct ugid_block { > uid_t uid; > gid_t gid; > BOOL uid_set; > BOOL gid_set; > BOOL initgroups; >} ugid_block; > > > > > >typedef struct host_item { > struct host_item *next; > uschar *name; > uschar *address; > int port; > int mx; > int sort_key; > int status; > int why; > int last_try; >} host_item; > > > > >typedef struct rewrite_rule { > struct rewrite_rule *next; > int flags; > uschar *key; > uschar *replacement; >} rewrite_rule; > > > > > >typedef struct transport_feedback { > uschar *interface; > uschar *port; > uschar *protocol; > uschar *hosts; > uschar *helo_data; > BOOL hosts_override; > BOOL hosts_randomize; > BOOL gethostbyname; > BOOL qualify_single; > BOOL search_parents; >} transport_feedback; ># 106 "structs.h" >typedef struct driver_instance { > struct driver_instance *next; > uschar *name; > struct driver_info *info; > void *options_block; > uschar *driver_name; >} driver_instance; > >typedef struct driver_info { > uschar *driver_name; > optionlist *options; > int *options_count; > void *options_block; > int options_len; > void (*init)( > struct driver_instance *); >} driver_info; ># 131 "structs.h" >typedef struct transport_instance { > struct transport_instance *next; > uschar *name; > struct transport_info *info; > void *options_block; > uschar *driver_name; > int (*setup)( > struct transport_instance *, > struct address_item *, > struct transport_feedback *, > uid_t, > gid_t, > uschar **); > > int batch_max; > uschar *batch_id; > uschar *home_dir; > uschar *current_dir; > > BOOL multi_domain; > BOOL overrides_hosts; > int max_addresses; > int connection_max_messages; > > BOOL deliver_as_creator; > BOOL disable_logging; > BOOL initgroups; > BOOL uid_set; > BOOL gid_set; > uid_t uid; > gid_t gid; > uschar *expand_uid; > uschar *expand_gid; > uschar *warn_message; > uschar *shadow; > uschar *shadow_condition; > uschar *filter_command; > uschar *add_headers; > uschar *remove_headers; > uschar *return_path; > uschar *debug_string; > uschar *message_size_limit; > uschar *headers_rewrite; > rewrite_rule *rewrite_rules; > int rewrite_existflags; > int filter_timeout; > BOOL body_only; > BOOL delivery_date_add; > BOOL envelope_to_add; > BOOL headers_only; > BOOL rcpt_include_affixes; > BOOL return_path_add; > BOOL return_output; > BOOL return_fail_output; > BOOL log_output; > BOOL log_fail_output; > BOOL log_defer_output; > BOOL retry_use_local_part; >} transport_instance; > > > > > >typedef struct transport_info { > uschar *driver_name; > optionlist *options; > int *options_count; > void *options_block; > int options_len; > void (*init)( > struct transport_instance *); > > BOOL (*code)( > transport_instance *, > struct address_item *); > void (*tidyup)( > struct transport_instance *); > void (*closedown)( > struct transport_instance *); > BOOL local; >} transport_info; > > > > > >typedef struct router_instance { > struct router_instance *next; > uschar *name; > struct router_info *info; > void *options_block; > uschar *driver_name; > > uschar *address_data; > > > > uschar *cannot_route_message; > uschar *condition; > uschar *current_directory; > uschar *debug_string; > uschar *domains; > uschar *errors_to; > uschar *expand_gid; > uschar *expand_uid; > uschar *expand_more; > uschar *expand_unseen; > uschar *extra_headers; > uschar *fallback_hosts; > uschar *home_directory; > uschar *ignore_target_hosts; > uschar *local_parts; > uschar *pass_router_name; > uschar *prefix; > uschar *redirect_router_name; > uschar *remove_headers; > uschar *require_files; > uschar *router_home_directory; > uschar *self; > uschar *senders; > uschar *suffix; > uschar *translate_ip_address; > uschar *transport_name; > > BOOL address_test; > > > > > > BOOL expn; > BOOL caseful_local_part; > BOOL check_local_user; > BOOL disable_logging; > BOOL fail_verify_recipient; > BOOL fail_verify_sender; > BOOL gid_set; > BOOL initgroups; > BOOL log_as_local; > BOOL more; > BOOL pass_on_timeout; > BOOL prefix_optional; > BOOL repeat_use; > BOOL retry_use_local_part; > BOOL same_domain_copy_routing; > BOOL self_rewrite; > BOOL suffix_optional; > BOOL verify_only; > BOOL verify_recipient; > BOOL verify_sender; > BOOL uid_set; > BOOL unseen; > > int self_code; > uid_t uid; > gid_t gid; > > host_item *fallback_hostlist; > transport_instance *transport; > struct router_instance *pass_router; > struct router_instance *redirect_router; >} router_instance; > > > > > >typedef struct router_info { > uschar *driver_name; > optionlist *options; > int *options_count; > void *options_block; > int options_len; > void (*init)( > struct router_instance *); > > int (*code)( > router_instance *, > struct address_item *, > struct passwd *, > int, > struct address_item **, > struct address_item **, > struct address_item **, > struct address_item **); > void (*tidyup)( > struct router_instance *); > int ri_flags; >} router_info; > > > > >typedef struct lookup_info { > uschar *name; > int type; > void *(*open)( > uschar *, > uschar **); > BOOL (*check)( > void *, > uschar *, > int, > uid_t *, > gid_t *, > uschar **); > int (*find)( > void *, > uschar *, > uschar *, > int, > uschar **, > uschar **, > BOOL *); > void (*close)( > void *); > void (*tidy)(void); > uschar *(*quote)( > uschar *, > uschar *); >} lookup_info; > > > > > >typedef struct auth_instance { > struct auth_instance *next; > uschar *name; > struct auth_info *info; > void *options_block; > uschar *driver_name; > uschar *advertise_condition; > uschar *client_condition; > uschar *public_name; > uschar *set_id; > uschar *mail_auth_condition; > uschar *server_debug_string; > uschar *server_condition; > BOOL client; > BOOL server; > BOOL advertised; >} auth_instance; > > > > > >typedef struct auth_info { > uschar *driver_name; > optionlist *options; > int *options_count; > void *options_block; > int options_len; > void (*init)( > struct auth_instance *); > > int (*servercode)( > auth_instance *, > uschar *); > int (*clientcode)( > struct auth_instance *, > struct smtp_inblock *, > struct smtp_outblock *, > int, > uschar *, > int); >} auth_info; > > > > > > >typedef struct ip_address_item { > struct ip_address_item *next; > int port; > BOOL v6_include_v4; > uschar address[46]; >} ip_address_item; > > > >typedef struct string_item { > struct string_item *next; > uschar *text; >} string_item; > > > > > > >typedef struct retry_item { > struct retry_item *next; > uschar *key; > int basic_errno; > int more_errno; > uschar *message; > int flags; >} retry_item; ># 443 "structs.h" >typedef struct reply_item { > uschar *from; > uschar *reply_to; > uschar *to; > uschar *cc; > uschar *bcc; > uschar *subject; > uschar *headers; > uschar *text; > uschar *file; > BOOL file_expand; > int expand_forbid; > uschar *logfile; > uschar *oncelog; > time_t once_repeat; > BOOL return_message; >} reply_item; ># 469 "structs.h" >typedef struct address_item_propagated { > uschar *address_data; > uschar *domain_data; > uschar *localpart_data; > uschar *errors_address; > header_line *extra_headers; > uschar *remove_headers; > > > > >} address_item_propagated; ># 520 "structs.h" >typedef struct address_item { > struct address_item *next; > struct address_item *parent; > struct address_item *first; > struct address_item *dupof; > > router_instance *start_router; > router_instance *router; > transport_instance *transport; > > host_item *host_list; > host_item *host_used; > host_item *fallback_hosts; > > reply_item *reply; > retry_item *retries; > > uschar *address; > uschar *unique; > uschar *cc_local_part; > uschar *lc_local_part; > uschar *local_part; > uschar *prefix; > uschar *suffix; > uschar *domain; > > uschar *address_retry_key; > uschar *domain_retry_key; > > uschar *current_dir; > uschar *home_dir; > uschar *message; > uschar *user_message; > > uschar *onetime_parent; > uschar **pipe_expandn; > uschar *return_filename; > uschar *self_hostname; > uschar *shadow_message; > > > uschar *cipher; > uschar *peerdn; > > > uid_t uid; > gid_t gid; > > unsigned int flags; > unsigned int domain_cache[(16 * 2)/32]; > unsigned int localpart_cache[(16 * 2)/32]; > int mode; > int more_errno; > > > short int basic_errno; > short int child_count; > short int return_file; > short int special_action; > > > > > short int transport_return; > address_item_propagated p; >} address_item; > > > >typedef struct { > uschar *name; > int len; > BOOL allow_resent; > int htype; >} header_name; > > > >typedef struct error_block { > struct error_block *next; > uschar *text1; > uschar *text2; >} error_block; > > > >typedef struct queue_filename { > struct queue_filename *next; > uschar dir_uschar; > uschar text[1]; >} queue_filename; > > > >typedef struct retry_rule { > struct retry_rule *next; > int rule; > int timeout; > int p1; > int p2; >} retry_rule; > >typedef struct retry_config { > struct retry_config *next; > uschar *pattern; > int basic_errno; > int more_errno; > uschar *senders; > retry_rule *rules; >} retry_config; > > > >typedef struct tree_node { > struct tree_node *left; > struct tree_node *right; > union > { > void *ptr; > int val; > } data; > uschar balance; > uschar name[1]; >} tree_node; > > > > > > >typedef struct search_cache { > void *handle; > int search_type; > tree_node *up; > tree_node *down; > tree_node *item_cache; >} search_cache; > > > > >typedef struct { > uschar name[256]; > int type; > int size; > uschar *data; >} dns_record; > > > >typedef struct { > int answerlen; > uschar answer[2048]; >} dns_answer; > > > > >typedef struct { > int rrcount; > uschar *aptr; > dns_record srr; >} dns_scan; ># 691 "structs.h" >typedef struct dns_address { > struct dns_address *next; > uschar address[1]; >} dns_address; > > > >typedef struct md5 { > unsigned int length; > unsigned int abcd[4]; > } >md5; > > > >typedef struct sha1 { > unsigned int H[5]; > unsigned int length; > } >sha1; > > > > > >typedef struct smtp_inblock { > int sock; > int buffersize; > uschar *ptr; > uschar *ptrend; > uschar *buffer; >} smtp_inblock; > > > > > >typedef struct smtp_outblock { > int sock; > int cmd_count; > int buffersize; > BOOL authenticating; > uschar *ptr; > uschar *buffer; >} smtp_outblock; > > > >typedef struct redirect_block { > uschar *string; > uid_t *owners; > gid_t *owngroups; > struct passwd *pw; > int modemask; > BOOL isfile; > BOOL check_owner; > BOOL check_group; >} redirect_block; > > > >typedef struct check_host_block { > uschar *host_name; > uschar *host_address; > uschar *host_ipv4; > BOOL negative; >} check_host_block; > > > > >typedef struct namedlist_cacheblock { > struct namedlist_cacheblock *next; > uschar *key; > uschar *data; >} namedlist_cacheblock; > > > >typedef struct namedlist_block { > uschar *string; > namedlist_cacheblock *cache_data; > int number; >} namedlist_block; > > > >typedef struct acl_condition_block { > struct acl_condition_block *next; > uschar *arg; > int type; > union { > BOOL negated; > uschar *varname; > } u; >} acl_condition_block; > >typedef struct acl_block { > struct acl_block *next; > acl_condition_block *condition; > int verb; >} acl_block; ># 435 "exim.h" 2 ># 1 "globals.h" 1 ># 66 "globals.h" >extern int tls_active; >extern BOOL tls_certificate_verified; >extern uschar *tls_cipher; >extern BOOL tls_on_connect; >extern uschar *tls_on_connect_ports; >extern uschar *tls_peerdn; > > >extern uschar *gnutls_require_mac; >extern uschar *gnutls_require_kx; >extern uschar *gnutls_require_proto; >extern const pcre *regex_STARTTLS; >extern uschar *tls_advertise_hosts; >extern uschar *tls_certificate; >extern uschar *tls_crl; >extern uschar *tls_dhparam; >extern BOOL tls_offered; >extern uschar *tls_privatekey; >extern BOOL tls_remember_esmtp; >extern uschar *tls_require_ciphers; >extern uschar *tls_try_verify_hosts; >extern uschar *tls_verify_certificates; >extern uschar *tls_verify_hosts; > > > >extern uschar *local_scan_path; > > > > > >extern int (*receive_getc)(void); >extern int (*receive_ungetc)(int); >extern int (*receive_feof)(void); >extern int (*receive_ferror)(void); >extern BOOL (*receive_smtp_buffered)(void); > > > > > > >extern uschar **address_expansions[18]; > > > >extern BOOL accept_8bitmime; >extern header_line *acl_added_headers; >extern tree_node *acl_anchor; >extern uschar *acl_not_smtp; > >extern uschar *acl_not_smtp_mime; > >extern uschar *acl_not_smtp_start; >extern uschar *acl_smtp_auth; >extern uschar *acl_smtp_connect; >extern uschar *acl_smtp_data; >extern uschar *acl_smtp_etrn; >extern uschar *acl_smtp_expn; >extern uschar *acl_smtp_helo; >extern uschar *acl_smtp_mail; >extern uschar *acl_smtp_mailauth; > >extern uschar *acl_smtp_mime; > >extern uschar *acl_smtp_notquit; >extern uschar *acl_smtp_predata; >extern uschar *acl_smtp_quit; >extern uschar *acl_smtp_rcpt; >extern uschar *acl_smtp_starttls; >extern uschar *acl_smtp_vrfy; >extern BOOL acl_temp_details; >extern tree_node *acl_var_c; >extern tree_node *acl_var_m; >extern uschar *acl_verify_message; >extern string_item *acl_warn_logged; >extern uschar *acl_wherecodes[]; >extern uschar *acl_wherenames[]; >extern BOOL active_local_from_check; >extern BOOL active_local_sender_retain; >extern address_item *addr_duplicate; >extern address_item address_defaults; >extern uschar *address_file; >extern uschar *address_pipe; >extern BOOL address_test_mode; >extern tree_node *addresslist_anchor; >extern int addresslist_count; >extern gid_t *admin_groups; >extern BOOL admin_user; >extern BOOL allow_auth_unadvertised; >extern BOOL allow_domain_literals; >extern BOOL allow_mx_to_ip; >extern BOOL allow_unqualified_recipient; >extern BOOL allow_unqualified_sender; >extern BOOL allow_utf8_domains; >extern uschar *authenticated_id; >extern uschar *authenticated_sender; >extern BOOL authentication_failed; >extern uschar *auth_advertise_hosts; >extern auth_info auths_available[]; >extern auth_instance *auths; >extern auth_instance auth_defaults; >extern uschar *auth_defer_msg; >extern uschar *auth_defer_user_msg; >extern uschar *auth_vars[]; >extern int auto_thaw; > >extern uschar *av_scanner; > > >extern BOOL background_daemon; >extern uschar *base62_chars; >extern uschar *bi_command; >extern uschar *big_buffer; >extern int big_buffer_size; ># 191 "globals.h" >extern uschar *bounce_message_file; >extern uschar *bounce_message_text; >extern uschar *bounce_recipient; >extern BOOL bounce_return_body; >extern BOOL bounce_return_message; >extern int bounce_return_size_limit; >extern uschar *bounce_sender_authentication; >extern int bsmtp_transaction_linecount; > >extern int callout_cache_domain_positive_expire; >extern int callout_cache_domain_negative_expire; >extern int callout_cache_positive_expire; >extern int callout_cache_negative_expire; >extern uschar *callout_random_local_part; >extern uschar *check_dns_names_pattern; >extern int check_log_inodes; >extern int check_log_space; >extern BOOL check_rfc2047_length; >extern int check_spool_inodes; >extern int check_spool_space; >extern int clmacro_count; >extern uschar *clmacros[]; >extern int connection_max_messages; >extern BOOL config_changed; >extern FILE *config_file; >extern uschar *config_filename; > > > >extern int config_lineno; >extern uschar *config_main_filelist; >extern uschar *config_main_filename; > > > >extern uschar *continue_hostname; >extern uschar *continue_host_address; >extern BOOL continue_more; >extern int continue_sequence; >extern uschar *continue_transport; > >extern uschar *csa_status; > >extern BOOL daemon_listen; >extern uschar *daemon_smtp_port; >extern int daemon_startup_retries; >extern int daemon_startup_sleep; >extern BOOL debug_daemon; >extern int debug_fd; >extern FILE *debug_file; >extern bit_table debug_options[]; >extern int debug_options_count; >extern int delay_warning[]; >extern uschar *delay_warning_condition; >extern BOOL delivery_date_remove; > >extern uschar *deliver_address_data; >extern int deliver_datafile; >extern uschar *deliver_domain; >extern uschar *deliver_domain_data; >extern uschar *deliver_domain_orig; >extern uschar *deliver_domain_parent; >extern BOOL deliver_drop_privilege; >extern BOOL deliver_firsttime; >extern BOOL deliver_force; >extern BOOL deliver_freeze; >extern int deliver_frozen_at; >extern uschar *deliver_home; >extern uschar *deliver_host; > >extern uschar *deliver_host_address; >extern uschar *deliver_in_buffer; >extern ino_t deliver_inode; >extern uschar *deliver_localpart; >extern uschar *deliver_localpart_data; >extern uschar *deliver_localpart_orig; >extern uschar *deliver_localpart_parent; >extern uschar *deliver_localpart_prefix; >extern uschar *deliver_localpart_suffix; >extern BOOL deliver_force_thaw; >extern BOOL deliver_manual_thaw; >extern uschar *deliver_out_buffer; >extern int deliver_queue_load_max; >extern address_item *deliver_recipients; >extern uschar *deliver_selectstring; >extern BOOL deliver_selectstring_regex; >extern uschar *deliver_selectstring_sender; >extern BOOL deliver_selectstring_sender_regex; > >extern int demime_errorlevel; >extern int demime_ok; >extern uschar *demime_reason; > >extern BOOL disable_callout_flush; >extern BOOL disable_delay_flush; > > > >extern BOOL disable_ipv6; >extern BOOL disable_logging; ># 304 "globals.h" >extern uschar *dns_again_means_nonexist; >extern int dns_csa_search_limit; >extern BOOL dns_csa_use_reverse; >extern uschar *dns_ipv4_lookup; >extern int dns_retrans; >extern int dns_retry; >extern uschar *dnslist_domain; >extern uschar *dnslist_matched; >extern uschar *dnslist_text; >extern uschar *dnslist_value; >extern tree_node *domainlist_anchor; >extern int domainlist_count; >extern BOOL dont_deliver; >extern BOOL dot_ends; > > >extern BOOL drop_cr; > >extern uschar *dsn_from; > >extern BOOL enable_dollar_recipients; >extern int envelope_to_remove; >extern int errno_quota; >extern int error_handling; >extern uschar *errors_copy; >extern uschar *errors_reply_to; >extern int errors_sender_rc; >extern gid_t exim_gid; >extern BOOL exim_gid_set; >extern uschar *exim_path; >extern uid_t exim_uid; >extern BOOL exim_uid_set; >extern int expand_forbid; >extern int expand_nlength[]; >extern int expand_nmax; >extern uschar *expand_nstring[]; >extern BOOL expand_string_forcedfail; >extern BOOL extract_addresses_remove_arguments; >extern uschar *extra_local_interfaces; > >extern int fake_response; >extern uschar *fake_response_text; >extern int filter_n[10]; >extern BOOL filter_running; >extern int filter_sn[10]; >extern int filter_test; >extern uschar *filter_test_sfile; >extern uschar *filter_test_ufile; >extern uschar *filter_thisaddress; >extern int finduser_retries; >extern uid_t fixed_never_users[]; > >extern uschar *found_extension; > >extern uschar *freeze_tell; >extern uschar *freeze_tell_config; >extern uschar *fudged_queue_times; > >extern uschar *gecos_name; >extern uschar *gecos_pattern; >extern rewrite_rule *global_rewrite_rules; > >extern int header_insert_maxlen; >extern int header_maxsize; >extern int header_line_maxsize; >extern header_name header_names[]; >extern int header_names_size; >extern BOOL header_rewritten; >extern uschar *helo_accept_junk_hosts; >extern uschar *helo_allow_chars; >extern uschar *helo_lookup_domains; >extern uschar *helo_try_verify_hosts; >extern BOOL helo_verified; >extern BOOL helo_verify_failed; >extern uschar *helo_verify_hosts; >extern uschar *hex_digits; >extern uschar *hold_domains; >extern BOOL host_find_failed_syntax; >extern BOOL host_checking_callout; >extern uschar *host_data; >extern uschar *host_lookup; >extern BOOL host_lookup_deferred; >extern BOOL host_lookup_failed; >extern uschar *host_lookup_order; >extern uschar *host_lookup_msg; >extern int host_number; >extern uschar *host_number_string; >extern uschar *host_reject_connection; >extern tree_node *hostlist_anchor; >extern int hostlist_count; >extern uschar *hosts_connection_nolog; >extern uschar *hosts_treat_as_local; > >extern int ignore_bounce_errors_after; >extern BOOL ignore_fromline_local; >extern uschar *ignore_fromline_hosts; >extern BOOL is_inetd; >extern uschar *iterate_item; > >extern int journal_fd; > >extern int keep_malformed; > >extern uschar *eldap_dn; >extern int load_average; >extern BOOL local_error_message; >extern BOOL local_from_check; >extern uschar *local_from_prefix; >extern uschar *local_from_suffix; >extern uschar *local_interfaces; >extern uschar *local_scan_data; >extern optionlist local_scan_options[]; >extern int local_scan_options_count; >extern int local_scan_timeout; >extern BOOL local_sender_retain; >extern gid_t local_user_gid; >extern uid_t local_user_uid; >extern tree_node *localpartlist_anchor; >extern int localpartlist_count; >extern uschar *log_buffer; >extern unsigned int log_extra_selector; >extern uschar *log_file_path; >extern bit_table log_options[]; >extern int log_options_count; >extern int log_reject_target; >extern uschar *log_selector_string; >extern FILE *log_stderr; >extern BOOL log_testing_mode; >extern BOOL log_timezone; >extern unsigned int log_write_selector; >extern uschar *login_sender_address; >extern lookup_info lookup_list[]; >extern int lookup_list_count; >extern int lookup_open_max; >extern uschar *lookup_value; > >extern macro_item *macros; >extern uschar *mailstore_basename; > >extern uschar *malware_name; > >extern int max_received_linelength; >extern int max_username_length; >extern int message_age; >extern uschar *message_body; >extern uschar *message_body_end; >extern BOOL message_body_newlines; >extern int message_body_size; >extern int message_body_visible; >extern int message_ended; >extern uschar *message_headers; >extern uschar message_id_option[]; >extern uschar *message_id_external; >extern uschar *message_id_domain; >extern uschar *message_id_text; >extern struct timeval message_id_tv; >extern int message_linecount; >extern BOOL message_logs; >extern int message_size; >extern uschar *message_size_limit; >extern uschar message_subdir[]; >extern uschar *message_reference; > > > >extern int mime_anomaly_level; >extern uschar *mime_anomaly_text; >extern uschar *mime_boundary; >extern uschar *mime_charset; >extern uschar *mime_content_description; >extern uschar *mime_content_disposition; >extern uschar *mime_content_id; >extern unsigned int mime_content_size; >extern uschar *mime_content_transfer_encoding; >extern uschar *mime_content_type; >extern uschar *mime_decoded_filename; >extern uschar *mime_filename; >extern int mime_is_multipart; >extern int mime_is_coverletter; >extern int mime_is_rfc822; >extern int mime_part_count; > > >extern BOOL mua_wrapper; > >extern uid_t *never_users; > >extern BOOL no_mbox_unspool; > >extern BOOL no_multiline_responses; > >extern optionlist optionlist_auths[]; >extern int optionlist_auths_size; >extern optionlist optionlist_routers[]; >extern int optionlist_routers_size; >extern optionlist optionlist_transports[]; >extern int optionlist_transports_size; > >extern uid_t original_euid; >extern gid_t originator_gid; >extern uschar *originator_login; >extern uschar *originator_name; >extern uid_t originator_uid; >extern uschar *override_local_interfaces; >extern uschar *override_pid_file_path; > >extern BOOL parse_allow_group; >extern BOOL parse_found_group; >extern uschar *percent_hack_domains; >extern uschar *pid_file_path; >extern uschar *pipelining_advertise_hosts; >extern BOOL pipelining_enable; >extern BOOL preserve_message_logs; >extern uschar *primary_hostname; >extern BOOL print_topbitchars; >extern uschar process_info[]; >extern uschar *process_log_path; >extern BOOL prod_requires_admin; >extern uschar *prvscheck_address; >extern uschar *prvscheck_keynum; >extern uschar *prvscheck_result; > >extern uschar *qualify_domain_recipient; >extern uschar *qualify_domain_sender; >extern BOOL queue_2stage; >extern uschar *queue_domains; >extern BOOL queue_list_requires_admin; >extern BOOL queue_run_first_delivery; >extern BOOL queue_run_force; >extern BOOL queue_run_local; >extern BOOL queue_running; > >extern pid_t queue_run_pid; >extern int queue_run_pipe; >extern int queue_interval; >extern BOOL queue_only; >extern int queue_only_load; >extern BOOL queue_only_load_latch; >extern uschar *queue_only_file; >extern BOOL queue_only_override; >extern BOOL queue_only_policy; >extern BOOL queue_run_in_order; >extern int queue_run_max; >extern BOOL queue_smtp; >extern uschar *queue_smtp_domains; > >extern unsigned int random_seed; >extern tree_node *ratelimiters_cmd; >extern tree_node *ratelimiters_conn; >extern tree_node *ratelimiters_mail; >extern uschar *raw_active_hostname; >extern uschar *raw_sender; >extern uschar **raw_recipients; >extern int raw_recipients_count; >extern int rcpt_count; >extern int rcpt_fail_count; >extern int rcpt_defer_count; >extern gid_t real_gid; >extern uid_t real_uid; >extern BOOL really_exim; >extern BOOL receive_call_bombout; >extern int receive_linecount; >extern int receive_messagecount; >extern int receive_timeout; >extern int received_count; >extern uschar *received_for; >extern uschar *received_header_text; >extern int received_headers_max; >extern int received_time; >extern uschar *recipient_data; >extern uschar *recipient_unqualified_hosts; >extern uschar *recipient_verify_failure; >extern BOOL recipients_discarded; >extern int recipients_list_max; >extern int recipients_max; >extern int recipients_max_reject; >extern const pcre *regex_AUTH; >extern const pcre *regex_check_dns_names; >extern const pcre *regex_From; >extern const pcre *regex_IGNOREQUOTA; >extern const pcre *regex_PIPELINING; >extern const pcre *regex_SIZE; >extern const pcre *regex_smtp_code; >extern const pcre *regex_ismsgid; > >extern uschar *regex_match_string; > >extern int remote_delivery_count; >extern int remote_max_parallel; >extern uschar *remote_sort_domains; >extern retry_config *retries; >extern int retry_data_expire; >extern int retry_interval_max; >extern int retry_maximum_timeout; >extern uschar *return_path; >extern BOOL return_path_remove; >extern int rewrite_existflags; >extern uschar *rfc1413_hosts; >extern int rfc1413_query_timeout; > >extern uid_t root_uid; >extern router_info routers_available[]; >extern router_instance *routers; >extern router_instance router_defaults; >extern BOOL running_in_test_harness; >extern ip_address_item *running_interfaces; >extern uschar *running_status; >extern int runrc; > >extern uschar *search_error_message; >extern BOOL search_find_defer; >extern uschar *self_hostname; >extern unsigned int sender_address_cache[(16 * 2)/32]; >extern uschar *sender_address_data; >extern BOOL sender_address_forced; >extern uschar *sender_address_unrewritten; >extern uschar *sender_data; >extern unsigned int sender_domain_cache[(16 * 2)/32]; >extern uschar *sender_fullhost; >extern uschar *sender_helo_name; >extern uschar **sender_host_aliases; >extern unsigned int sender_host_cache[(16 * 2)/32]; >extern BOOL sender_host_notsocket; >extern BOOL sender_host_unknown; >extern uschar *sender_ident; >extern BOOL sender_local; >extern BOOL sender_name_forced; >extern uschar *sender_rate; >extern uschar *sender_rate_limit; >extern uschar *sender_rate_period; >extern uschar *sender_rcvhost; >extern BOOL sender_set_untrusted; >extern uschar *sender_unqualified_hosts; >extern uschar *sender_verify_failure; >extern address_item *sender_verified_list; >extern address_item *sender_verified_failed; >extern uschar *sending_ip_address; >extern int sending_port; >extern volatile BOOL sigalrm_seen; >extern uschar **sighup_argv; >extern int smtp_accept_count; >extern BOOL smtp_accept_keepalive; >extern int smtp_accept_max; >extern int smtp_accept_max_nonmail; >extern uschar *smtp_accept_max_nonmail_hosts; >extern int smtp_accept_max_per_connection; >extern uschar *smtp_accept_max_per_host; >extern int smtp_accept_queue; >extern int smtp_accept_queue_per_connection; >extern int smtp_accept_reserve; >extern uschar *smtp_active_hostname; >extern BOOL smtp_authenticated; >extern uschar *smtp_banner; >extern BOOL smtp_check_spool_space; >extern int smtp_ch_index; >extern uschar *smtp_cmd_argument; >extern uschar *smtp_cmd_buffer; >extern time_t smtp_connection_start; >extern uschar smtp_connection_had[]; >extern int smtp_connect_backlog; >extern double smtp_delay_mail; >extern double smtp_delay_rcpt; >extern BOOL smtp_enforce_sync; >extern uschar *smtp_etrn_command; >extern BOOL smtp_etrn_serialize; >extern FILE *smtp_in; >extern int smtp_load_reserve; >extern int smtp_mailcmd_count; >extern int smtp_max_synprot_errors; >extern int smtp_max_unknown_commands; >extern uschar *smtp_notquit_reason; >extern FILE *smtp_out; >extern uschar *smtp_ratelimit_hosts; >extern uschar *smtp_ratelimit_mail; >extern uschar *smtp_ratelimit_rcpt; >extern uschar *smtp_read_error; >extern int smtp_receive_timeout; >extern uschar *smtp_reserve_hosts; >extern BOOL smtp_return_error_details; >extern int smtp_rlm_base; >extern double smtp_rlm_factor; >extern int smtp_rlm_limit; >extern int smtp_rlm_threshold; >extern int smtp_rlr_base; >extern double smtp_rlr_factor; >extern int smtp_rlr_limit; >extern int smtp_rlr_threshold; >extern BOOL smtp_use_pipelining; >extern BOOL smtp_use_size; > > >extern uschar *spamd_address; >extern uschar *spam_bar; >extern uschar *spam_report; >extern uschar *spam_score; >extern uschar *spam_score_int; > > > > > > > >extern BOOL split_spool_directory; >extern uschar *spool_directory; ># 724 "globals.h" >extern BOOL strict_acl_vars; >extern int string_datestamp_offset; >extern BOOL strip_excess_angle_brackets; >extern BOOL strip_trailing_dot; >extern uschar *submission_domain; >extern BOOL submission_mode; >extern uschar *submission_name; >extern BOOL suppress_local_fixups; >extern BOOL synchronous_delivery; >extern BOOL syslog_duplication; >extern int syslog_facility; >extern uschar *syslog_processname; >extern BOOL syslog_timestamp; >extern uschar *system_filter; > >extern uschar *system_filter_directory_transport; >extern uschar *system_filter_file_transport; >extern uschar *system_filter_pipe_transport; >extern uschar *system_filter_reply_transport; > >extern gid_t system_filter_gid; >extern BOOL system_filter_gid_set; >extern uid_t system_filter_uid; >extern BOOL system_filter_uid_set; >extern BOOL system_filtering; > >extern BOOL tcp_nodelay; >extern int test_harness_load_avg; >extern int thismessage_size_limit; >extern int timeout_frozen_after; >extern BOOL timestamps_utc; >extern int transport_count; >extern uschar **transport_filter_argv; >extern int transport_filter_timeout; >extern BOOL transport_filter_timed_out; > >extern transport_info transports_available[]; >extern transport_instance *transports; >extern transport_instance transport_defaults; > >extern int transport_write_timeout; > >extern tree_node *tree_dns_fails; >extern tree_node *tree_duplicates; >extern tree_node *tree_nonrecipients; >extern tree_node *tree_unusable; > >extern BOOL trusted_caller; >extern gid_t *trusted_groups; >extern uid_t *trusted_users; >extern uschar *timezone_string; > >extern uschar *unknown_login; >extern uschar *unknown_username; >extern uschar *untrusted_set_sender; >extern uschar *uucp_from_pattern; >extern uschar *uucp_from_sender; > >extern uschar *warn_message_file; >extern uschar *warnmsg_delay; >extern uschar *warnmsg_recipients; >extern BOOL write_rejectlog; > >extern uschar *version_copyright; >extern uschar *version_date; >extern uschar *version_cnumber; >extern uschar *version_string; > >extern int warning_count; ># 436 "exim.h" 2 ># 1 "functions.h" 1 ># 26 "functions.h" >extern int tls_client_start(int, host_item *, address_item *, uschar *, > uschar *, uschar *, uschar *, uschar *, uschar *, uschar *, > uschar *, uschar *, int); >extern void tls_close(BOOL); >extern int tls_feof(void); >extern int tls_ferror(void); >extern int tls_getc(void); >extern int tls_read(uschar *, size_t); >extern int tls_server_start(uschar *, uschar *, uschar *, uschar *); >extern BOOL tls_smtp_buffered(void); >extern int tls_ungetc(int); >extern int tls_write(const uschar *, size_t); > > > > > >extern acl_block *acl_read(uschar *(*)(void), uschar **); >extern int acl_check(int, uschar *, uschar *, uschar **, uschar **); >extern tree_node *acl_var_create(uschar *); >extern void acl_var_write(uschar *, uschar *, void *); >extern uschar *auth_b64encode(uschar *, int); >extern int auth_b64decode(uschar *, uschar **); >extern int auth_call_pam(uschar *, uschar **); >extern int auth_call_pwcheck(uschar *, uschar **); >extern int auth_call_radius(uschar *, uschar **); >extern int auth_call_saslauthd(uschar *, uschar *, uschar *, uschar *, > uschar **); >extern int auth_check_serv_cond(auth_instance *); >extern int auth_get_data(uschar **, uschar *, int); >extern int auth_get_no64_data(uschar **, uschar *); >extern uschar *auth_xtextencode(uschar *, int); >extern int auth_xtextdecode(uschar *, uschar **); > >extern int check_host(void *, uschar *, uschar **, uschar **); >extern uschar **child_exec_exim(int, BOOL, int *, BOOL, int, ...); >extern pid_t child_open_uid(uschar **, uschar **, int, uid_t *, gid_t *, > int *, int *, uschar *, BOOL); > >extern void daemon_go(void); >extern void debug_print_argv(uschar **); >extern void debug_print_ids(uschar *); >extern void debug_print_string(uschar *); >extern void debug_print_tree(tree_node *); >extern void debug_vprintf(char *, va_list); >extern address_item *deliver_make_addr(uschar *, BOOL); >extern int deliver_message(uschar *, BOOL, BOOL); >extern void deliver_msglog(const char *, ...); >extern void deliver_set_expansions(address_item *); >extern int deliver_split_address(address_item *); >extern void deliver_succeeded(address_item *); > >extern int demime(uschar **); > >extern BOOL directory_make(uschar *, uschar *, int, BOOL); ># 91 "functions.h" >extern dns_address *dns_address_from_rr(dns_answer *, dns_record *); >extern void dns_build_reverse(uschar *, uschar *); >extern void dns_init(BOOL, BOOL); >extern int dns_basic_lookup(dns_answer *, uschar *, int); >extern int dns_lookup(dns_answer *, uschar *, int, uschar **); >extern int dns_special_lookup(dns_answer *, uschar *, int, uschar **); >extern dns_record *dns_next_rr(dns_answer *, dns_scan *, int); >extern uschar *dns_text_type(int); > >extern void enq_end(uschar *); >extern BOOL enq_start(uschar *); >extern void exim_exit(int); >extern void exim_nullstd(void); >extern void exim_setugid(uid_t, gid_t, BOOL, uschar *); >extern int exim_tvcmp(struct timeval *, struct timeval *); >extern void exim_wait_tick(struct timeval *, int); >extern BOOL expand_check_condition(uschar *, uschar *, uschar *); >extern uschar *expand_string(uschar *); >extern uschar *expand_string_copy(uschar *); >extern int expand_string_integer(uschar *, BOOL); > >extern int filter_interpret(uschar *, int, address_item **, uschar **); >extern BOOL filter_personal(string_item *, BOOL); >extern BOOL filter_runtest(int, uschar *, BOOL, BOOL); >extern BOOL filter_system_interpret(address_item **, uschar **); > >extern void header_add(int, char *, ...); >extern int header_checkname(header_line *, BOOL); >extern BOOL header_match(uschar *, BOOL, BOOL, string_item *, int, ...); >extern int host_address_extract_port(uschar *); >extern uschar *host_and_ident(BOOL); >extern int host_aton(uschar *, int *); >extern void host_build_hostlist(host_item **, uschar *, BOOL); >extern ip_address_item *host_build_ifacelist(uschar *, uschar *); >extern void host_build_log_info(void); >extern void host_build_sender_fullhost(void); >extern BOOL host_find_byname(host_item *, uschar *, int, uschar **, BOOL); >extern int host_find_bydns(host_item *, uschar *, int, uschar *, uschar *, > uschar *,uschar **, BOOL *); >extern ip_address_item *host_find_interfaces(void); >extern BOOL host_is_in_net(uschar *, uschar *, int); >extern BOOL host_is_tls_on_connect_port(int); >extern int host_item_get_port(host_item *); >extern void host_mask(int, int *, int); >extern int host_name_lookup(void); >extern int host_nmtoa(int, int *, int, uschar *, int); >extern uschar *host_ntoa(int, const void *, uschar *, int *); >extern int host_scan_for_local_hosts(host_item *, host_item **, BOOL *); > >extern int ip_bind(int, int, uschar *, int); >extern int ip_connect(int, int, uschar *, int, int); >extern void ip_keepalive(int, uschar *, BOOL); >extern int ip_recv(int, uschar *, int, int); >extern int ip_socket(int, int); > >extern uschar *local_part_quote(uschar *lpart); >extern void log_close_all(void); > > >extern int malware(uschar **); > >extern int match_address_list(uschar *, BOOL, BOOL, uschar **, > unsigned int *, int, int, uschar **); >extern int match_check_list(uschar **, int, tree_node **, unsigned int **, > int(*)(void *, uschar *, uschar **, uschar **), void *, int, > uschar *, uschar **); >extern int match_isinlist(uschar *, uschar **, int, tree_node **, > unsigned int *, int, BOOL, uschar **); >extern int match_check_string(uschar *, uschar *, int, BOOL, BOOL, BOOL, > uschar **); >extern void md5_end(md5 *, const uschar *, int, uschar *); >extern void md5_mid(md5 *, const uschar *); >extern void md5_start(md5 *); >extern void millisleep(int); > >struct mime_boundary_context; >extern int mime_acl_check(uschar *acl, FILE *f, > struct mime_boundary_context *, uschar **, uschar **); >extern int mime_decode(uschar **); >extern int mime_regex(uschar **); > >extern uschar *moan_check_errorcopy(uschar *); >extern BOOL moan_skipped_syntax_errors(uschar *, error_block *, uschar *, > BOOL, uschar *); >extern void moan_smtp_batch(uschar *, char *, ...); >extern void moan_tell_someone(uschar *, address_item *, uschar *, char *, > ...); >extern BOOL moan_to_sender(int, error_block *, header_line *, FILE *, BOOL); >extern void moan_write_from(FILE *); >extern FILE *modefopen(uschar *, char *, mode_t); > >extern uschar *parse_extract_address(uschar *, uschar **, int *, int *, int *, > BOOL); >extern int parse_forward_list(uschar *, int, address_item **, uschar **, > uschar *, uschar *, error_block **); >extern uschar *parse_find_address_end(uschar *, BOOL); >extern uschar *parse_find_at(uschar *); >extern uschar *parse_fix_phrase(uschar *, int, uschar *, int); >extern uschar *parse_message_id(uschar *, uschar **, uschar **); >extern uschar *parse_quote_2047(uschar *, int, uschar *, uschar *, int, BOOL); > >extern BOOL queue_action(uschar *, int, uschar **, int, int); >extern void queue_check_only(void); >extern void queue_list(int, uschar **, int); >extern void queue_count(void); >extern void queue_run(uschar *, uschar *, BOOL); > >extern int random_number(int); > >extern int recv_line(int, uschar *, int); > >extern int rda_interpret(redirect_block *, int, uschar *, uschar *, > uschar *, uschar *, ugid_block *, address_item **, uschar **, > error_block **, int *, uschar *); >extern int rda_is_filter(const uschar *); >extern BOOL readconf_depends(driver_instance *, uschar *); >extern void readconf_driver_init(uschar *, driver_instance **, > driver_info *, int, void *, int, optionlist *, int); >extern uschar *readconf_find_option(void *); >extern void readconf_main(void); >extern void readconf_print(uschar *, uschar *); >extern uschar *readconf_printtime(int); >extern uschar *readconf_readname(uschar *, int, uschar *); >extern int readconf_readtime(uschar *, int, BOOL); >extern void readconf_rest(BOOL); >extern uschar *readconf_retry_error(uschar *, uschar *, int *, int *); >extern void read_message_body(BOOL); >extern void receive_bomb_out(uschar *, uschar *); >extern BOOL receive_check_fs(int); >extern BOOL receive_check_set_sender(uschar *); >extern BOOL receive_msg(BOOL); >extern int receive_statvfs(BOOL, int *); >extern void receive_swallow_smtp(void); > >extern int regex(uschar **); > >extern BOOL regex_match_and_setup(const pcre *, uschar *, int, int); >extern const pcre *regex_must_compile(uschar *, BOOL, BOOL); >extern void retry_add_item(address_item *, uschar *, int); >extern BOOL retry_check_address(uschar *, host_item *, uschar *, BOOL, > uschar **, uschar **); >extern retry_config *retry_find_config(uschar *, uschar *, int, int); >extern void retry_update(address_item **, address_item **, address_item **); >extern uschar *rewrite_address(uschar *, BOOL, BOOL, rewrite_rule *, int); >extern uschar *rewrite_address_qualify(uschar *, BOOL); >extern header_line *rewrite_header(header_line *, uschar *, uschar *, > rewrite_rule *, int, BOOL); >extern uschar *rewrite_one(uschar *, int, BOOL *, BOOL, uschar *, > rewrite_rule *); >extern void rewrite_test(uschar *); >extern uschar *rfc2047_decode2(uschar *, BOOL, uschar *, int, int *, int *, > uschar **); >extern int route_address(address_item *, address_item **, address_item **, > address_item **, address_item **, int); >extern int route_check_prefix(uschar *, uschar *); >extern int route_check_suffix(uschar *, uschar *); >extern BOOL route_findgroup(uschar *, gid_t *); >extern BOOL route_finduser(uschar *, struct passwd **, uid_t *); >extern BOOL route_find_expanded_group(uschar *, uschar *, uschar *, gid_t *, > uschar **); >extern BOOL route_find_expanded_user(uschar *, uschar *, uschar *, > struct passwd **, uid_t *, uschar **); >extern void route_init(void); >extern void route_tidyup(void); > >extern uschar *search_find(void *, uschar *, uschar *, int, uschar *, int, > int, int *); >extern int search_findtype(uschar *, int); >extern int search_findtype_partial(uschar *, int *, uschar **, int *, > int *); >extern void *search_open(uschar *, int, int, uid_t *, gid_t *); >extern void search_tidyup(void); >extern void set_process_info(char *, ...); >extern void sha1_end(sha1 *, const uschar *, int, uschar *); >extern void sha1_mid(sha1 *, const uschar *); >extern void sha1_start(sha1 *); >extern int sieve_interpret(uschar *, int, uschar *, uschar *, uschar *, > address_item **, uschar **); >extern void sigalrm_handler(int); >extern BOOL smtp_buffered(void); >extern void smtp_closedown(uschar *); >extern int smtp_connect(host_item *, int, int, uschar *, int, BOOL); >extern int smtp_feof(void); >extern int smtp_ferror(void); >extern uschar *smtp_get_connection_info(void); >extern BOOL smtp_get_interface(uschar *, int, address_item *, BOOL *, > uschar **, uschar *); >extern BOOL smtp_get_port(uschar *, address_item *, int *, uschar *); >extern int smtp_getc(void); >extern int smtp_handle_acl_fail(int, int, uschar *, uschar *); >extern void smtp_log_no_mail(void); >extern void smtp_message_code(uschar **, int *, uschar **, uschar **); >extern BOOL smtp_read_response(smtp_inblock *, uschar *, int, int, int); >extern void smtp_respond(uschar *, int, BOOL, uschar *); >extern void smtp_notquit_exit(uschar *, uschar *, uschar *, ...); >extern void smtp_send_prohibition_message(int, uschar *); >extern int smtp_setup_msg(void); >extern BOOL smtp_start_session(void); >extern int smtp_ungetc(int); >extern BOOL smtp_verify_helo(void); >extern int smtp_write_command(smtp_outblock *, BOOL, char *, ...); > >extern int spam(uschar **); >extern FILE *spool_mbox(unsigned long *); > >extern BOOL spool_move_message(uschar *, uschar *, uschar *, uschar *); >extern BOOL spool_open_datafile(uschar *); >extern int spool_open_temp(uschar *); >extern int spool_read_header(uschar *, BOOL, BOOL); >extern int spool_write_header(uschar *, int, uschar **); >extern int stdin_getc(void); >extern int stdin_feof(void); >extern int stdin_ferror(void); >extern int stdin_ungetc(int); >extern uschar *string_append(uschar *, int *, int *, int, ...); >extern uschar *string_base62(unsigned long int); >extern uschar *string_cat(uschar *, int *, int *, const uschar *, int); >extern uschar *string_copy_dnsdomain(uschar *); >extern uschar *string_copy_malloc(uschar *); >extern uschar *string_copylc(uschar *); >extern uschar *string_copynlc(uschar *, int); >extern uschar *string_dequote(uschar **); >extern BOOL string_format(uschar *, int, char *, ...); >extern uschar *string_format_size(int, uschar *); >extern int string_interpret_escape(uschar **); >extern int string_is_ip_address(uschar *, int *); >extern uschar *string_log_address(address_item *, BOOL, BOOL); >extern uschar *string_nextinlist(uschar **, int *, uschar *, int); >extern uschar *string_open_failed(int, char *, ...); >extern uschar *string_printing2(uschar *, BOOL); >extern uschar *string_split_message(uschar *); >extern BOOL string_vformat(uschar *, int, char *, va_list); >extern int strcmpic(uschar *, uschar *); >extern int strncmpic(uschar *, uschar *, int); >extern uschar *strstric(uschar *, uschar *, BOOL); > >extern uschar *tod_stamp(int); >extern BOOL transport_check_waiting(uschar *, uschar *, int, uschar *, > BOOL *); >extern void transport_init(void); >extern BOOL transport_pass_socket(uschar *, uschar *, uschar *, uschar *, > int); >extern uschar *transport_rcpt_address(address_item *, BOOL); >extern BOOL transport_set_up_command(uschar ***, uschar *, BOOL, int, > address_item *, uschar *, uschar **); >extern void transport_update_waiting(host_item *, uschar *); >extern BOOL transport_write_block(int, uschar *, int); >extern BOOL transport_write_string(int, char *, ...); >extern BOOL transport_write_message(address_item *, int, int, int, uschar *, > uschar *, uschar *, uschar *, rewrite_rule *, int); >extern void tree_add_duplicate(uschar *, address_item *); >extern void tree_add_nonrecipient(uschar *); >extern void tree_add_unusable(host_item *); >extern int tree_insertnode(tree_node **, tree_node *); >extern tree_node *tree_search(tree_node *, uschar *); >extern void tree_write(tree_node *, FILE *); >extern void tree_walk(tree_node *, void (*)(uschar*, uschar*, void*), void *); > > >extern void unspool_mbox(void); > > >extern int verify_address(address_item *, FILE *, int, int, int, int, > uschar *, uschar *, BOOL *); >extern int verify_check_dnsbl(uschar **); >extern int verify_check_header_address(uschar **, uschar **, int, int, int, > uschar *, uschar *, int, int *); >extern int verify_check_headers(uschar **); >extern int verify_check_host(uschar **); >extern int verify_check_notblind(void); >extern int verify_check_this_host(uschar **, unsigned int *, uschar*, > uschar *, uschar **); >extern address_item *verify_checked_sender(uschar *); >extern void verify_get_ident(int); >extern BOOL verify_sender(int *, uschar **); >extern BOOL verify_sender_preliminary(int *, uschar **); >extern void version_init(void); ># 437 "exim.h" 2 ># 1 "dbfunctions.h" 1 ># 13 "dbfunctions.h" >void dbfn_close(open_db *); >int dbfn_delete(open_db *, uschar *); >open_db *dbfn_open(uschar *, int, open_db *, BOOL); >void *dbfn_read_with_length(open_db *, uschar *, int *); >uschar *dbfn_scan(open_db *, BOOL, DBC **); >int dbfn_write(open_db *, uschar *, void *, int); ># 31 "dbfunctions.h" >void dbfn_bdb_error_callback(const char *, char *); ># 438 "exim.h" 2 ># 1 "osfunctions.h" 1 ># 14 "osfunctions.h" >extern ip_address_item *os_common_find_running_interfaces(void); > > >extern int os_getloadavg(void); >extern void os_restarting_signal(int, void (*)(int)); >extern void os_non_restarting_signal(int, void (*)(int)); >extern char *os_strexit(int); >extern char *strsignal(int); ># 439 "exim.h" 2 ># 482 "exim.h" >union sockaddr_46 { > struct sockaddr_in v4; > > struct sockaddr_in6 v6; > >}; ># 13 "malware.c" 2 > > > >int mksd_scan_packed(int sock); ># 41 "malware.c" >int test_byte_order(void); >int test_byte_order() { > short int word = 0x0001; > char *byte = (char *) &word; > return(byte[0] ? 1 : 0); >} > >uschar malware_name_buffer[256]; >int malware_ok = 0; > >int malware(uschar **listptr) { > int sep = 0; > uschar *list = *listptr; > uschar *av_scanner_work = av_scanner; > uschar *scanner_name; > uschar scanner_name_buffer[16]; > uschar *malware_regex; > uschar malware_regex_buffer[64]; > uschar malware_regex_default[] = ".+"; > unsigned long mbox_size; > FILE *mbox_file; > int roffset; > const pcre *re; > const uschar *rerror; > > > mbox_file = spool_mbox(&mbox_size); > if (mbox_file == ((void *)0)) { > > log_write(0, 1|2, > "malware acl condition: error while creating mbox spool file"); > return 1; > }; > > > (void)fclose(mbox_file); > > > if ((malware_regex = string_nextinlist(&list, &sep, > malware_regex_buffer, > sizeof(malware_regex_buffer))) != ((void *)0)) { > > > if ( (strcmpic(malware_regex,(unsigned char *)"false") == 0) || > (strcmp((const char *)(malware_regex),(const char *)("0")) == 0) ) { > > return 2; > }; > > > if ( (strcmpic(malware_regex,(unsigned char *)"true") == 0) || > (strcmp((const char *)(malware_regex),(const char *)("*")) == 0) || > (strcmp((const char *)(malware_regex),(const char *)("1")) == 0) ) { > malware_regex = malware_regex_default; > }; > } > else { > > return 2; > }; > > > sep = 0; > > > re = pcre_compile((char *) malware_regex, 0, (const char **)&rerror, &roffset, ((void *)0)); > if (re == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: regular expression error in '%s': %s at offset %d", malware_regex, rerror, roffset); > return 1; > }; > > > if (*av_scanner == '$') { > av_scanner_work = expand_string(av_scanner); > if (av_scanner_work == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: av_scanner starts with $, but expansion failed: %s", expand_string_message); > return 1; > } > else { > debug_printf("Expanded av_scanner global: %s\n", av_scanner_work); > > malware_name = ((void *)0); > malware_ok = 0; > }; > } > > > if (malware_ok == 0) { > > > if ((scanner_name = string_nextinlist(&av_scanner_work, &sep, > scanner_name_buffer, > sizeof(scanner_name_buffer))) == ((void *)0)) { > > log_write(0, 1|2, > "malware acl condition: av_scanner configuration variable is empty"); > return 1; > }; > > > > > if (strcmpic(scanner_name,(unsigned char *)"drweb") == 0) { > uschar *drweb_options; > uschar drweb_options_buffer[1024]; > uschar drweb_options_default[] = "/usr/local/drweb/run/drwebd.sock"; > struct sockaddr_un server; > int sock, result, ovector[30]; > unsigned int port, fsize; > uschar tmpbuf[1024], *drweb_fbuf; > uschar scanrequest[1024]; > uschar drweb_match_string[128]; > int drweb_rc, drweb_cmd, drweb_flags = 0x0000, drweb_fd, > drweb_vnum, drweb_slen, drweb_fin = 0x0000; > unsigned long bread; > uschar hostname[256]; > struct hostent *he; > struct in_addr in; > pcre *drweb_re; > > if ((drweb_options = string_nextinlist(&av_scanner_work, &sep, > drweb_options_buffer, sizeof(drweb_options_buffer))) == ((void *)0)) { > > drweb_options = drweb_options_default; > }; > > if (*drweb_options != '/') { > > > if( sscanf((char *) drweb_options, "%s %u", hostname, &port) != 2 ) { > log_write(0, 1|2, > "malware acl condition: drweb: invalid socket '%s'", drweb_options); > return 1; > } > > > if((he = gethostbyname((char *) hostname)) == 0) { > log_write(0, 1|2, > "malware acl condition: drweb: failed to lookup host '%s'", hostname); > return 1; > } > > in = *(struct in_addr *) he->h_addr_list[0]; > > > if ( (sock = ip_socket(SOCK_STREAM, 2)) < 0) { > log_write(0, 1|2, > "malware acl condition: drweb: unable to acquire socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > > if (ip_connect(sock, 2, (uschar*)inet_ntoa(in), port, 5) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: connection to %s, port %u failed (%s)", > inet_ntoa(in), port, strerror((*__errno_location ()))); > return 1; > } > > > drweb_cmd = ((1)); > drweb_flags = ((1<<0) | (1<<19)); > (void)string_format(scanrequest, 1024,(char *)"%s/scan/%s/%s.eml", > spool_directory, message_id, message_id); > > > drweb_fd = open((char *) scanrequest, 00); > if (drweb_fd == -1) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: can't open spool file %s: %s", > scanrequest, strerror((*__errno_location ()))); > return 1; > } > fsize = lseek(drweb_fd, 0, 2); > if (fsize == -1) { > (void)close(sock); > (void)close(drweb_fd); > log_write(0, 1|2, > "malware acl condition: drweb: can't seek spool file %s: %s", > scanrequest, strerror((*__errno_location ()))); > return 1; > } > drweb_slen = (fsize); > lseek(drweb_fd, 0, 0); > > > if ((send(sock, &drweb_cmd, sizeof(drweb_cmd), 0) < 0) || > (send(sock, &drweb_flags, sizeof(drweb_flags), 0) < 0) || > (send(sock, &drweb_fin, sizeof(drweb_fin), 0) < 0) || > (send(sock, &drweb_slen, sizeof(drweb_slen), 0) < 0)) { > (void)close(sock); > (void)close(drweb_fd); > log_write(0, 1|2, > "malware acl condition: drweb: unable to send commands to socket (%s)", drweb_options); > return 1; > } > > drweb_fbuf = (uschar *) malloc (fsize); > if (!drweb_fbuf) { > (void)close(sock); > (void)close(drweb_fd); > log_write(0, 1|2, > "malware acl condition: drweb: unable to allocate memory %u for file (%s)", > fsize, scanrequest); > return 1; > } > > result = read (drweb_fd, drweb_fbuf, fsize); > if (result == -1) { > (void)close(sock); > (void)close(drweb_fd); > free(drweb_fbuf); > log_write(0, 1|2, > "malware acl condition: drweb: can't read spool file %s: %s", > scanrequest, strerror((*__errno_location ()))); > return 1; > } > (void)close(drweb_fd); > > > if (send(sock, drweb_fbuf, fsize, 0) < 0) { > (void)close(sock); > free(drweb_fbuf); > log_write(0, 1|2, > "malware acl condition: drweb: unable to send file body to socket (%s)", drweb_options); > return 1; > } > (void)close(drweb_fd); > } > else { > > sock = socket(1, SOCK_STREAM, 0); > if (sock < 0) { > log_write(0, 1|2, > "malware acl condition: drweb: can't open UNIX socket"); > return 1; > } > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)(drweb_options)); > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: unable to connect to socket (%s). errno=%d", drweb_options, (*__errno_location ())); > return 1; > } > > > drweb_cmd = ((1)); > drweb_flags = ((1<<0) | (1<<19)); > (void)string_format(scanrequest, 1024,(char *)"%s/scan/%s/%s.eml", spool_directory, message_id, message_id); > drweb_slen = ((int)strlen((const char *)(scanrequest))); > > > if ((send(sock, &drweb_cmd, sizeof(drweb_cmd), 0) < 0) || > (send(sock, &drweb_flags, sizeof(drweb_flags), 0) < 0) || > (send(sock, &drweb_slen, sizeof(drweb_slen), 0) < 0) || > (send(sock, scanrequest, (int)strlen((const char *)(scanrequest)), 0) < 0) || > (send(sock, &drweb_fin, sizeof(drweb_fin), 0) < 0)) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: unable to send commands to socket (%s)", drweb_options); > return 1; > } > } > > > if ((bread = recv(sock, &drweb_rc, sizeof(drweb_rc), 0) != sizeof(drweb_rc))) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: unable to read return code"); > return 1; > } > drweb_rc = (drweb_rc); > > if ((bread = recv(sock, &drweb_vnum, sizeof(drweb_vnum), 0) != sizeof(drweb_vnum))) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: unable to read the number of viruses"); > return 1; > } > drweb_vnum = (drweb_vnum); > > > if (drweb_vnum) > { > int i; > uschar pre_malware_nb[256]; > > malware_name = malware_name_buffer; > > > strcpy((char *)(malware_name_buffer),(const char *)("unknown")); > > > for (i=0;i<drweb_vnum;i++) > { > > if ((bread = recv(sock, &drweb_slen, sizeof(drweb_slen), 0) != sizeof(drweb_slen))) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: cannot read report size"); > return 1; > }; > drweb_slen = (drweb_slen); > > > if ((bread = recv(sock, tmpbuf, drweb_slen, 0)) != drweb_slen) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: drweb: cannot read report string"); > return 1; > }; > tmpbuf[drweb_slen] = '\0'; > > > strcpy((char *)(drweb_match_string),(const char *)("infected\\swith\\s*(.+?)$")); > > drweb_re = pcre_compile( (char *) drweb_match_string, > 0, > (const char **)&rerror, > &roffset, > ((void *)0) ); > > > result = pcre_exec(drweb_re, ((void *)0), (char *) tmpbuf, (int)strlen((const char *)(tmpbuf)), 0, 0, ovector, 30); > if (result >= 2) { > pcre_copy_substring((char *) tmpbuf, ovector, result, 1, (char *) pre_malware_nb, 255); > } > > if (i==0) > strcpy((char *)((char *) malware_name_buffer),(const char *)((char *) pre_malware_nb)); > else { > > int slen = (int)strlen((const char *)(malware_name_buffer)); > if (slen < (slen+(int)strlen((const char *)(pre_malware_nb)))) { > strcat((char *)(malware_name_buffer),(const char *)("/")); > strcat((char *)(malware_name_buffer),(const char *)(pre_malware_nb)); > } > } > } > } > else { > char *drweb_s = ((void *)0); > > if (drweb_rc & (1<<0)) drweb_s = "read error"; > if (drweb_rc & (1<<2)) drweb_s = "no memory"; > if (drweb_rc & (1<<9)) drweb_s = "timeout"; > if (drweb_rc & (1<<15)) drweb_s = "wrong command"; > > > > > if (drweb_s) { > log_write(0, 1|2, > "malware acl condition: drweb: drweb daemon retcode 0x%x (%s)", drweb_rc, drweb_s); > (void)close(sock); > return 1; > } > > malware_name = ((void *)0); > }; > (void)close(sock); > } > > else if (strcmpic(scanner_name,(unsigned char *)"aveserver") == 0) { > uschar *kav_options; > uschar kav_options_buffer[1024]; > uschar kav_options_default[] = "/var/run/aveserver"; > uschar buf[32768]; > struct sockaddr_un server; > int sock; > int result; > > if ((kav_options = string_nextinlist(&av_scanner_work, &sep, > kav_options_buffer, > sizeof(kav_options_buffer))) == ((void *)0)) { > > kav_options = kav_options_default; > }; > > > sock = socket(1, SOCK_STREAM, 0); > if (sock < 0) { > log_write(0, 1|2, > "malware acl condition: can't open UNIX socket."); > return 1; > } > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)(kav_options)); > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to connect to aveserver UNIX socket (%s). errno=%d", kav_options, (*__errno_location ())); > return 1; > } > > > recv_line(sock, buf, 32768); > > if (buf[0] != '2') { > > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: aveserver is unavailable (Responded: %s).", ((buf[0] != 0) ? buf : (uschar *)"nothing") ); > return 1; > }; > > > (void)string_format(buf, 32768, "SCAN bPQRSTUW %s/scan/%s/%s.eml\r\n", spool_directory, message_id, message_id); > > > if (send(sock, buf, (int)strlen((const char *)(buf)), 0) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to write to aveserver UNIX socket (%s)", kav_options); > return 1; > } > > malware_name = ((void *)0); > result = 0; > > while (recv_line(sock, buf, 32768) > 0) { > debug_printf("aveserver: %s\n", buf); > if (buf[0] == '2') { > break; > } else if (buf[0] == '5') { > > log_write(0, 1|2, > "malware acl condition: unable to scan file %s/scan/%s/%s.eml (Responded: %s).", > spool_directory, message_id, message_id, buf); > result = 1; > break; > } else if (strncmp((const char *)(buf),(const char *)("322"),3) == 0) { > uschar *p = (unsigned char *) strchr((const char *)(&buf[4]),' '); > *p = '\0'; > strcpy((char *)(malware_name_buffer),(const char *)(&buf[4])); > malware_name = malware_name_buffer; > }; > } > > > (void)string_format(buf, 32768, "quit\r\n"); > > > if (send(sock, buf, (int)strlen((const char *)(buf)), 0) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to write to aveserver UNIX socket (%s)", kav_options); > return 1; > } > > > recv_line(sock, buf, 32768); > > if (buf[0] != '2') { > > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to quit aveserver dialogue (Responded: %s).", ((buf[0] != 0) ? buf : (uschar *)"nothing") ); > return 1; > }; > > (void)close(sock); > > if (result == 1) return 1; > } > > else if (strcmpic(scanner_name,(unsigned char *)"fsecure") == 0) { > uschar *fsecure_options; > uschar fsecure_options_buffer[1024]; > uschar fsecure_options_default[] = "/var/run/.fsav"; > struct sockaddr_un server; > int sock, i, j, bread = 0; > uschar file_name[1024]; > uschar av_buffer[1024]; > pcre *fs_inf; > static uschar *cmdoptions[] = { (unsigned char *)"CONFIGURE\tARCHIVE\t1\n", > (unsigned char *)"CONFIGURE\tTIMEOUT\t0\n", > (unsigned char *)"CONFIGURE\tMAXARCH\t5\n", > (unsigned char *)"CONFIGURE\tMIME\t1\n" }; > > malware_name = ((void *)0); > if ((fsecure_options = string_nextinlist(&av_scanner_work, &sep, > fsecure_options_buffer, > sizeof(fsecure_options_buffer))) == ((void *)0)) { > > fsecure_options = fsecure_options_default; > }; > > > sock = socket(1, SOCK_STREAM, 0); > if (sock < 0) { > log_write(0, 1|2, > "malware acl condition: unable to open fsecure socket %s (%s)", > fsecure_options, strerror((*__errno_location ()))); > return 1; > } > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)(fsecure_options)); > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to connect to fsecure socket %s (%s)", > fsecure_options, strerror((*__errno_location ()))); > return 1; > } > > > memset(av_buffer, 0, sizeof(av_buffer)); > for (i=0; i != 4; i++) { > > if (write(sock, cmdoptions[i], (int)strlen((const char *)(cmdoptions[i]))) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to write fsecure option %d to %s (%s)", > i, fsecure_options, strerror((*__errno_location ()))); > return 1; > }; > > bread = ip_recv(sock, av_buffer, sizeof(av_buffer), 120); > if (bread >0) av_buffer[bread]='\0'; > if (bread < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to read fsecure answer %d (%s)", i, strerror((*__errno_location ()))); > return 1; > }; > for (j=0;j<bread;j++) if((av_buffer[j]=='\r')||(av_buffer[j]=='\n')) av_buffer[j] ='@'; > > > }; > > > (void)string_format(file_name,1024,"SCAN\t%s/scan/%s/%s.eml\n", spool_directory, message_id, message_id); > > if (write(sock, file_name, (int)strlen((const char *)(file_name))) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to write fsecure scan to %s (%s)", > fsecure_options, strerror((*__errno_location ()))); > return 1; > }; > > > > fs_inf = pcre_compile("\\S{0,5}INFECTED\\t[^\\t]*\\t([^\\t]+)\\t\\S*$", 0, (const char **)&rerror, &roffset, ((void *)0)); > > > do { > int ovector[30]; > i = 0; > memset(av_buffer, 0, sizeof(av_buffer)); > do { > bread=ip_recv(sock, &av_buffer[i], 1, 120); > if (bread < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to read fsecure result (%s)", strerror((*__errno_location ()))); > return 1; > }; > i++; > } > while ((i < sizeof(av_buffer)-1 ) && (av_buffer[i-1] != '\n')); > av_buffer[i-1] = '\0'; > > > > if (malware_name == ((void *)0)) { > > i = pcre_exec(fs_inf, ((void *)0), (char *) av_buffer, (int)strlen((const char *)(av_buffer)), 0, 0, ovector, 30); > if (i >= 2) { > > pcre_copy_substring((char *) av_buffer, ovector, i, 1, (char *) malware_name_buffer, 255); > malware_name = malware_name_buffer; > }; > }; > } > while ((unsigned char *) strstr((const char *)(av_buffer),(const char *)("OK\tScan ok.")) == ((void *)0)); > (void)close(sock); > } > > > > else if (strcmpic(scanner_name,(unsigned char *)"kavdaemon") == 0) { > uschar *kav_options; > uschar kav_options_buffer[1024]; > uschar kav_options_default[] = "/var/run/AvpCtl"; > struct sockaddr_un server; > int sock; > time_t t; > uschar tmpbuf[1024]; > uschar scanrequest[1024]; > uschar kav_match_string[128]; > int kav_rc; > unsigned long kav_reportlen, bread; > pcre *kav_re; > > if ((kav_options = string_nextinlist(&av_scanner_work, &sep, > kav_options_buffer, > sizeof(kav_options_buffer))) == ((void *)0)) { > > kav_options = kav_options_default; > }; > > > sock = socket(1, SOCK_STREAM, 0); > if (sock < 0) { > log_write(0, 1|2, > "malware acl condition: can't open UNIX socket."); > return 1; > } > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)(kav_options)); > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to connect to kavdaemon UNIX socket (%s). errno=%d", kav_options, (*__errno_location ())); > return 1; > } > > > time(&t); > strftime((char *) tmpbuf, sizeof(tmpbuf), "<0>%d %b %H:%M:%S:%%s/scan/%%s", localtime(&t)); > (void)string_format(scanrequest, 1024,(char *) tmpbuf, spool_directory, message_id); > > > if (send(sock, scanrequest, (int)strlen((const char *)(scanrequest))+1, 0) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to write to kavdaemon UNIX socket (%s)", kav_options); > return 1; > } > > > if ((bread = recv(sock, tmpbuf, 2, 0) != 2)) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to read 2 bytes from kavdaemon socket."); > return 1; > } > > > if (test_byte_order() == 1) { > kav_rc = tmpbuf[0] & 0x0F; > } > else { > kav_rc = tmpbuf[1] & 0x0F; > }; > > > if ( (kav_rc == 5) || (kav_rc == 6) ) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: please reconfigure kavdaemon to NOT disinfect or remove infected files."); > return 1; > }; > > if (kav_rc == 1) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: kavdaemon reported 'scanning not completed' (code 1)."); > return 1; > }; > > if (kav_rc == 7) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: kavdaemon reported 'kavdaemon damaged' (code 7)."); > return 1; > }; > > > > > > if ((kav_rc > 1) && (kav_rc < 5)) { > int report_flag = 0; > > > strcpy((char *)(malware_name_buffer),(const char *)("unknown")); > malware_name = malware_name_buffer; > > if (test_byte_order() == 1) { > report_flag = tmpbuf[1]; > } > else { > report_flag = tmpbuf[0]; > }; > > > if( report_flag == 1 ) { > > if ((bread = recv(sock, &kav_reportlen, 4, 0)) != 4) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: cannot read report size from kavdaemon"); > return 1; > }; > > > > if (kav_reportlen > 0) { > > if( kav_rc == 3 ) > strcpy((char *)(kav_match_string),(const char *)("suspicion:\\s*(.+?)\\s*$")); > else > strcpy((char *)(kav_match_string),(const char *)("infected:\\s*(.+?)\\s*$")); > > kav_re = pcre_compile( (char *) kav_match_string, > 0, > (const char **)&rerror, > &roffset, > ((void *)0) ); > > > while (kav_reportlen > 0) { > int result = 0; > int ovector[30]; > > bread = 0; > while ( recv(sock, &tmpbuf[bread], 1, 0) == 1 ) { > kav_reportlen--; > if ( (tmpbuf[bread] == '\n') || (bread > 1021) ) break; > bread++; > }; > bread++; > tmpbuf[bread] = '\0'; > > > result = pcre_exec(kav_re, ((void *)0), (char *) tmpbuf, (int)strlen((const char *)(tmpbuf)), 0, 0, ovector, 30); > if (result >= 2) { > pcre_copy_substring((char *) tmpbuf, ovector, result, 1, (char *) malware_name_buffer, 255); > break; > }; > }; > }; > }; > } > else { > > malware_name = ((void *)0); > }; > > (void)close(sock); > } > > > > > else if (strcmpic(scanner_name,(unsigned char *)"cmdline") == 0) { > uschar *cmdline_scanner; > uschar cmdline_scanner_buffer[1024]; > uschar *cmdline_trigger; > uschar cmdline_trigger_buffer[1024]; > const pcre *cmdline_trigger_re; > uschar *cmdline_regex; > uschar cmdline_regex_buffer[1024]; > const pcre *cmdline_regex_re; > uschar file_name[1024]; > uschar commandline[1024]; > void (*eximsigchld)(int); > void (*eximsigpipe)(int); > FILE *scanner_out = ((void *)0); > FILE *scanner_record = ((void *)0); > uschar linebuffer[32767]; > int trigger = 0; > int result; > int ovector[30]; > > > if ((cmdline_scanner = string_nextinlist(&av_scanner_work, &sep, > cmdline_scanner_buffer, > sizeof(cmdline_scanner_buffer))) == ((void *)0)) { > > log_write(0, 1|2, > "malware acl condition: missing commandline specification for cmdline scanner type."); > return 1; > }; > > > if ((cmdline_trigger = string_nextinlist(&av_scanner_work, &sep, > cmdline_trigger_buffer, > sizeof(cmdline_trigger_buffer))) == ((void *)0)) { > > log_write(0, 1|2, > "malware acl condition: missing trigger specification for cmdline scanner type."); > return 1; > }; > > > cmdline_trigger_re = pcre_compile((char *) cmdline_trigger, 0, (const char **)&rerror, &roffset, ((void *)0)); > if (cmdline_trigger_re == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: regular expression error in '%s': %s at offset %d", cmdline_trigger_re, rerror, roffset); > return 1; > }; > > > if ((cmdline_regex = string_nextinlist(&av_scanner_work, &sep, > cmdline_regex_buffer, > sizeof(cmdline_regex_buffer))) == ((void *)0)) { > > log_write(0, 1|2, > "malware acl condition: missing virus name regex specification for cmdline scanner type."); > return 1; > }; > > > cmdline_regex_re = pcre_compile((char *) cmdline_regex, 0, (const char **)&rerror, &roffset, ((void *)0)); > if (cmdline_regex_re == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: regular expression error in '%s': %s at offset %d", cmdline_regex_re, rerror, roffset); > return 1; > }; > > > (void)string_format(file_name,1024,"%s/scan/%s", spool_directory, message_id); > (void)string_format(commandline,1024, (char *) cmdline_scanner,file_name); > > strcat((char *)(commandline),(const char *)(" 2>&1")); > > > eximsigchld = signal(17,((__sighandler_t) 0)); > eximsigpipe = signal(13,((__sighandler_t) 0)); > > scanner_out = popen((char *) commandline,"r"); > if (scanner_out == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: calling cmdline scanner (%s) failed: %s.", commandline, strerror((*__errno_location ()))); > signal(17,eximsigchld); > signal(13,eximsigpipe); > return 1; > }; > > (void)string_format(file_name,1024,"%s/scan/%s/%s_scanner_output", spool_directory, message_id, message_id); > scanner_record = modefopen(file_name,"wb",0640); > > if (scanner_record == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: opening scanner output file (%s) failed: %s.", file_name, strerror((*__errno_location ()))); > pclose(scanner_out); > signal(17,eximsigchld); > signal(13,eximsigpipe); > return 1; > }; > > > while(fgets((char *) linebuffer,32767,scanner_out) != ((void *)0)) { > if ( (int)strlen((const char *)(linebuffer)) > fwrite(linebuffer, 1, (int)strlen((const char *)(linebuffer)), scanner_record) ) { > > log_write(0, 1|2, > "malware acl condition: short write on scanner output file (%s).", file_name); > pclose(scanner_out); > signal(17,eximsigchld); > signal(13,eximsigpipe); > return 1; > }; > > if (!trigger && regex_match_and_setup(cmdline_trigger_re, linebuffer, 0, -1)) > trigger = 1; > }; > > (void)fclose(scanner_record); > pclose(scanner_out); > signal(17,eximsigchld); > signal(13,eximsigpipe); > > if (trigger) { > > strcpy((char *)(malware_name_buffer),(const char *)("unknown")); > malware_name = malware_name_buffer; > > > scanner_record = fopen((char *) file_name,"rb"); > while(fgets((char *) linebuffer,32767,scanner_record) != ((void *)0)) { > > result = pcre_exec(cmdline_regex_re, ((void *)0), (char *) linebuffer, (int)strlen((const char *)(linebuffer)), 0, 0, ovector, 30); > if (result >= 2) { > pcre_copy_substring((char *) linebuffer, ovector, result, 1, (char *) malware_name_buffer, 255); > }; > }; > (void)fclose(scanner_record); > } > else { > > malware_name = ((void *)0); > }; > } > > > > > else if (strcmpic(scanner_name,(unsigned char *)"sophie") == 0) { > uschar *sophie_options; > uschar sophie_options_buffer[1024]; > uschar sophie_options_default[] = "/var/run/sophie"; > int bread = 0; > struct sockaddr_un server; > int sock; > uschar file_name[1024]; > uschar av_buffer[1024]; > > if ((sophie_options = string_nextinlist(&av_scanner_work, &sep, > sophie_options_buffer, > sizeof(sophie_options_buffer))) == ((void *)0)) { > > sophie_options = sophie_options_default; > }; > > > sock = socket(1, SOCK_STREAM, 0); > if (sock < 0) { > log_write(0, 1|2, > "malware acl condition: can't open UNIX socket."); > return 1; > } > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)(sophie_options)); > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to connect to sophie UNIX socket (%s). errno=%d", sophie_options, (*__errno_location ())); > return 1; > } > > > (void)string_format(file_name,1024,"%s/scan/%s", spool_directory, message_id); > if (write(sock, file_name, (int)strlen((const char *)(file_name))) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to write to sophie UNIX socket (%s)", sophie_options); > return 1; > }; > > (void)write(sock, "\n", 1); > > > memset(av_buffer, 0, sizeof(av_buffer)); > if ((!(bread = ip_recv(sock, av_buffer, sizeof(av_buffer), 120)) > 0)) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to read from sophie UNIX socket (%s)", sophie_options); > return 1; > }; > > (void)close(sock); > > > if (av_buffer[0] == '1') { > if ((unsigned char *) strchr((const char *)(av_buffer),'\n')) *(unsigned char *) strchr((const char *)(av_buffer),'\n') = '\0'; > strcpy((char *)(malware_name_buffer),(const char *)(&av_buffer[2])); > malware_name = malware_name_buffer; > } > else if (!strncmp((char *) av_buffer, "-1", 2)) { > log_write(0, 1|2, > "malware acl condition: malware acl condition: sophie reported error"); > return 1; > } > else { > > malware_name = ((void *)0); > }; > } > > > > > > else if (strcmpic(scanner_name,(unsigned char *)"clamd") == 0) { > uschar *clamd_options; > uschar clamd_options_buffer[1024]; > uschar clamd_options_default[] = "/tmp/clamd"; > uschar *p,*vname; > struct sockaddr_un server; > int sock,bread=0; > unsigned int port; > uschar file_name[1024]; > uschar av_buffer[1024]; > uschar hostname[256]; > struct hostent *he; > struct in_addr in; > uschar *clamd_options2; > uschar clamd_options2_buffer[1024]; > uschar clamd_options2_default[] = ""; > uschar av_buffer2[1024]; > uschar *clamav_fbuf; > uschar scanrequest[1024]; > int sockData, clam_fd, result; > unsigned int fsize; > > if ((clamd_options = string_nextinlist(&av_scanner_work, &sep, > clamd_options_buffer, > sizeof(clamd_options_buffer))) == ((void *)0)) { > > clamd_options = clamd_options_default; > } > if ((clamd_options2 = string_nextinlist(&av_scanner_work, &sep, > clamd_options2_buffer, > sizeof(clamd_options2_buffer))) == ((void *)0)) { > clamd_options2 = clamd_options2_default; > } > > > if (*clamd_options != '/') { > > > if( sscanf((char *) clamd_options, "%s %u", hostname, &port) != 2 ) { > log_write(0, 1|2, > "malware acl condition: clamd: invalid socket '%s'", clamd_options); > return 1; > }; > > > if((he = gethostbyname((char *) hostname)) == 0) { > log_write(0, 1|2, > "malware acl condition: clamd: failed to lookup host '%s'", hostname); > return 1; > } > > in = *(struct in_addr *) he->h_addr_list[0]; > > > if ( (sock = ip_socket(SOCK_STREAM, 2)) < 0) { > log_write(0, 1|2, > "malware acl condition: clamd: unable to acquire socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > > if (ip_connect(sock, 2, (uschar*)inet_ntoa(in), port, 5) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: clamd: connection to %s, port %u failed (%s)", > inet_ntoa(in), port, strerror((*__errno_location ()))); > return 1; > } > > if (strcmpic(clamd_options2,(unsigned char *)"local") == 0) { > > > > (void)string_format(file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id); > > if (send(sock, file_name, (int)strlen((const char *)(file_name)), 0) < 0) { > (void)close(sock); > log_write(0, 1|2,"malware acl condition: clamd: unable to write to socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > } else { > > > > if (send(sock, "STREAM\n", 7, 0) < 0) { > (void)close(sock); > log_write(0, 1|2,"malware acl condition: clamd: unable to write to socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > memset(av_buffer2, 0, sizeof(av_buffer2)); > bread = ip_recv(sock, av_buffer2, sizeof(av_buffer2), 120); > > if (bread < 0) { > log_write(0, 1|2, > "malware acl condition: clamd: unable to read PORT from socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > > if (bread == sizeof(av_buffer)) { > log_write(0, 1|2, > "malware acl condition: clamd: buffer too small"); > return 1; > } > > if (!(*av_buffer2)) { > log_write(0, 1|2, > "malware acl condition: clamd: ClamAV returned null"); > return 1; > } > > av_buffer2[bread] = '\0'; > if( sscanf((char *) av_buffer2, "PORT %u\n", &port) != 1 ) { > log_write(0, 1|2, > "malware acl condition: clamd: Expected port information from clamd, got '%s'", av_buffer2); > return 1; > }; > > if ( (sockData = ip_socket(SOCK_STREAM, 2)) < 0) { > log_write(0, 1|2, > "malware acl condition: clamd: unable to acquire socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > > if (ip_connect(sockData, 2, (uschar*)inet_ntoa(in), port, 5) < 0) { > (void)close(sockData); > log_write(0, 1|2, > "malware acl condition: clamd: connection to %s, port %u failed (%s)", > inet_ntoa(in), port, strerror((*__errno_location ()))); > return 1; > } > > (void)string_format(scanrequest, 1024,(char *)"%s/scan/%s/%s.eml", > spool_directory, message_id, message_id); > > > clam_fd = open((char *) scanrequest, 00); > if (clam_fd == -1) { > log_write(0, 1|2, > "malware acl condition: clamd: can't open spool file %s: %s", > scanrequest, strerror((*__errno_location ()))); > return 1; > } > fsize = lseek(clam_fd, 0, 2); > if (fsize == -1) { > log_write(0, 1|2, > "malware acl condition: clamd: can't seek spool file %s: %s", > scanrequest, strerror((*__errno_location ()))); > return 1; > } > lseek(clam_fd, 0, 0); > > clamav_fbuf = (uschar *) malloc (fsize); > if (!clamav_fbuf) { > (void)close(sockData); > (void)close(clam_fd); > log_write(0, 1|2, > "malware acl condition: clamd: unable to allocate memory %u for file (%s)", > fsize, scanrequest); > return 1; > } > > result = read (clam_fd, clamav_fbuf, fsize); > if (result == -1) { > (void)close(sockData); > (void)close(clam_fd); > free(clamav_fbuf); > log_write(0, 1|2, > "malware acl condition: clamd: can't read spool file %s: %s", > scanrequest, strerror((*__errno_location ()))); > return 1; > } > (void)close(clam_fd); > > > if (send(sockData, clamav_fbuf, fsize, 0) < 0) { > (void)close(sockData); > free(clamav_fbuf); > log_write(0, 1|2, > "malware acl condition: clamd: unable to send file body to socket (%s:%u)", hostname, port); > return 1; > } > free(clamav_fbuf); > (void)close(sockData); > } > } > else { > > if ((sock = socket(1, SOCK_STREAM, 0)) < 0) { > log_write(0, 1|2, > "malware acl condition: clamd: unable to acquire socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)(clamd_options)); > > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: clamd: unable to connect to UNIX socket %s (%s)", > clamd_options, strerror((*__errno_location ())) ); > return 1; > } > } > > > > (void)string_format(file_name,1024,"SCAN %s/scan/%s\n", spool_directory, message_id); > > if (send(sock, file_name, (int)strlen((const char *)(file_name)), 0) < 0) { > (void)close(sock); > log_write(0, 1|2,"malware acl condition: clamd: unable to write to socket (%s)", > strerror((*__errno_location ()))); > return 1; > } ># 1244 "malware.c" > memset(av_buffer, 0, sizeof(av_buffer)); > bread = ip_recv(sock, av_buffer, sizeof(av_buffer), 120); > (void)close(sock); > > if (!(bread > 0)) { > log_write(0, 1|2, > "malware acl condition: clamd: unable to read from socket (%s)", > strerror((*__errno_location ()))); > return 1; > } > > if (bread == sizeof(av_buffer)) { > log_write(0, 1|2, > "malware acl condition: clamd: buffer too small"); > return 1; > } > > > > > > > if (!(*av_buffer)) { > log_write(0, 1|2, > "malware acl condition: clamd: ClamAV returned null"); > return 1; > } > > > p = av_buffer + (int)strlen((const char *)(av_buffer)) - 1; > if( *p == '\n' ) *p = '\0'; > > > if((p = (unsigned char *) strrchr((const char *)(av_buffer),':')) == ((void *)0)) { > log_write(0, 1|2, > "malware acl condition: clamd: ClamAV returned malformed result: %s", > av_buffer); > return 1; > } > > > ++p; > while (*p == ' ') ++p; > vname = p; > if ((p = (unsigned char *) strstr((const char *)(vname),(const char *)("FOUND")))!=((void *)0)) { > *p=0; > for (--p;p>vname && *p<=32;p--) *p=0; > for (;*vname==32;vname++); > strcpy((char *)(malware_name_buffer),(const char *)(vname)); > malware_name = malware_name_buffer; > } > else { > if ((unsigned char *) strstr((const char *)(vname),(const char *)("ERROR"))!=((void *)0)) { > > > for (;*vname!='\n' && vname>av_buffer; vname--); > if (*vname=='\n') vname++; > > log_write(0, 1|2, > "malware acl condition: clamd: ClamAV returned %s",vname); > return 1; > } > else { > > malware_name = ((void *)0); > } > } > } > > > > > else if (strcmpic(scanner_name,(unsigned char *)"mksd") == 0) { > uschar *mksd_options; > char *mksd_options_end; > uschar mksd_options_buffer[32]; > int mksd_maxproc = 1; > struct sockaddr_un server; > int sock; > int retval; > > if ((mksd_options = string_nextinlist(&av_scanner_work, &sep, > mksd_options_buffer, > sizeof(mksd_options_buffer))) != ((void *)0)) { > mksd_maxproc = (int) strtol((char *) mksd_options, &mksd_options_end, 10); > if ((*mksd_options == '\0') || (*mksd_options_end != '\0') || > (mksd_maxproc < 1) || (mksd_maxproc > 32)) { > log_write(0, 1|2, > "malware acl condition: mksd: invalid option '%s'", mksd_options); > return 1; > } > } > > > sock = socket(1, SOCK_STREAM, 0); > if (sock < 0) { > log_write(0, 1|2, > "malware acl condition: can't open UNIX socket."); > return 1; > } > server.sun_family = 1; > strcpy((char *)(server.sun_path),(const char *)("/var/run/mksd/socket")); > if (connect(sock, (struct sockaddr *) &server, sizeof(struct sockaddr_un)) < 0) { > (void)close(sock); > log_write(0, 1|2, > "malware acl condition: unable to connect to mksd UNIX socket (/var/run/mksd/socket). errno=%d", (*__errno_location ())); > return 1; > } > > malware_name = ((void *)0); > > retval = mksd_scan_packed(sock); > > if (retval != 0) > return retval; > } > > > > else { > log_write(0, 1|2, > "malware condition: unknown scanner type '%s'", scanner_name); > return 1; > }; > > > > malware_ok = 1; > }; > > > if ( (malware_name != ((void *)0)) && > (regex_match_and_setup(re, malware_name, 0, -1)) ) { > return 0; > } > else { > return 2; > }; >} > > > >int recv_line(int sock, uschar *buffer, int size) { > uschar *p = buffer; > > memset(buffer,0,size); > > while(recv(sock,p,1,0) > -1) { > if ((p-buffer) > (size-2)) break; > if (*p == '\n') break; > if (*p != '\r') p++; > }; > *p = '\0'; > > return (p-buffer); >} > > > > > > >int mksd_writev (int sock, struct iovec *iov, int iovcnt) >{ > int i; > > for (;;) { > do > i = writev (sock, iov, iovcnt); > while ((i < 0) && ((*__errno_location ()) == 4)); > if (i <= 0) { > close (sock); > log_write(0, 1|2, > "malware acl condition: unable to write to mksd UNIX socket (/var/run/mksd/socket)"); > return -1; > } > > for (;;) > if (i >= iov->iov_len) { > if (--iovcnt == 0) > return 0; > i -= iov->iov_len; > iov++; > } else { > iov->iov_len -= i; > iov->iov_base = (char *) iov->iov_base + i; > break; > } > } >} > >int mksd_read_lines (int sock, uschar *av_buffer, int av_buffer_size) >{ > int offset = 0; > int i; > > do { > if ((i = recv (sock, av_buffer+offset, av_buffer_size-offset, 0)) <= 0) { > close (sock); > log_write(0, 1|2, > "malware acl condition: unable to read from mksd UNIX socket (/var/run/mksd/socket)"); > return -1; > } > > offset += i; > > if (offset == av_buffer_size) { > close (sock); > log_write(0, 1|2, > "malware acl condition: malformed reply received from mksd"); > return -1; > } > } while (av_buffer[offset-1] != '\n'); > > av_buffer[offset] = '\0'; > return offset; >} > >int mksd_parse_line (char *line) >{ > char *p; > > switch (*line) { > case 'O': > > return 0; > case 'E': > case 'A': > > if ((p = strchr (line, '\n')) != ((void *)0)) > (*p) = '\0'; > log_write(0, 1|2, > "malware acl condition: mksd scanner failed: %s", line); > return 1; > default: > > if ((p = strchr (line, '\n')) != ((void *)0)) { > (*p) = '\0'; > if (((p-line) > 5) && ((p-line) < sizeof (malware_name_buffer)) && (line[3] == ' ')) > if (((p = strchr (line+4, ' ')) != ((void *)0)) && ((p-line) > 4)) { > (*p) = '\0'; > strcpy((char *)(malware_name_buffer),(const char *)(line+4)); > malware_name = malware_name_buffer; > return 0; > } > } > log_write(0, 1|2, > "malware acl condition: malformed reply received from mksd: %s", line); > return 1; > } >} > >int mksd_scan_packed (int sock) >{ > struct iovec iov[7]; > char *cmd = "MSQ/scan/.eml\n"; > uschar av_buffer[1024]; > > iov[0].iov_base = cmd; > iov[0].iov_len = 3; > iov[1].iov_base = (char *) spool_directory; > iov[1].iov_len = (int)strlen((const char *)(spool_directory)); > iov[2].iov_base = cmd + 3; > iov[2].iov_len = 6; > iov[3].iov_base = iov[5].iov_base = (char *) message_id; > iov[3].iov_len = iov[5].iov_len = (int)strlen((const char *)(message_id)); > iov[4].iov_base = cmd + 3; > iov[4].iov_len = 1; > iov[6].iov_base = cmd + 9; > iov[6].iov_len = 5; > > if (mksd_writev (sock, iov, 7) < 0) > return 1; > > if (mksd_read_lines (sock, av_buffer, sizeof (av_buffer)) < 0) > return 1; > > close (sock); > > return mksd_parse_line ((char *) av_buffer); >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 237593
: 166230