int init_events() { struct timeval tv; struct event *timer = MyMalloc(sizeof(struct event)); // struct event *sigint = MyMalloc(sizeof(struct event)); ev_base = event_init(); event_set_log_callback(&libevent_log_cb); if(evdns_init() == -1) { ilog(L_ERROR, "libevent dns init failed"); return FALSE; } ilog(L_DEBUG, "libevent init %p", ev_base); memset(&tv, 0, sizeof(tv)); tv.tv_usec = 100; event_set(timer, -1, EV_PERSIST, timer_callback, timer); event_base_set(ev_base, timer); evtimer_add(timer, &tv); /* event_set(sigint, SIGINT, EV_SIGNAL|EV_PERSIST, sigint_callback, sigint); event_add(sigint, NULL);*/ return TRUE; }
int test_ccnet_config(const char *config_dir, int max_users) { g_type_init (); config_dir = ccnet_expand_path (config_dir); if (ccnet_log_init ("-", "debug") < 0) { fprintf (stderr, "ccnet_log_init error: %s\n", strerror(errno)); return -1; } srand (time(NULL)); session = (CcnetSession *)ccnet_server_session_new (); if (!session) { fprintf (stderr, "Error: failed to create ccnet session\n"); return -1; } event_init (); evdns_init (); ccnet_user_manager_set_max_users (((struct CcnetServerSession *)session)->user_mgr, max_users); if (ccnet_session_prepare(session, config_dir, TRUE) < 0) { return -1; } return 0; }
void dns_suite(void) { evdns_init(); dns_gethostbyname(); dns_gethostbyaddr(); evdns_shutdown(0); }
void dns_suite(void) { dns_server(); /* Do this before we call evdns_init. */ evdns_init(); dns_gethostbyname(); dns_gethostbyname6(); dns_gethostbyaddr(); evdns_shutdown(0); }
int main (int argc, char **argv) { char *config_dir; char *log_file = 0; const char *debug_str = 0; int relay_mode = 0; g_setenv ("G_SLICE", "always-malloc", 0); config_dir = "../../tests/basic/conf1"; g_type_init (); /* log */ if (!debug_str) debug_str = g_getenv("CCNET_DEBUG"); ccnet_debug_set_flags_string (debug_str); if (!log_file) log_file = "-"; if (ccnet_log_init (log_file, "info") < 0) { fprintf (stderr, "ccnet_log_init error: %s, %s\n", strerror(errno), log_file); exit (1); } srand (time(NULL)); session = (CcnetSession *)ccnet_daemon_session_new (); if (!session) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } event_init (); evdns_init (); if (ccnet_session_prepare(session, config_dir) < 0) { fprintf (stderr, "session prepare error\n"); return -1; } test(); fprintf (stderr, "success\n"); return 0; }
void analyze_init(void) { struct timeval tv; timerclear(&tv); tv.tv_sec = ANALYZE_REPORT_INTERVAL; struct event *ev_analyze = event_new(stats_libevent_base, -1, EV_PERSIST, analyze_report_cb, NULL); evtimer_add(ev_analyze, &tv); SPLAY_INIT(&oses); SPLAY_INIT(&ports); SPLAY_INIT(&spammers); SPLAY_INIT(&countries); SPLAY_INIT(&country_cache); evdns_init(); }
void * urlparser(void *none) { Surl *url = NULL; Url *ourl = NULL; map<string, string>::const_iterator itr; //event_base * base = event_base_new(); //evdns_base * dnsbase = evdns_base_new(base, 1); //event_base_loop(base,EVLOOP_NONBLOCK); while(1) { pthread_mutex_lock(&sq_lock); while (surl_queue.empty()) { pthread_cond_wait(&sq_cond, &sq_lock); } url = surl_queue.front(); surl_queue.pop(); pthread_mutex_unlock(&sq_lock); ourl = surl2ourl(url); itr = host_ip_map.find(ourl->domain); if (itr == host_ip_map.end()) { /* not found */ /* dns resolve */ event_base * base = event_init(); evdns_init(); evdns_resolve_ipv4(ourl->domain, 0, dns_callback, ourl); event_dispatch(); event_base_free(base); //evdns_base_resolve_ipv4(dnsbase, ourl->domain, 0, dns_callback, ourl); //event_base_loop(base, EVLOOP_ONCE | EVLOOP_NONBLOCK); } else { ourl->ip = strdup(itr->second.c_str()); push_ourlqueue(ourl); } } //evdns_base_free(dnsbase, 0); //event_base_free(base); return NULL; }
struct NeubotPoller * NeubotPoller_construct(void) { struct NeubotPoller *self; struct event_base *base; int retval; base = event_init(); if (base == NULL) return (NULL); if (evdns_init() != 0) return (NULL); self = (struct NeubotPoller *) calloc(1, sizeof(*self)); if (self == NULL) return (NULL); self->base = base; self->dnsbase = evdns_get_global_base(); if (self->dnsbase == NULL) abort(); #ifndef WIN32 event_set(&self->evsignal, SIGINT, EV_SIGNAL, NeubotPoller_sigint, self); retval = event_add(&self->evsignal, NULL); if (retval != 0) goto failure; #endif return (self); failure: #ifndef WIN32 event_del(&self->evsignal); #endif free(self); return (NULL); }
int main (int argc, char **argv) { int c; char *config_dir; char *cluster_config_dir = NULL; char *log_file = 0; const char *debug_str = 0; int daemon_mode = 0; int redirect = 0; const char *log_level_str = "debug"; config_dir = DEFAULT_CONFIG_DIR; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif while ((c = getopt_long (argc, argv, short_options, long_options, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); break; case 'v': exit (1); break; case 'c': config_dir = optarg; break; case 'C': cluster_config_dir = optarg; break; case 'f': log_file = optarg; break; case 'D': debug_str = optarg; break; case 'd': daemon_mode = 1; break; case 'P': pidfile = optarg; break; case 'r': redirect = 1; break; default: fprintf (stderr, "unknown option \"-%c\"\n", (char)c); usage(); exit (1); } } argc -= optind; argv += optind; if (config_dir == NULL) { fprintf (stderr, "Missing config dir\n"); exit (1); } if (cluster_config_dir == NULL) { fprintf (stderr, "Missing cluster config dir\n"); exit (1); } #ifndef WIN32 if (daemon_mode) daemon (1, 0); #endif #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init (); #endif /* log */ if (!debug_str) debug_str = g_getenv("CCNET_DEBUG"); ccnet_debug_set_flags_string (debug_str); config_dir = ccnet_expand_path (config_dir); if (!log_file) { char *logdir = g_build_filename (cluster_config_dir, "logs", NULL); checkdir_with_mkdir (logdir); g_free (logdir); log_file = g_build_filename (cluster_config_dir, "logs", "ccnet.log", NULL); } if (ccnet_log_init (log_file, log_level_str) < 0) { fprintf (stderr, "ccnet_log_init error: %s, %s\n", strerror(errno), log_file); exit (1); } srand (time(NULL)); session = (CcnetSession *)ccnet_outer_session_new (); if (!session) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } inner_session = (CcnetSession *)ccnet_inner_session_new (); if (!inner_session) { fputs ("Error: failed to start cluster ccnet session, " "see log file for the detail.\n", stderr); return -1; } event_init (); evdns_init (); if (ccnet_session_prepare(session, config_dir) < 0) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } if (ccnet_session_prepare(inner_session, cluster_config_dir) < 0) { fputs ("Error: failed to start cluster ccnet session, " "see log file for the detail.\n", stderr); return -1; } /* write pidfile after session_prepare success, if there is * another instance of ccnet session_prepare will failed. */ if (pidfile) { if (write_pidfile (pidfile) < 0) { ccnet_message ("Failed to write pidfile\n"); return -1; } } atexit (on_ccnet_exit); #ifndef WIN32 setSigHandlers(); #endif ccnet_session_start (session); ccnet_session_start (inner_session); ccnet_start_rpc(session); /* actually enter the event loop */ cluster_mgr = ccnet_cluster_manager_new (); ccnet_cluster_manager_start (cluster_mgr); if (redirect) cluster_mgr->redirect = 1; event_dispatch (); return 0; }
static void * basic_test_setup(const struct testcase_t *testcase) { struct event_base *base = NULL; evutil_socket_t spair[2] = { -1, -1 }; struct basic_test_data *data = NULL; #ifndef _WIN32 if (testcase->flags & TT_ENABLE_IOCP_FLAG) return (void*)TT_SKIP; #endif if (testcase->flags & TT_NEED_THREADS) { if (!(testcase->flags & TT_FORK)) return NULL; #if defined(EVTHREAD_USE_PTHREADS_IMPLEMENTED) if (evthread_use_pthreads()) exit(1); #elif defined(EVTHREAD_USE_WINDOWS_THREADS_IMPLEMENTED) if (evthread_use_windows_threads()) exit(1); #else return (void*)TT_SKIP; #endif } if (testcase->flags & TT_NEED_SOCKETPAIR) { if (evutil_socketpair(AF_UNIX, SOCK_STREAM, 0, spair) == -1) { fprintf(stderr, "%s: socketpair\n", __func__); exit(1); } if (evutil_make_socket_nonblocking(spair[0]) == -1) { fprintf(stderr, "fcntl(O_NONBLOCK)"); exit(1); } if (evutil_make_socket_nonblocking(spair[1]) == -1) { fprintf(stderr, "fcntl(O_NONBLOCK)"); exit(1); } } if (testcase->flags & TT_NEED_BASE) { if (testcase->flags & TT_LEGACY) base = event_init(); else base = event_base_new(); if (!base) exit(1); } if (testcase->flags & TT_ENABLE_IOCP_FLAG) { if (event_base_start_iocp(base, 0)<0) { event_base_free(base); return (void*)TT_SKIP; } } if (testcase->flags & TT_NEED_DNS) { evdns_set_log_fn(dnslogcb); if (evdns_init()) return NULL; /* fast failure */ /*XXX asserts. */ } if (testcase->flags & TT_NO_LOGS) event_set_log_callback(ignore_log_cb); data = calloc(1, sizeof(*data)); if (!data) exit(1); data->base = base; data->pair[0] = spair[0]; data->pair[1] = spair[1]; data->setup_data = testcase->setup_data; return data; }
int main (int argc, char **argv) { int c; char *config_dir; char *log_file = 0; const char *debug_str = 0; int daemon_mode = 0; int max_users = 0; const char *log_level_str = "debug"; gboolean test_config = FALSE; config_dir = DEFAULT_CONFIG_DIR; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif while ((c = getopt_long (argc, argv, short_options, long_options, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); break; case 'v': exit (1); break; case 'c': config_dir = optarg; break; case 'f': log_file = optarg; break; case 'D': debug_str = optarg; break; case 'd': daemon_mode = 1; break; case 'P': pidfile = optarg; break; case 'M': max_users = atoi(optarg); break; case 't': test_config = TRUE; break; default: fprintf (stderr, "unknown option \"-%c\"\n", (char)c); usage(); exit (1); } } argc -= optind; argv += optind; if (config_dir == NULL) { fprintf (stderr, "Missing config dir\n"); exit (1); } if (test_config) { /* test ccnet configuration and exit */ return test_ccnet_config (config_dir, max_users); } #ifndef WIN32 #ifndef __APPLE__ if (daemon_mode) daemon (1, 0); #endif #else WSADATA wsadata; WSAStartup(0x0101, &wsadata); #endif g_type_init (); /* log */ if (!debug_str) debug_str = g_getenv("CCNET_DEBUG"); ccnet_debug_set_flags_string (debug_str); config_dir = ccnet_expand_path (config_dir); if (!log_file) { char *logdir = g_build_filename (config_dir, "logs", NULL); checkdir_with_mkdir (logdir); g_free (logdir); log_file = g_build_filename (config_dir, "logs", "ccnet.log", NULL); } if (ccnet_log_init (log_file, log_level_str) < 0) { fprintf (stderr, "ccnet_log_init error: %s, %s\n", strerror(errno), log_file); exit (1); } srand (time(NULL)); session = (CcnetSession *)ccnet_server_session_new (); if (!session) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } event_init (); evdns_init (); ccnet_user_manager_set_max_users (((struct CcnetServerSession *)session)->user_mgr, max_users); if (ccnet_session_prepare(session, config_dir, FALSE) < 0) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } /* write pidfile after session_prepare success, if there is * another instance of ccnet session_prepare will failed. */ if (pidfile) { if (write_pidfile (pidfile) < 0) { ccnet_message ("Failed to write pidfile\n"); return -1; } } atexit (on_ccnet_exit); #ifndef WIN32 setSigHandlers(); #endif ccnet_session_start (session); ccnet_start_rpc(session); /* actually enter the event loop */ event_dispatch (); return 0; }
int main (int argc, char **argv) { int c; char *config_dir; char *log_file = 0; const char *debug_str = 0; int daemon_mode = 0; const char *log_level_str = "debug"; config_dir = DEFAULT_CONFIG_DIR; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif while ((c = getopt_long (argc, argv, short_options, long_options, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); break; case 'v': exit (1); break; case 'c': config_dir = optarg; break; case 'f': log_file = optarg; break; case 'D': debug_str = optarg; break; case 'd': daemon_mode = 1; break; default: usage(); exit (1); } } argc -= optind; argv += optind; if (config_dir == NULL) { fprintf (stderr, "Missing config dir\n"); exit (1); } #ifndef WIN32 #ifndef __APPLE__ if (daemon_mode) daemon (1, 0); #endif #else WSADATA wsadata; WSAStartup(0x0101, &wsadata); #endif g_type_init (); /* log */ if (!debug_str) debug_str = g_getenv("CCNET_DEBUG"); ccnet_debug_set_flags_string (debug_str); config_dir = ccnet_expand_path (config_dir); if (!log_file) { char *logdir = g_build_filename (config_dir, "logs", NULL); checkdir_with_mkdir (logdir); g_free (logdir); log_file = g_build_filename (config_dir, "logs", "ccnet.log", NULL); } if (ccnet_log_init (log_file, log_level_str) < 0) { fprintf (stderr, "ccnet_log_init error: %s, %s\n", strerror(errno), log_file); exit (1); } ccnet_message ("starting ccnet "PACKAGE_VERSION"\n"); srand (time(NULL)); session = (CcnetSession *)ccnet_daemon_session_new (); if (!session) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } event_init (); evdns_init (); if (ccnet_session_prepare(session, config_dir) < 0) { fputs ("Error: failed to start ccnet session, " "see log file for the detail.\n", stderr); return -1; } #ifndef WIN32 setSigHandlers(); #endif ccnet_session_start (session); ccnet_start_rpc(session); /* actually enter the event loop */ /* event_set_log_callback (logFunc); */ event_dispatch (); return 0; }