Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef __SSL_SERVER_H__
  2. #define __SSL_SERVER_H__
  3. #include "ssl_process.h"
  4. #include <sys/socket.h>
  5. #include <arpa/inet.h>
  6. #include <resolv.h>
  7. #include <unistd.h>
  8. #include <stdio.h>
  9. #include <string.h>
  10. #include <iostream>
  11. #include <map>
  12. #include <boost/thread/thread.hpp>
  13. #include <openssl/ssl.h>
  14. struct Acceptor
  15. {
  16. int _master;
  17. SSL_CTX* _ctx;
  18. Acceptor(int iMasterHd, SSL_CTX* iCtx)
  19. : _master(iMasterHd)
  20. , _ctx(iCtx)
  21. { }
  22. void operator()();
  23. int openTCPSocket();
  24. SSL* openSSLSession(int);
  25. };
  26. class Server : public SSLProcess
  27. {
  28. // Private data
  29. private:
  30. int _master;
  31. void startListen();
  32. void doServerSSLInit();
  33. boost::thread* _sender;
  34. boost::thread* _reciver;
  35. boost::thread* _reactor;
  36. public:
  37. // Constructors
  38. Server();
  39. ~Server();
  40. void init();
  41. void start();
  42. void waitForStop();
  43. };
  44. #endif