int main(int argc, char *argv[]) { int s = tcp_listen("0.0.0.0", 445); select_group_t *sg = select_group_create(); if(s < 0) return 0; select_group_add_socket(sg, s, SOCKET_TYPE_LISTEN, NULL); select_set_listen(sg, s, listener); /* We start by receiving a header. */ state = RECV_STATE_HEADER; while(1) { select_group_do_select(sg, 3, 0); } #if 0 /* Do 'session setup' */ length = smb_get_length(smb); data = safe_malloc(length); smb_get(smb, data, length); tcp_send(s, data, length); while(1) { select_group_do_select(sg, -1, -1); } select_group_destroy(sg); #endif return 0; }
static void cleanup(void) { LOG_WARNING("Terminating"); message_post_shutdown(); message_cleanup(); if(group) select_group_destroy(group); if(driver_console) driver_console_destroy(driver_console); if(driver_command) driver_command_destroy(driver_command); if(driver_dns) driver_dns_destroy(driver_dns); if(driver_exec) driver_exec_destroy(driver_exec); if(driver_listener) driver_listener_destroy(driver_listener); if(driver_ping) driver_ping_destroy(driver_ping); print_memory(); }
static void nb_poll(settings_t *settings) { settings->group = select_group_create(); select_group_add_socket(settings->group, settings->socket, SOCKET_TYPE_DATAGRAM, settings); select_set_recv(settings->group, settings->socket, nb_recv_callback); select_set_timeout(settings->group, settings->socket, nb_timeout); while(1) select_group_do_select(settings->group, settings->wait); select_group_destroy(settings->group); }
static void cleanup(void) { printf("Cleaning up...\n"); if(global_settings) { if(global_settings->group) select_group_destroy(global_settings->group); safe_free(global_settings); } /* Print allocated memory. This will only run if -DTESTMEMORY is given. */ print_memory(); }
static void cleanup(void) { LOG_WARNING("Terminating"); controller_destroy(); if(tunnel_driver) driver_dns_destroy(tunnel_driver); if(group) select_group_destroy(group); if(system_dns) safe_free(system_dns); print_memory(); }