@@ -25,7 +25,6 @@ static UdpServer::PeerIdType makeSockId(sockaddr *addr, int) {
25
25
UdpServer::PeerIdType ret;
26
26
switch (addr->sa_family ) {
27
27
case AF_INET : {
28
- ret.resize (18 );
29
28
ret[0 ] = ((struct sockaddr_in *) addr)->sin_port >> 8 ;
30
29
ret[1 ] = ((struct sockaddr_in *) addr)->sin_port & 0xFF ;
31
30
// ipv4地址统一转换为ipv6方式处理 [AUTO-TRANSLATED:ad7cf8c3]
@@ -35,13 +34,12 @@ static UdpServer::PeerIdType makeSockId(sockaddr *addr, int) {
35
34
return ret;
36
35
}
37
36
case AF_INET6 : {
38
- ret.resize (18 );
39
37
ret[0 ] = ((struct sockaddr_in6 *) addr)->sin6_port >> 8 ;
40
38
ret[1 ] = ((struct sockaddr_in6 *) addr)->sin6_port & 0xFF ;
41
39
memcpy (&ret[2 ], &(((struct sockaddr_in6 *)addr)->sin6_addr ), 16 );
42
40
return ret;
43
41
}
44
- default : assert ( 0 ); return " " ;
42
+ default : throw std::invalid_argument ( " invalid sockaddr address " ) ;
45
43
}
46
44
}
47
45
@@ -78,7 +76,7 @@ void UdpServer::start_l(uint16_t port, const std::string &host) {
78
76
// 主server才创建session map,其他cloned server共享之 [AUTO-TRANSLATED:113cf4fd]
79
77
// Only the main server creates a session map, other cloned servers share it
80
78
_session_mutex = std::make_shared<std::recursive_mutex>();
81
- _session_map = std::make_shared<std::unordered_map<PeerIdType, SessionHelper:: Ptr > >();
79
+ _session_map = std::make_shared<SessionMapType >();
82
80
83
81
// 新建一个定时器定时管理这些 udp 会话,这些对象只由主server做超时管理,cloned server不管理 [AUTO-TRANSLATED:d20478a2]
84
82
// Create a timer to manage these udp sessions periodically, these objects are only managed by the main server, cloned servers do not manage them
@@ -207,7 +205,7 @@ void UdpServer::onManagerSession() {
207
205
std::lock_guard<std::recursive_mutex> lock (*_session_mutex);
208
206
// 拷贝map,防止遍历时移除对象 [AUTO-TRANSLATED:ebbc7595]
209
207
// Copy the map to prevent objects from being removed during traversal
210
- copy_map = std::make_shared<std::unordered_map<PeerIdType, SessionHelper:: Ptr > >(*_session_map);
208
+ copy_map = std::make_shared<SessionMapType >(*_session_map);
211
209
}
212
210
auto lam = [copy_map]() {
213
211
for (auto &pr : *copy_map) {
0 commit comments