#define DEBUG #include "../include/onbsd.h" #include void ev_handler(Conn *c, int events, void *ptr){ (void)ptr; switch(events){ case EV_POLL: if(c->is_listening){ fprintf(stdout,"EV_POLL - Listening for connections on %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port)); } if(c->is_accepted){ fprintf(stdout,"EV_POLL - Remote connection %s:%hu", inet_ntoa(c->rem.sin_addr), ntohs(c->rem.sin_port)); } if(c->is_client){ fprintf(stdout,"EV_POLL - Local connection %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port)); } break; case EV_OPEN: if(c->is_listening){ fprintf(stdout,"EV_OPEN - Listening for connections on %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port)); } if(c->is_accepted){ fprintf(stdout,"EV_OPEN - Opening connection on %s:%hu from %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port), inet_ntoa(c->rem.sin_addr), ntohs(c->rem.sin_port)); } if(c->is_client){ fprintf(stdout,"EV_OPEN - Opening connection on %s:%hu from %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port), inet_ntoa(c->rem.sin_addr), ntohs(c->rem.sin_port)); } break; case EV_READ: fprintf(stdout,"EV_READ - Reading connection %s:%hu from %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port), inet_ntoa(c->rem.sin_addr), ntohs(c->rem.sin_port)); break; case EV_CLOSE: fprintf(stdout,"EV_CLOSE - Closing connections on %s:%hu from %s:%hu", inet_ntoa(c->loc.sin_addr), ntohs(c->loc.sin_port), inet_ntoa(c->rem.sin_addr), ntohs(c->rem.sin_port)); break; default: break; } fprintf(stdout,"\n"); fflush(stdout); } int main(void){ Mgr m; init_mgr(&m); mgr_listen(&m, 3000, INADDR_LOOPBACK, ev_handler, NULL); for(;;){ mgr_poll(&m,5000); } return EXIT_SUCCESS; }