Navigation
Home
gpl
danovitschwebcam
1.0
server.h








































server.h
   
   /*
    *
    * 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);
   
   
   

syntax highlighted by Code2HTML, v. 0.9.1


Email me with questions/comments : Daan <Danovitsch @ Vitsch . net>