/************************************************************************/
/*                                                                      */
/*  server_lib.h                                                        */
/*                                                                      */
/*  $Id: server_lib.h,v 1.5 1998/09/29 06:44:33 chris Exp $       */
/*                                                                      */
/************************************************************************/
#ifndef SERVER_LIB_H
#define SERVER_LIB_H

#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

#define MAX_CLIENTS           16
#define CLIENTNAMESIZE        64
#define MK4D_DEFPORT	    4444
#define MK4D_MAXMSG	    1000
#define MK4D_SERVICE        "Mk4d"

/* This defines a client */    
typedef struct 
{
    int     ClientSocket;
    char    Hostname[128];
    long    IP_Address;
    char    ClientName[CLIENTNAMESIZE];
    char    Username[64];               /* as in /etc/passwd file */
    int     Authenticated;              /* 1 = user is ok         */
    char    buffer[2*(MK4D_MAXMSG+1)];
} ClientDesTyp;

/* public prototypes */
extern int      sl_Setup_Server_Socket(int Port);
extern int      sl_ConnentToNextClient(int socket);
extern int      sl_GetClientMessage(int sd, char buff[]);
extern int      sl_Send2Client(int sd, char message[]);
extern void     ct_Initialize(); 
extern int      ct_ClientCount(void);
extern int      ct_get_fdset(int *FD_limit, fd_set *FDs);
extern int      ct_AddClient(ClientDesTyp *NewClient);
extern int      ct_SetClientInfo(int ClientSocket,
                    char hostname[], char clientname[],
                    char username[], int Authenticated);
extern int      ct_GetClientAuthentication(int ClientSocket,
                    int*Authenticated);
extern int      ct_RemoveClient(int OldSocket);
extern int      ct_RemoveAllClients(void);


#endif /* SERVER_LIB_H */
