No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

59 líneas
906 B

  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