void TmtSocketServer::Task(void) { if (m_SkStatus == enRecvOK || m_SkStatus == enSendAndRecvOK) { int revLen = RecvMsg((void*)pBuffer, m_BufferSize); ServerProcess(revLen); } }
void Server::Run(){ epoll_event events[MAX_EPOLL_SIZE]; int res; while(true){ res = epoll_wait(epfd, events, MAX_EPOLL_SIZE, -1); for(int i=0;i<res;i++){ int fd = events[i].data.fd; if(fd == sockfd) ServerProcess(); else if(fd == STDIN_FILENO) StdinProcess(); else ClientProcess(fd); } } }
int AllocateTask(int thread_no) { while(1) { sem_wait(&pSems[thread_no]); debug_print(("allocating a event!\n")); pthread_mutex_lock(&mutex); tQueueNode * ptask = NULL; ptask = OutQueue(p); pthread_mutex_unlock(&mutex); ServerProcess(ptask->sockfd,ptask->pBuf); debug_print(("ServerProcess finish\n")); free(ptask); } }
int main(int argc, char *argv[]) { int c; /* Set up owlib */ LibSetup(program_type_httpd); Setup_Systemd() ; // systemd? Setup_Launchd() ; // launchd? /* grab our executable name */ ArgCopy( argc, argv ) ; while ((c = getopt_long(argc, argv, OWLIB_OPT, owopts_long, NULL)) != -1) { switch (c) { case 'V': fprintf(stderr, "%s version:\n\t" VERSION "\n", argv[0]); break; default: break; } if ( BAD( owopt(c, optarg) ) ) { ow_exit(0); /* rest of message */ } } /* non-option arguments */ while (optind < argc) { ARG_Generic(argv[optind]); ++optind; } switch (Globals.daemon_status) { case e_daemon_sd: case e_daemon_sd_done: // systemd done later break ; default: if (Outbound_Control.active == 0) { if (Globals.zero == zero_none) { LEVEL_DEFAULT("%s would be \"locked in\" so will quit.\nBonjour and Avahi not available.", argv[0]); ow_exit(1); } else { LEVEL_CONNECT("%s will use an ephemeral port", argv[0]) ; } ARG_Server(NULL); // make an ephemeral assignment } break ; } /* become a daemon if not told otherwise */ if ( BAD(EnterBackground()) ) { ow_exit(1); } /* Set up adapters and systemd */ if ( BAD(LibStart(NULL)) ) { ow_exit(1); } set_exit_signal_handlers(exit_handler); set_signal_handlers(NULL); ServerProcess(Acceptor); LEVEL_DEBUG("ServerProcess done"); ow_exit(0); LEVEL_DEBUG("owhttpd done"); return 0; }