int main (int argc, char **argv) { ret_t ret; struct sigaction act; ret = check_for_python(); if (ret != ret_ok) { PRINT_MSG ("ERROR: Couldn't find python.\n"); exit (EXIT_ERROR); } /* Signal handling */ act.sa_handler = SIG_IGN; sigaction (SIGPIPE, &act, NULL); memset(&act, 0, sizeof(act)); act.sa_sigaction = signals_handler; act.sa_flags = SA_SIGINFO; sigaction (SIGCHLD, &act, NULL); sigaction (SIGINT, &act, NULL); sigaction (SIGTERM, &act, NULL); /* Initialize the embedded server */ cherokee_init(); cherokee_spawner_set_active (false); process_parameters (argc, argv); ret = cherokee_server_new (&srv); if (ret != ret_ok) exit (EXIT_ERROR); ret = config_server (srv); if (ret != ret_ok) exit (EXIT_ERROR); ret = cherokee_server_initialize (srv); if (ret != ret_ok) exit (EXIT_ERROR); print_connection_info(); ret = cherokee_server_unlock_threads (srv); if (ret != ret_ok) exit (EXIT_ERROR); do { ret = cherokee_server_step (srv); } while (ret == ret_eagain); cherokee_server_stop (srv); cherokee_server_free (srv); cherokee_mrproper(); return EXIT_OK; }
void config_parse(void) { if(get_conf(hftirc.conf.path) == -1) { ui_print_buf(0, "parsing configuration file (%s) failed.", hftirc.conf.path); sprintf(hftirc.conf.path, "%s/hftirc/hftirc.conf", XDG_CONFIG_DIR); get_conf(hftirc.conf.path); } config_misc(); config_ui(); config_ignore(); config_server(); free_conf(); return; }
__private_extern__ boolean_t config_demux(mach_msg_header_t *request, mach_msg_header_t *reply) { Boolean processed = FALSE; /* * (attempt to) process SCDynamicStore requests. */ processed = config_server(request, reply); if (processed) { return TRUE; } /* * (attempt to) process (NO MORE SENDERS) notification messages. */ processed = notify_server(request, reply); if (processed) { return TRUE; } /* * unknown message ID, log and return an error. */ SCLog(TRUE, LOG_ERR, CFSTR("config_demux(): unknown message ID (%d) received"), request->msgh_id); reply->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(request->msgh_bits), 0); reply->msgh_remote_port = request->msgh_remote_port; reply->msgh_size = sizeof(mig_reply_error_t); /* Minimal size */ reply->msgh_local_port = MACH_PORT_NULL; reply->msgh_id = request->msgh_id + 100; ((mig_reply_error_t *)reply)->NDR = NDR_record; ((mig_reply_error_t *)reply)->RetCode = MIG_BAD_ID; return FALSE; }
int main() { int i; struct timespec start, end, diff[8]; table* t; int widths[] = { 20, 20, 20 }; machine* server; half_long_string hl_str; config_server(); deploy(machines[0], "./rpc_times_server"); deploy(machines[2], "./rpc_times_server"); deploy(machines[3], "./rpc_times_server"); sleep(5); // 1028 bytes arg for (i = 0; i < 1024; i++) { hl_str.str1[i] = 65 + i % 26; hl_str.str2[i] = 65 + i % 26; } { // Local call 4 bytes printf("Calling Local (no RPC): 4 bytes"); fflush(stdout); clock_gettime(CLOCK_REALTIME, &start); local_call_4(1000); clock_gettime(CLOCK_REALTIME, &end); diff[0].tv_nsec = end.tv_nsec - start.tv_nsec; diff[0].tv_sec = end.tv_sec - start.tv_sec; // Local call 2048 bytes printf(", 2048 bytes\t\tOK\n"); clock_gettime(CLOCK_REALTIME, &start); local_call_2048(hl_str); clock_gettime(CLOCK_REALTIME, &end); diff[1].tv_nsec = end.tv_nsec - start.tv_nsec; diff[1].tv_sec = end.tv_sec - start.tv_sec; } { server = machines[4]; // Remote call 4 bytes printf("Calling Local RPC: 4 bytes"); clock_gettime(CLOCK_REALTIME, &start); rpc_call_4(server->ip, 1000); clock_gettime(CLOCK_REALTIME, &end); diff[2].tv_nsec = end.tv_nsec - start.tv_nsec; diff[2].tv_sec = end.tv_sec - start.tv_sec; // Remote call 2048 bytes printf(", 2048 bytes\t\tOK\n"); clock_gettime(CLOCK_REALTIME, &start); rpc_call_2048(server->ip, hl_str); clock_gettime(CLOCK_REALTIME, &end); diff[3].tv_nsec = end.tv_nsec - start.tv_nsec; diff[3].tv_sec = end.tv_sec - start.tv_sec; } { server = machines[2]; // Remote call 4 bytes (Remote: Fedora) printf("Calling Remote Homogeneous: 4 bytes"); clock_gettime(CLOCK_REALTIME, &start); rpc_call_4(server->ip, 1000); clock_gettime(CLOCK_REALTIME, &end); diff[4].tv_nsec = end.tv_nsec - start.tv_nsec; diff[4].tv_sec = end.tv_sec - start.tv_sec; // Remote call 2048 bytes (Remote: Fedora) printf(", 2048 bytes\t\tOK\n"); clock_gettime(CLOCK_REALTIME, &start); rpc_call_2048(server->ip, hl_str); clock_gettime(CLOCK_REALTIME, &end); diff[5].tv_nsec = end.tv_nsec - start.tv_nsec; diff[5].tv_sec = end.tv_sec - start.tv_sec; } { server = machines[2]; // Remote call 4 bytes (Remote: Alpha) printf("Calling Remote heterogeneous: 4 bytes"); clock_gettime(CLOCK_REALTIME, &start); rpc_call_4(server->ip, 1000); clock_gettime(CLOCK_REALTIME, &end); diff[6].tv_nsec = end.tv_nsec - start.tv_nsec; diff[6].tv_sec = end.tv_sec - start.tv_sec; // Remote call 2048 bytes (Remote: Alpha) printf(", 2048 bytes\t\tOK\n"); clock_gettime(CLOCK_REALTIME, &start); rpc_call_2048(server->ip, hl_str); clock_gettime(CLOCK_REALTIME, &end); diff[7].tv_nsec = end.tv_nsec - start.tv_nsec; diff[7].tv_sec = end.tv_sec - start.tv_sec; } printf("\nResultados\n"); printf("==========\n"); // Initialize table t = table_initialize(3, widths); // Write row data table_add_row(t); table_add_data(t, 0, 0, ""); table_add_data(t, 0, 1, "4b in, 4b out"); table_add_data(t, 0, 2, "2x1024 in, 2048 out"); // Write row data table_add_row(t); table_add_data(t, 1, 0, "Local call"); table_add_data(t, 1, 1, "%lis %09li ns", diff[0].tv_sec, diff[0].tv_nsec); table_add_data(t, 1, 2, "%lis %09li ns", diff[1].tv_sec, diff[1].tv_nsec); // Write row data table_add_row(t); table_add_data(t, 2, 0, "RPC (local)"); table_add_data(t, 2, 1, "%lis %09li ns", diff[2].tv_sec, diff[2].tv_nsec); table_add_data(t, 2, 2, "%lis %09li ns", diff[3].tv_sec, diff[3].tv_nsec); // Write row data table_add_row(t); table_add_data(t, 3, 0, "RPC (remota)"); table_add_data(t, 3, 1, "%lis %09li ns", diff[4].tv_sec, diff[4].tv_nsec); table_add_data(t, 3, 2, "%lis %09li ns", diff[5].tv_sec, diff[5].tv_nsec); // Write row data table_add_row(t); table_add_data(t, 4, 0, "RPC (hetero)"); table_add_data(t, 4, 1, "%lis %09li ns", diff[6].tv_sec, diff[6].tv_nsec); table_add_data(t, 4, 2, "%lis %09li ns", diff[7].tv_sec, diff[7].tv_nsec); // Print table table_print(t); return 0; }
int main (int argc, char **argv) { ret_t ret; struct sigaction act; /* Globals */ document_root = strdup (DEFAULT_DOCUMENTROOT); config_file = strdup (DEFAULT_CONFIG_FILE); bind_to = strdup (DEFAULT_BIND); if ((!bind_to) || (!config_file) || (!document_root)) { PRINT_MSG ("ERROR: Couldn't allocate memory.\n"); exit (EXIT_ERROR); } /* Python */ ret = check_for_python(); if (ret != ret_ok) { PRINT_MSG ("ERROR: Couldn't find python.\n"); exit (EXIT_ERROR); } /* Signal handling */ act.sa_handler = SIG_IGN; sigaction (SIGPIPE, &act, NULL); memset(&act, 0, sizeof(act)); act.sa_sigaction = signals_handler; act.sa_flags = SA_SIGINFO; sigaction (SIGCHLD, &act, NULL); sigaction (SIGINT, &act, NULL); sigaction (SIGTERM, &act, NULL); /* Initialize the embedded server */ cherokee_init(); /* Seed random numbers */ cherokee_random_seed(); cherokee_spawner_set_active (false); process_parameters (argc, argv); ret = cherokee_server_new (&srv); if (ret != ret_ok) exit (EXIT_ERROR); ret = config_server (srv); if (ret != ret_ok) exit (EXIT_ERROR); ret = cherokee_server_initialize (srv); if (ret != ret_ok) exit (EXIT_ERROR); print_connection_info(); ret = cherokee_server_unlock_threads (srv); if (ret != ret_ok) exit (EXIT_ERROR); do { ret = cherokee_server_step (srv); } while (ret == ret_eagain); cherokee_server_stop (srv); cherokee_server_free (srv); cherokee_mrproper(); return EXIT_OK; }