2 /* -------------------------------------------------------------------------- */
17 #include <netinet/tcp.h>
18 #include <arpa/inet.h>
19 #include <X11/Xutil.h>
24 /* -------------------------------------------------------------------------- */
26 #define LOAD_MODULES_EARLY 1
31 #define DLOPEN(n) dlopen(n, RTLD_GLOBAL|RTLD_NOW)
33 #define DLERROR dlerror()
35 #define LINGER_LOOPS 500
37 #define EMPTY_IN_ADDR { 0 }
40 #define SOCKET(a,t,p,s) s=socket(a,t,p)
41 #define ACCEPT(as,a,l,s) s=accept(as,a,l)
44 #define CONNECT connect
45 #define SOCKET_READ( s,b,l) recv(s,b,l,MSG_NOSIGNAL)
46 #define SOCKET_WRITE(s,b,l) send(s,b,l,MSG_NOSIGNAL)
47 #define SOCKET_CLOSE close
48 #define SET_NON_BLOCKING(s) int f=fcntl(s, F_GETFL); if(f!=-1) fcntl(s, F_SETFL, f|O_NONBLOCK)
49 #define SET_NO_DELAY(s) int arg=1; r=setsockopt(s, SOL_TCP, TCP_NODELAY, (char*)&arg, sizeof(arg))
50 #define SET_REUSEADDR(s) int arg=1; r=setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char*)&arg, sizeof(arg))
53 #define INTERRUPTED EINTR
54 #define NOTACTIVE EWOULDBLOCK
55 #define ISCONNECTING(e) (e==EINPROGRESS || e==EALREADY)
56 #define ISNOTACTIVE(e) (e==EAGAIN || e==EWOULDBLOCK)
62 #define WRITEFILE write
63 #define MKDIR(n) mkdir(n, 0777)
64 #define FPRINTF fprintf
65 #define FFLUSH(f) fflush(f)
66 #define FCLOSE(f) close(f)
67 #define PRINTFOUT(f) printf(f)
68 #define PRINTFERR(f) fprintf(stderr,f)
69 #define VPRINTFOUT(f,ap) vprintf(f,ap)
70 #define VPRINTFERR(f,ap) vfprintf(stderr,f,ap)
71 #define FERRNO(n) errno
72 #define EXIT(n) exit(n)
75 #define TIMEZONE(tm) tm->tm_gmtoff
76 #define SLEEP_MS(x) do{struct timeval t;t.tv_sec=0;t.tv_usec=(x)*1000;select(0,0,0,0,&t);}while(0)
80 #define C_RUN_ARG void*
82 /* -------------------------------------------------------------------------- */