| 29 | namespace Mona { |
| 30 | |
| 31 | Session::Session(Protocol& protocol, Invoker& invoker, const shared_ptr<Peer>& pPeer, const char* name) : _sessionsOptions(0),_pPeer(pPeer),peer(*_pPeer),dumpJustInDebug(false), |
| 32 | _protocol(protocol), _name(name ? name : ""), invoker(invoker), died(false), _id(0) { |
| 33 | |
| 34 | ((string&)peer.protocol) = protocol.name; |
| 35 | if(memcmp(peer.id,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",ID_SIZE)==0) |
| 36 | Util::Random(peer.id,ID_SIZE); |
| 37 | |
| 38 | if (!peer.serverAddress) |
| 39 | ((SocketAddress&)peer.serverAddress).set(protocol.publicAddress); |
| 40 | else if (peer.serverAddress.port()==0) |
| 41 | ((SocketAddress&)peer.serverAddress).set(peer.serverAddress.host(), protocol.publicAddress.port()); |
| 42 | |
| 43 | DEBUG("peer.id ", Util::FormatHex(peer.id, ID_SIZE, LOG_BUFFER)); |
| 44 | } |
| 45 | |
| 46 | Session::Session(Protocol& protocol, Invoker& invoker, const char* name) : _sessionsOptions(0),dumpJustInDebug(false), _pPeer(new Peer((Handler&)invoker)), |
| 47 | _protocol(protocol),_name(name ? name : ""), invoker(invoker), died(false), _id(0), peer(*_pPeer) { |