/* * * server.h - part of Danovitsch Webcam * * Copyright (C) 2001 by Daan Vreeken * * Published under the terms of the GNU Public License 2.0 * (or any later version) * */ #define MaxClients 100 #define ClientTimeout 60,0 #define MaxLineSize 256 #define Server_ListenAddr "0.0.0.0" #define Server_Port 8000 extern int Clients; extern int AcceptSock; extern long ImagesServed; extern long ImagesSinceRestart; extern const char *StateName[]; enum ConnState { GetRequest=0, GetHeader, GetData, Response, Zombie }; enum ConnMode { LineMode=0, ByteMode }; struct Connection { int FD; int Close; struct timeval ConnectTime; enum ConnState State; enum ConnMode Mode; char *Line; int Length; char *Request; char *RequestArg[3]; char *PostData; int PostLength; int ContentLength; int Error; }; extern struct Connection Client[MaxClients]; extern struct Connection *Server_CurrentConnection; extern int SockSend(struct Connection *C, void *Buf, size_t Len); extern size_t SockRecv(struct Connection *C, void *Buf, size_t Len); extern void Print(struct Connection *C, char *Txt); extern void PrintF(struct Connection *C, char *Txt, ...); extern void Server_CloseConnection(int Nr); extern void Server_HandleBytes(struct Connection *C, char *Data, int Size); extern void Server_HandleLine(struct Connection *C); extern void Server_HandleData(int Conn); extern void Server_Init(void); extern void Server_Shutdown(void);