/************************************************/ /* */ /* Copyright: */ /* Jean-Marc Pigeon <jmp@safe.ca> */ /* Distributed under the Gnu Public */ /* License, see the License file in this */ /* package. */ /* */ /* Define all routine to manage devices at */ /* low level. */ /* */ /************************************************/ #ifndef UNIDEV #define UNIDEV #include <stdio.h> #include <sys/socket.h> /*defining protocol values */ typedef enum {p_msmtp,p_undef}PROTYP; typedef enum {pr_locname,pr_locip,pr_remname,pr_remip}PEERTYP; /*listening binding definition */ typedef struct { PROTYP proto; /*protocol type */ int port; /*port used */ char *ipnum; /*listening address */ time_t lasttry; /*last binding request */ int iteration; /*number of binding open*/ int handle; /*binded handle */ pid_t *process; /*process used */ }LSTTYP; extern LSTTYP **dev_getlst(LSTTYP **lst,PROTYP proto,char *bindinfo); extern LSTTYP **dev_freelst(LSTTYP **lst); extern void dev_mullisten(LSTTYP **lst); extern void dev_mulclose(LSTTYP **lst); extern int dev_acceptfile(LSTTYP *lst); extern char *dev_getaddrname(int handle,PEERTYP peer,char *unknown); #endif