#ifndef _STRUCTS_H_caf5334e_ #define _STRUCTS_H_caf5334e_ #include typedef enum { OBT_EOF = 1, OBT_DATA } OBTYPE; typedef enum { END_L = 1, END_B } ENDIAN; typedef struct conn CONN; typedef struct flow FLOW; typedef struct oblk OBLK; typedef struct exprep EXPREP; struct exprep { EXPREP *link; unsigned int seq; void (*fn)(FLOW *, FILE *, void *); void *arg; } ; struct oblk { OBLK *link; OBTYPE type; union { struct { const unsigned char *b; int l; int p; unsigned char *tofree; } data; } ; } ; struct flow { CONN *conn; const char *dir; int srcbits; int dstbits; int srcfd; int dstfd; unsigned char *ibuf; int iballoc; int ibfill; int ibfull; void (*readdone)(FLOW *); OBLK *oq; OBLK **oqt; } ; struct conn { CONN *flink; CONN *blink; unsigned int serial; unsigned int flags; #define CF_PLEASEZAP 0x00000001 #define CF_EOF_C 0x00000002 #define CF_EOF_X 0x00000004 #define CF_EOF_BOTH (CF_EOF_C|CF_EOF_X) #define CF_C (CF_EOF_C) #define CF_X (CF_EOF_X) #define CF_EOF (CF_EOF_C|CF_EOF_X) int client_fd; int client_px; int X_fd; int X_px; char *remstr; FLOW ctox; FLOW xtoc; ENDIAN endian; unsigned int reqseq; EXPREP *repq; EXPREP **repqt; void *atoms; } ; #endif