/* Called when module is unloaded */ DLLFUNC int MOD_UNLOAD(m_htm)(int module_unload) { if (del_Command(MSG_HTM, TOK_HTM, m_htm) < 0) { sendto_realops("Failed to delete commands when unloading %s", MOD_HEADER(m_htm).name); } #ifndef NO_FDLIST LockEventSystem(); EventDel(e_lcf); EventDel(e_htmcalc); UnlockEventSystem(); #endif return MOD_SUCCESS; }
void DoEvents(void) #endif { Event *eventptr; Event temp; for (eventptr = events; eventptr; eventptr = eventptr->next) { if (eventptr->howmany == -1) goto freeit; if ((eventptr->every == 0) || ((TStime() - eventptr->last) >= eventptr->every)) { eventptr->last = TStime(); (*eventptr->event)(eventptr->data); if (eventptr->howmany > 0) { eventptr->howmany--; if (eventptr->howmany == 0) { freeit: temp.next = EventDel(eventptr); eventptr = &temp; continue; } } } } }
int channeldumper_Unload(int module_unload) #endif { tainted--; LockEventSystem(); EventDel(ChannelDumpEvent); UnlockEventSystem(); return MOD_SUCCESS; }
void CPipeState_Listening::Unregister() { if( !GetPipe()->m_pReactor ) return; #ifdef _WIN32 EventDel(); #else EpollCtl(EPOLL_CTL_DEL,0); #endif }
int SendData(int fd, int events, void *arg) { struct myevent_s *ev = (struct myevent_s *)arg; int writeback = p_write_to_p(fd, "Hi this is server"); ev->len = 0; EventDel(g_epollfd, ev); if(writeback > 0) { EventSet(ev, fd, RecvData, ev); EventAdd(g_epollfd, EPOLLIN|EPOLLET, ev); } else { close(ev->fd); printf("send error %s , fd %d\n", strerror(errno), fd ); } }
int RecvData(int fd, int events, void *arg) { struct myevent_s *ev = (struct myevent_s *)arg; int readback = p_read_from_p(fd); EventDel(g_epollfd, ev); if(readback > 0 ) { ev->len = readback; EventSet(ev, fd, SendData, ev); EventAdd(g_epollfd, EPOLLOUT|EPOLLET, ev); } else if(readback == 0) { close(ev->fd); printf("close fd %d gracefully\n", fd); } else { close(ev->fd); printf("recv error %s fd %d \n", strerror(errno), fd); } return readback; }