Server.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef SERVER_H
  2. #define SERVER_H
  3. #include <pthread.h>
  4. #include "Stream.h"
  5. #include "Banns.h"
  6. typedef struct Server
  7. {
  8. int maxClients;
  9. short port;
  10. pthread_t* threads;
  11. int* clientSockets;
  12. char** clientUser;
  13. int* loginTries;
  14. int* ips;
  15. int connectSocket;
  16. BannList* banns;
  17. ServerStreamFunction handler;
  18. char* directory;
  19. } Server;
  20. typedef struct ThreadData
  21. {
  22. int id;
  23. Server* server;
  24. } ThreadData;
  25. void serverInitDefaults(Server* s);
  26. int serverInit(Server* s, int maxClients, short port, char* directory);
  27. void serverRemove(Server* s);
  28. int serverSend(int clientSocket, Stream* out);
  29. void serverWaitForConnection(Server* s);
  30. void serverRegisterHandler(Server* s, ServerStreamFunction f);
  31. int serverSetUser(Server* s, int clientId, char* name);
  32. char* serverGetUser(Server* s, int clientId);
  33. void serverFreeUser(Server* s, int clientId);
  34. int serverRaiseLoginFails(Server* s, int clientId);
  35. void serverResetLoginFails(Server* s, int clientId);
  36. void serverBann(Server* s, int clientId);
  37. #endif