@@ -3132,30 +3132,10 @@ bool CConnman::BindListenPort(const CService& addrBind, bilingual_str& strError,
3132
3132
return false ;
3133
3133
}
3134
3134
3135
- #ifdef USE_KQUEUE
3136
- if (socketEventsMode == SocketEventsMode::KQueue) {
3137
- struct kevent event;
3138
- EV_SET (&event, sock->Get (), EVFILT_READ, EV_ADD, 0 , 0 , nullptr );
3139
- if (kevent (Assert (m_edge_trig_events)->m_fd , &event, 1 , nullptr , 0 , nullptr ) != 0 ) {
3140
- strError = strprintf (_ (" Error: failed to add socket to kqueue fd (kevent returned error %s)" ), NetworkErrorString (WSAGetLastError ()));
3141
- LogPrintf (" %s\n " , strError.original );
3142
- return false ;
3143
- }
3144
- }
3145
- #endif
3146
-
3147
- #ifdef USE_EPOLL
3148
- if (socketEventsMode == SocketEventsMode::EPoll) {
3149
- epoll_event event;
3150
- event.data .fd = sock->Get ();
3151
- event.events = EPOLLIN;
3152
- if (epoll_ctl (Assert (m_edge_trig_events)->m_fd , EPOLL_CTL_ADD, sock->Get (), &event) != 0 ) {
3153
- strError = strprintf (_ (" Error: failed to add socket to epoll fd (epoll_ctl returned error %s)" ), NetworkErrorString (WSAGetLastError ()));
3154
- LogPrintf (" %s\n " , strError.original );
3155
- return false ;
3156
- }
3135
+ if (m_edge_trig_events && !m_edge_trig_events->AddSocket (sock->Get ())) {
3136
+ LogPrintf (" Error: EdgeTriggeredEvents::AddSocket() failed\n " );
3137
+ return false ;
3157
3138
}
3158
- #endif
3159
3139
3160
3140
vhListenSocket.push_back (ListenSocket (sock->Release (), permissions));
3161
3141
@@ -3553,23 +3533,15 @@ void CConnman::StopNodes()
3553
3533
for (CNode *pnode : m_nodes)
3554
3534
pnode->CloseSocketDisconnect (this );
3555
3535
}
3556
- for (ListenSocket& hListenSocket : vhListenSocket)
3536
+ for (ListenSocket& hListenSocket : vhListenSocket) {
3557
3537
if (hListenSocket.socket != INVALID_SOCKET) {
3558
- #ifdef USE_KQUEUE
3559
- if (socketEventsMode == SocketEventsMode::KQueue) {
3560
- struct kevent event;
3561
- EV_SET (&event, hListenSocket.socket , EVFILT_READ, EV_DELETE, 0 , 0 , nullptr );
3562
- kevent (Assert (m_edge_trig_events)->m_fd , &event, 1 , nullptr , 0 , nullptr );
3538
+ if (m_edge_trig_events && !m_edge_trig_events->RemoveSocket (hListenSocket.socket )) {
3539
+ LogPrintf (" EdgeTriggeredEvents::RemoveSocket() failed\n " );
3563
3540
}
3564
- #endif
3565
- #ifdef USE_EPOLL
3566
- if (socketEventsMode == SocketEventsMode::EPoll) {
3567
- epoll_ctl (Assert (m_edge_trig_events)->m_fd , EPOLL_CTL_DEL, hListenSocket.socket , nullptr );
3568
- }
3569
- #endif
3570
3541
if (!CloseSocket (hListenSocket.socket ))
3571
3542
LogPrintf (" CloseSocket(hListenSocket) failed with error %s\n " , NetworkErrorString (WSAGetLastError ()));
3572
3543
}
3544
+ }
3573
3545
3574
3546
// clean up some globals (to help leak detection)
3575
3547
std::vector<CNode*> nodes;
0 commit comments