#ifndef DAEMON_H #define DAEMON_H #include #include #ifndef ARG #ifdef __STDC__ #define ARG(x) x #else #define ARG(x) () #endif #endif struct Argv_t { FILE *in, *out; int argc; char **argv; char *inputline; struct Daemoncmd *dc; }; typedef struct Argv_t argv_t; typedef struct Buffer_t { char *data; int used, left, lastread; } buffer_t; typedef struct ClientType { char hostname[1024]; char username[32]; char buffer[4096]; int mode; argv_t Argv; int fd, access, lastread, midcheck; buffer_t in, out; int ihavecount, ihavesize, ihaveduplicate, ihavefail; int statcount, statfail; time_t begin; } ClientType; typedef struct Daemoncmd { char *name; char *usage; int argc, argno, errorcode, normalcode; int (*main) ARG((ClientType *)); } daemoncmd_t; extern void installdaemon ARG((daemoncmd_t *, int, char *)); extern ClientType *Channel; #endif