00001 #ifndef N2NCCLIENTINFO_H
00002 #define N2NCCLIENTINFO_H
00003
00004 #include "nixsys.h"
00005 #include "rsa.h"
00006 #include "socket.h"
00007 #include "socketaddress.h"
00008 #include "resolver.h"
00009
00010 #define N2NCCLIENTINFO_CLIENT_TIMEOUT 1000
00011
00012 using namespace n2nc ;
00013
00014 namespace n2nc {
00015
00019 class ClientInfo{
00020 public:
00021
00022 typedef u_int32_t ClientID ;
00023
00024 ClientInfo(ClientID id, net::Socket *sk);
00025 ~ClientInfo();
00026
00027 ClientID getKeyID();
00028
00030 time_t setAckTime();
00031 int setServicePort(uint16_t port);
00032 uint16_t getServicePort();
00033 net::Socket *getCtlSock() ;
00034 net::SocketAddress *getSrvSocketAddr();
00035
00036
00037
00039 bool checkStatus();
00040
00041
00042 private:
00043
00044 n2nc::security::Rsa *m_rsakey ;
00045 time_t m_last_ack_time ;
00046 uint16_t m_sport ;
00047 net::Socket *m_ctlsk ;
00048 net::SocketAddress *m_srv_sockaddr ;
00049 ClientID m_id ;
00050 };
00051
00052 }
00053
00054 #endif