# 1 "fooserv.c" # 1 "/usr/include/stdlib.h" 1 3 #pragma ident "@(#)stdlib.h 1.40 97/06/30 SMI" # 1 "/usr/include/sys/feature_tests.h" 1 3 #pragma ident "@(#)feature_tests.h 1.13 97/06/26 SMI" # 18 "/usr/include/stdlib.h" 2 3 typedef struct { int quot; int rem; } div_t; typedef struct { long quot; long rem; } ldiv_t; typedef struct { long long quot; long long rem; } lldiv_t; typedef unsigned int size_t; typedef long uid_t; typedef long wchar_t; # 86 "/usr/include/stdlib.h" 3 extern unsigned char __ctype[]; extern double atof(const char *); extern int atoi(const char *); extern long int atol(const char *); extern double strtod(const char *, char **); extern long int strtol(const char *, char **, int); extern unsigned long int strtoul(const char *, char **, int); extern int rand(void); extern void srand(unsigned int); extern void *calloc(size_t, size_t); extern void free(void *); extern void *malloc(size_t); extern void *realloc(void *, size_t); extern void abort(void); extern int atexit(void (*)(void)); extern void exit(int); extern void _exithandle(void); extern char *getenv(const char *); extern int system(const char *); extern void *bsearch(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); extern int abs(int); extern div_t div(int, int); extern long int labs(long); extern ldiv_t ldiv(long, long); extern int mbtowc(wchar_t *, const char *, size_t); extern int mblen(const char *, size_t); extern int wctomb(char *, wchar_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); extern size_t wcstombs(char *, const wchar_t *, size_t); extern double drand48(void); extern double erand48(unsigned short *); extern long jrand48(unsigned short *); extern void lcong48(unsigned short *); extern long lrand48(void); extern long mrand48(void); extern long nrand48(unsigned short *); extern unsigned short *seed48(unsigned short *); extern void srand48(long); extern int putenv(const char *); extern void setkey(const char *); extern void swab(const char *, char *, int); extern int mkstemp(char *); extern int mkstemp64(char *); extern long a64l(const char *); extern char *ecvt(double, int, int *, int *); extern char *fcvt(double, int, int *, int *); extern char *gcvt(double, int, char *); extern int getsubopt(char **, char *const *, char **); extern int grantpt(int); extern char *initstate(unsigned, char *, size_t); extern char *l64a(long); extern char *mktemp(char *); extern char *ptsname(int); extern long random(void); extern char *realpath(const char *, char *); extern char *setstate(const char *); extern void srandom(unsigned); extern int ttyslot(void); extern int unlockpt(int); extern void *valloc(size_t); extern int dup2(int, int); extern char *qecvt(long double, int, int *, int *); extern char *qfcvt(long double, int, int *, int *); extern char *qgcvt(long double, int, char *); extern char *getcwd(char *, size_t); extern const char *getexecname(void); extern char *getlogin(void); extern int getopt(int, char *const *, const char *); extern char *optarg; extern int optind, opterr, optopt; extern char *getpass(const char *); extern char *getpassphrase(const char *); extern int getpw(uid_t, char *); extern int isatty(int); extern void *memalign(size_t, size_t); extern char *ttyname(int); extern long long atoll(const char *); extern long long llabs(long long); extern lldiv_t lldiv(long long, long long); extern char *lltostr(long long, char *); extern long long strtoll(const char *, char **, int); extern unsigned long long strtoull(const char *, char **, int); extern char *ulltostr(unsigned long long, char *); # 349 "/usr/include/stdlib.h" 3 # 1 "fooserv.c" 2 # 1 "/usr/include/unistd.h" 1 3 #pragma ident "@(#)unistd.h 1.45 97/06/06 SMI" # 1 "/usr/include/sys/types.h" 1 3 #pragma ident "@(#)types.h 1.51 97/05/06 SMI" # 1 "/usr/include/sys/isa_defs.h" 1 3 #pragma ident "@(#)isa_defs.h 1.11 97/03/21 SMI" # 243 "/usr/include/sys/isa_defs.h" 3 # 334 "/usr/include/sys/isa_defs.h" 3 # 19 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/machtypes.h" 1 3 #pragma ident "@(#)machtypes.h 1.11 96/04/29 SMI" typedef struct _physadr_t { int r[1]; } *physadr_t; typedef struct _label_t { int val[2]; } label_t; typedef unsigned char lock_t; # 24 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/int_types.h" 1 3 #pragma ident "@(#)int_types.h 1.4 96/09/25 SMI" typedef char int8_t; typedef short int16_t; typedef int int32_t; typedef long long int64_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; typedef int64_t intmax_t; typedef uint64_t uintmax_t; typedef int intptr_t; typedef unsigned int uintptr_t; typedef char int_least8_t; typedef short int_least16_t; typedef int int_least32_t; typedef long long int_least64_t; typedef unsigned char uint_least8_t; typedef unsigned short uint_least16_t; typedef unsigned int uint_least32_t; typedef unsigned long long uint_least64_t; # 33 "/usr/include/sys/types.h" 2 3 typedef long long longlong_t; typedef unsigned long long u_longlong_t; # 57 "/usr/include/sys/types.h" 3 typedef unsigned char uchar_t; typedef unsigned short ushort_t; typedef unsigned int uint_t; typedef unsigned long ulong_t; typedef char * caddr_t; typedef long daddr_t; typedef short cnt_t; typedef ulong_t paddr_t; typedef uchar_t use_t; typedef short sysid_t; typedef short index_t; typedef long off_t; typedef longlong_t off64_t; typedef ulong_t ino_t; typedef long blkcnt_t; typedef ulong_t fsblkcnt_t; typedef ulong_t fsfilcnt_t; typedef u_longlong_t ino64_t; typedef longlong_t blkcnt64_t; typedef u_longlong_t fsblkcnt64_t; typedef u_longlong_t fsfilcnt64_t; typedef enum { B_FALSE, B_TRUE } boolean_t; typedef int64_t pad64_t; typedef uint64_t upad64_t; # 139 "/usr/include/sys/types.h" 3 typedef longlong_t offset_t; typedef u_longlong_t u_offset_t; typedef u_longlong_t len_t; typedef longlong_t diskaddr_t; # 159 "/usr/include/sys/types.h" 3 typedef union { offset_t _f; struct { long _u; off_t _l; } _p; } lloff_t; # 179 "/usr/include/sys/types.h" 3 typedef union { diskaddr_t _f; struct { long _u; daddr_t _l; } _p; } lldaddr_t; typedef ulong_t k_fltset_t; typedef long id_t; typedef uint_t useconds_t; typedef ulong_t major_t; typedef ulong_t minor_t; typedef short pri_t; typedef ushort_t o_mode_t; typedef short o_dev_t; typedef ushort_t o_uid_t; typedef o_uid_t o_gid_t; typedef short o_nlink_t; typedef short o_pid_t; typedef ushort_t o_ino_t; typedef int key_t; typedef ulong_t mode_t; typedef uid_t gid_t; typedef ulong_t nlink_t; typedef ulong_t dev_t; typedef long pid_t; typedef unsigned int pthread_t; typedef unsigned int pthread_key_t; typedef struct _pthread_mutex { struct { uint8_t __pthread_mutex_flag[4]; uint32_t __pthread_mutex_type; } __pthread_mutex_flags; union { struct { uint8_t __pthread_mutex_pad[8]; } __pthread_mutex_lock64; upad64_t __pthread_mutex_owner64; } __pthread_mutex_lock; upad64_t __pthread_mutex_data; } pthread_mutex_t; typedef struct _pthread_cond { struct { uint8_t __pthread_cond_flag[4]; uint32_t __pthread_cond_type; } __pthread_cond_flags; upad64_t __pthread_cond_data; } pthread_cond_t; typedef struct _pthread_attr { void *__pthread_attrp; } pthread_attr_t; typedef struct _pthread_mutexattr { void *__pthread_mutexattrp; } pthread_mutexattr_t; typedef struct _pthread_condattr { void *__pthread_condattrp; } pthread_condattr_t; typedef struct _once { upad64_t __pthread_once_pad[4]; } pthread_once_t; typedef int ssize_t; typedef long time_t; typedef long clock_t; typedef int clockid_t; typedef int timer_t; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; # 379 "/usr/include/sys/types.h" 3 typedef long hostid_t; typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef struct _quad { long val[2]; } quad; # 1 "/usr/include/sys/select.h" 1 3 #pragma ident "@(#)select.h 1.11 96/06/20 SMI" # 1 "/usr/include/sys/time.h" 1 3 #pragma ident "@(#)time.h 2.52 96/11/15 SMI" struct timeval { time_t tv_sec; long tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; # 1 "/usr/include/sys/types.h" 1 3 # 438 "/usr/include/sys/types.h" 3 # 71 "/usr/include/sys/time.h" 2 3 struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef struct timespec { time_t tv_sec; long tv_nsec; } timespec_t; typedef struct timespec timestruc_t; # 204 "/usr/include/sys/time.h" 3 typedef struct itimerspec { struct timespec it_interval; struct timespec it_value; } itimerspec_t; typedef longlong_t hrtime_t; # 318 "/usr/include/sys/time.h" 3 int adjtime(struct timeval *, struct timeval *); int getitimer(int, struct itimerval *); int setitimer(int, struct itimerval *, struct itimerval *); int settimeofday(struct timeval *, void *); hrtime_t gethrtime(void); hrtime_t gethrvtime(void); int gettimeofday(struct timeval *, void *); # 1 "/usr/include/time.h" 1 3 #pragma ident "@(#)time.h 1.25 96/03/12 SMI" 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; }; extern clock_t clock(void); extern double difftime(time_t, time_t); extern time_t mktime(struct tm *); extern time_t time(time_t *); extern char *asctime(const struct tm *); extern char *ctime(const time_t *); extern struct tm *gmtime(const time_t *); extern struct tm *localtime(const time_t *); extern size_t strftime(char *, size_t, const char *, const struct tm *); extern char *strptime(const char *, const char *, struct tm *); # 1 "/usr/include/sys/time.h" 1 3 # 414 "/usr/include/sys/time.h" 3 # 93 "/usr/include/time.h" 2 3 # 1 "/usr/include/sys/siginfo.h" 1 3 #pragma ident "@(#)siginfo.h 1.39 96/06/28 SMI" union sigval { int sival_int; void *sival_ptr; }; struct sigevent { int sigev_notify; union { int _sigev_signo; void (*_sigev_notify_function)(union sigval); } _sigev_un; union sigval sigev_value; int _sigev_pad1; void *_sigev_notify_attributes; int _sigev_pad2; }; # 1 "/usr/include/sys/machsig.h" 1 3 #pragma ident "@(#)machsig.h 1.12 96/04/29 SMI" # 88 "/usr/include/sys/siginfo.h" 2 3 # 1 "/usr/include/sys/time.h" 1 3 # 414 "/usr/include/sys/time.h" 3 # 160 "/usr/include/sys/siginfo.h" 2 3 # 181 "/usr/include/sys/siginfo.h" 3 typedef struct siginfo { int si_signo; int si_code; int si_errno; union { int __pad[((128 / sizeof (int)) - 3) ]; struct { pid_t __pid; union { struct { uid_t __uid; union sigval __value; } __kill; struct { clock_t __utime; int __status; clock_t __stime; } __cld; } __pdata; } __proc; struct { void *__addr; int __trapno; caddr_t __pc; } __fault; struct { int __fd; long __band; } __file; struct { caddr_t __faddr; timestruc_t __tstamp; short __syscall; char __nsysarg; char __fault; long __sysarg[8]; long __mstate[17]; } __prof; } __data; } siginfo_t; typedef struct k_siginfo { int si_signo; int si_code; int si_errno; union { struct { pid_t __pid; union { struct { uid_t __uid; union sigval __value; } __kill; struct { clock_t __utime; int __status; clock_t __stime; } __cld; } __pdata; } __proc; struct { void *__addr; int __trapno; caddr_t __pc; } __fault; struct { int __fd; long __band; } __file; struct { caddr_t __faddr; timestruc_t __tstamp; short __syscall; char __nsysarg; char __fault; } __prof; } __data; } k_siginfo_t; typedef struct sigqueue { struct sigqueue *sq_next; k_siginfo_t sq_info; void (*sq_func)(struct sigqueue *); void *sq_backptr; } sigqueue_t; # 94 "/usr/include/time.h" 2 3 extern int clock_getres(clockid_t, struct timespec *); extern int clock_gettime(clockid_t, struct timespec *); extern int clock_settime(clockid_t, const struct timespec *); extern int timer_create(clockid_t, struct sigevent *, timer_t *); extern int timer_delete(timer_t); extern int timer_getoverrun(timer_t); extern int timer_gettime(timer_t, struct itimerspec *); extern int timer_settime(timer_t, int, const struct itimerspec *, struct itimerspec *); extern int nanosleep(const struct timespec *, struct timespec *); extern void tzset(void); extern char *tzname[2]; extern long _sysconf(int); extern long timezone; extern int daylight; extern int cftime(char *, char *, const time_t *); extern int ascftime(char *, const char *, const struct tm *); extern long altzone; extern struct tm *getdate(const char *); extern int getdate_err; # 183 "/usr/include/time.h" 3 # 292 "/usr/include/time.h" 3 # 399 "/usr/include/sys/time.h" 2 3 # 1 "/usr/include/sys/select.h" 1 3 # 96 "/usr/include/sys/select.h" 3 # 405 "/usr/include/sys/time.h" 2 3 # 16 "/usr/include/sys/select.h" 2 3 typedef long fd_mask; typedef long fds_mask; typedef struct fd_set { long fds_bits[((( 1024 )+(( (sizeof (fds_mask) * 8 ) )-1))/( (sizeof (fds_mask) * 8 ) )) ]; } fd_set; extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); # 418 "/usr/include/sys/types.h" 2 3 # 20 "/usr/include/unistd.h" 2 3 # 1 "/usr/include/sys/unistd.h" 1 3 #pragma ident "@(#)unistd.h 1.29 96/06/05 SMI" # 21 "/usr/include/unistd.h" 2 3 # 145 "/usr/include/unistd.h" 3 extern int access(const char *, int); extern int acct(const char *); extern unsigned alarm(unsigned); extern int brk(void *); extern int chdir(const char *); extern int chown(const char *, uid_t, gid_t); extern int chroot(const char *); extern int close(int); extern char *ctermid(char *); extern char *cuserid(char *); extern int dup(int); extern int dup2(int, int); extern int execl(const char *, const char *, ...); extern int execle(const char *, const char *, ...); extern int execlp(const char *, const char *, ...); extern int execv(const char *, char *const *); extern int execve(const char *, char *const *, char *const *); extern int execvp(const char *, char *const *); extern void _exit(int); extern int fattach(int, const char *); extern int fchdir(int); extern int fchown(int, uid_t, gid_t); extern int fchroot(int); extern int fdatasync(int); extern int fdetach(const char *); extern pid_t fork(void); extern pid_t fork1(void); extern long fpathconf(int, int); extern int fsync(int); extern int ftruncate(int, off_t); extern char *getcwd(char *, size_t); extern int getdtablesize(void); extern gid_t getegid(void); extern uid_t geteuid(void); extern gid_t getgid(void); extern int getgroups(int, gid_t *); extern long gethostid(void); extern int gethostname(char *, int); extern char *getlogin(void); extern int getpagesize(void); extern pid_t getpgid(pid_t); extern pid_t getpid(void); extern pid_t getppid(void); extern pid_t getpgrp(void); char *gettxt(const char *, const char *); extern pid_t getsid(pid_t); extern uid_t getuid(void); extern char *getwd(char *); extern int ioctl(int, int, ...); extern int isatty(int); extern int link(const char *, const char *); extern int lchown(const char *, uid_t, gid_t); extern offset_t llseek(int, offset_t, int); extern int lockf(int, int, off_t); extern off_t lseek(int, off_t, int); extern int mincore(caddr_t, size_t, char *); extern int nice(int); extern long pathconf(const char *, int); extern int pause(void); extern int pipe(int *); extern ssize_t pread(int, void *, size_t, off_t); extern void profil(unsigned short *, unsigned int, unsigned int, unsigned int); extern int ptrace(int, pid_t, int, int); extern ssize_t pwrite(int, const void *, size_t, off_t); extern ssize_t read(int, void *, size_t); extern int readlink(const char *, char *, size_t); extern int rename(const char *, const char *); extern int resolvepath(const char *, char *, size_t); extern int rmdir(const char *); extern void *sbrk(int); extern int setgid(gid_t); extern int setegid(gid_t); extern int setgroups(int, const gid_t *); extern int setpgid(pid_t, pid_t); extern pid_t setpgrp(void); extern int setregid(gid_t, gid_t); extern int setreuid(uid_t, uid_t); extern pid_t setsid(void); extern int setuid(uid_t); extern int seteuid(uid_t); extern unsigned sleep(unsigned); extern int stime(const time_t *); extern int symlink(const char *, const char *); extern void sync(void); extern long sysconf(int); extern pid_t tcgetpgrp(int); extern int tcsetpgrp(int, pid_t); extern off_t tell(int); extern int truncate(const char *, off_t); extern char *ttyname(int); extern useconds_t ualarm(useconds_t, useconds_t); extern int unlink(const char *); extern int usleep(useconds_t); extern pid_t vfork(void); extern void vhangup(void); extern ssize_t write(int, const void *, size_t); extern void yield(void); extern int ftruncate64(int, off64_t); extern off64_t lseek64(int, off64_t, int); extern ssize_t pread64(int, void *, size_t, off64_t); extern ssize_t pwrite64(int, const void *, size_t, off64_t); extern off64_t tell64(int); extern int truncate64(const char *, off64_t); extern int lockf64(int, int, off64_t); # 696 "/usr/include/unistd.h" 3 #pragma unknown_control_flow(vfork) # 818 "/usr/include/unistd.h" 3 # 2 "fooserv.c" 2 # 1 "/usr/include/stdio.h" 1 3 #pragma ident "@(#)stdio.h 1.49 97/05/09 SMI" # 1 "/usr/include/sys/va_list.h" 1 3 #pragma ident "@(#)va_list.h 1.6 96/01/26 SMI" # 41 "/usr/include/sys/va_list.h" 3 typedef void *__va_list; # 18 "/usr/include/stdio.h" 2 3 typedef long long __longlong_t; # 65 "/usr/include/stdio.h" 3 typedef long fpos_t; typedef __longlong_t fpos64_t; # 122 "/usr/include/stdio.h" 3 typedef struct { int _cnt; unsigned char *_ptr; unsigned char *_base; unsigned char _flag; unsigned char _file; } FILE; extern FILE __iob[20 ]; extern FILE *_lastbuf; extern unsigned char *_bufendtab[]; extern unsigned char _sibuf[], _sobuf[]; # 222 "/usr/include/stdio.h" 3 extern int remove(const char *); extern int rename(const char *, const char *); extern FILE *tmpfile(void); extern char *tmpnam(char *); extern int fclose(FILE *); extern int fflush(FILE *); extern FILE *fopen(const char *, const char *); extern FILE *freopen(const char *, const char *, FILE *); extern void setbuf(FILE *, char *); extern void setbuffer(FILE *, char *, size_t); extern int setlinebuf(FILE *); extern int setvbuf(FILE *, char *, int, size_t); extern int fprintf(FILE *, const char *, ...); extern int fscanf(FILE *, const char *, ...); extern int printf(const char *, ...); extern int scanf(const char *, ...); extern int snprintf(char *, size_t, const char *, ...); extern int sprintf(char *, const char *, ...); extern int sscanf(const char *, const char *, ...); extern int vfprintf(FILE *, const char *, __va_list); extern int vprintf(const char *, __va_list); extern int vsnprintf(char *, size_t, const char *, __va_list); extern int vsprintf(char *, const char *, __va_list); extern int fgetc(FILE *); extern char *fgets(char *, int, FILE *); extern int fputc(int, FILE *); extern int fputs(const char *, FILE *); extern int getc(FILE *); extern int getchar(void); extern char *gets(char *); extern int putc(int, FILE *); extern int putchar(int); extern int puts(const char *); extern int ungetc(int, FILE *); extern size_t fread(void *, size_t, size_t, FILE *); extern size_t fwrite(const void *, size_t, size_t, FILE *); extern int fgetpos(FILE *, fpos_t *); extern int fseek(FILE *, long, int); extern int fsetpos(FILE *, const fpos_t *); extern long ftell(FILE *); extern void rewind(FILE *); extern void clearerr(FILE *); extern int feof(FILE *); extern int ferror(FILE *); extern void perror(const char *); extern int __filbuf(FILE *); extern int __flsbuf(int, FILE *); extern FILE *fdopen(int, const char *); extern char *ctermid(char *); extern int fileno(FILE *); # 319 "/usr/include/stdio.h" 3 extern FILE *popen(const char *, const char *); extern char *cuserid(char *); extern char *tempnam(const char *, const char *); extern int getopt(int, char *const *, const char *); extern int getsubopt(char **, char *const *, char **); extern char *optarg; extern int optind, opterr, optopt; extern int getw(FILE *); extern int putw(int, FILE *); extern int pclose(FILE *); extern int fseeko(FILE *, off_t, int); extern off_t ftello(FILE *); extern FILE *fopen64(const char *, const char *); extern FILE *freopen64(const char *, const char *, FILE *); extern FILE *tmpfile64(void); extern int fgetpos64(FILE *, fpos64_t *); extern int fsetpos64(FILE *, const fpos64_t *); extern int fseeko64(FILE *, off64_t, int); extern off64_t ftello64(FILE *); # 467 "/usr/include/stdio.h" 3 # 515 "/usr/include/stdio.h" 3 # 3 "fooserv.c" 2 # 1 "/usr/include/sys/socket.h" 1 3 #pragma ident "@(#)socket.h 1.30 97/01/20 SMI" # 1 "/usr/include/sys/uio.h" 1 3 #pragma ident "@(#)uio.h 1.28 97/06/27 SMI" typedef struct iovec { caddr_t iov_base; int iov_len; } iovec_t; typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t; typedef struct uio { iovec_t *uio_iov; int uio_iovcnt; lloff_t _uio_offset; uio_seg_t uio_segflg; short uio_fmode; lldaddr_t _uio_limit; int uio_resid; } uio_t; typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t; # 98 "/usr/include/sys/uio.h" 3 extern ssize_t readv(int, const struct iovec *, int); extern ssize_t writev(int, const struct iovec *, int); # 37 "/usr/include/sys/socket.h" 2 3 # 1 "/usr/include/sys/netconfig.h" 1 3 #pragma ident "@(#)netconfig.h 1.13 95/02/24 SMI" struct netconfig { char *nc_netid; unsigned long nc_semantics; unsigned long nc_flag; char *nc_protofmly; char *nc_proto; char *nc_device; unsigned long nc_nlookups; char **nc_lookups; unsigned long nc_unused[8]; }; typedef struct { struct netconfig **nc_head; struct netconfig **nc_curr; } NCONF_HANDLE; extern void *setnetconfig(void); extern int endnetconfig(void *); extern struct netconfig *getnetconfig(void *); extern struct netconfig *getnetconfigent(char *); extern void freenetconfigent(struct netconfig *); extern void *setnetpath(void); extern int endnetpath(void *); extern struct netconfig *getnetpath(void *); # 113 "/usr/include/sys/netconfig.h" 3 # 41 "/usr/include/sys/socket.h" 2 3 typedef unsigned short sa_family_t; struct linger { int l_onoff; int l_linger; }; struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; struct msghdr { caddr_t msg_name; int msg_namelen; struct iovec *msg_iov; int msg_iovlen; caddr_t msg_accrights; int msg_accrightslen; }; # 238 "/usr/include/sys/socket.h" 3 # 264 "/usr/include/sys/socket.h" 3 struct cmsghdr { size_t cmsg_len; int cmsg_level; int cmsg_type; }; # 303 "/usr/include/sys/socket.h" 3 struct opthdr { long level; long name; long len; }; extern int accept(int, struct sockaddr *, int *); extern int bind(int, const struct sockaddr *, int); extern int connect(int, struct sockaddr *, int); extern int getpeername(int, struct sockaddr *, int *); extern int getsockname(int, struct sockaddr *, int *); extern int getsockopt(int, int, int, char *, int *); extern int listen(int, int); # 351 "/usr/include/sys/socket.h" 3 extern int recv(int, char *, int, int); extern int recvfrom(int, char *, int, int, struct sockaddr *, int *); extern int recvmsg(int, struct msghdr *, int); extern int send(int, const char *, int, int); extern int sendmsg(int, const struct msghdr *, int); extern int sendto(int, const char *, int, int, const struct sockaddr *, int); extern int setsockopt(int, int, int, const char *, int); extern int socketpair(int, int, int, int *); extern int shutdown(int, int); extern int socket(int, int, int); # 381 "/usr/include/sys/socket.h" 3 # 407 "/usr/include/sys/socket.h" 3 # 4 "fooserv.c" 2 # 1 "/usr/include/sys/un.h" 1 3 #pragma ident "@(#)un.h 1.9 96/07/12 SMI" struct sockaddr_un { sa_family_t sun_family; char sun_path[108]; }; # 6 "fooserv.c" 2 doit(int sock) { char buf[256]; int buflen; while(buflen = read(sock, buf, sizeof(buf))) { write(sock, buf, buflen); } close(sock); } main() { int sock, cli; struct sockaddr_un 1 ; int sun_len; sun_len = sizeof(1 ); if((sock = socket(1 , 2 , 0)) < 0) { perror("creating socket"); exit(-1); } 1 .sun_family = 1 ; snprintf(1 .sun_path, sizeof(1 .sun_path), "/tmp/mysock"); if(bind(sock, (struct sockaddr *)& 1 , sizeof(1 ))) { perror("binding socket"); exit(-1); } listen(sock, 5); while(cli = accept(sock, (struct sockaddr *)& 1 , &sun_len)) { switch(fork) { case 0: doit(cli); exit(0); break; case -1: perror("fork failed"); break; default: close(cli); break; } } }