void *listen_run(void *p) { CTEST_DATA(tube) *data = p; data->listen_return = tube_manager_loop(data->mgr,& data->err); if (!data->listen_return) { LS_LOG_ERR(data->err, "tube_manager_loop"); } return data; }
static void* socketListen(void* ptr) { ls_err err; UNUSED_PARAM(ptr); if ( !tube_manager_loop(mgr, &err) ) { LS_LOG_ERR(err, "tube_manager_loop"); } return NULL; }
int spudtest(int argc, char** argv) { ls_err err; int ch; struct sockaddr_storage addr; /* bool has_addr = false;; */ while ( ( ch = getopt(argc, argv, "?hvs:") ) != -1 ) { switch (ch) { case 'v': ls_log_set_level(LS_LOG_VERBOSE); break; case 's': if ( !ls_sockaddr_parse(optarg, (struct sockaddr*)&addr, sizeof(addr), &err) ) { LS_LOG_ERR(err, "Invalid address"); return 1; } /* has_addr = true; */ break; case 'h': case '?': default: usage(); break; } } argc -= optind; argv += optind; if (argc < 1) { usage(); } ls_log(LS_LOG_INFO, "entering spudtest"); memset( &config, 0, sizeof(config) ); if ( !ls_sockaddr_get_remote_ip_addr(argv[0], "1402", (struct sockaddr*)&config.remoteAddr, sizeof(config.remoteAddr), &err) ) { LS_LOG_ERR(err, "ls_sockaddr_get_remote_ip_addr"); return 1; } if ( !tube_manager_create(0, &mgr, &err) ) { LS_LOG_ERR(err, "tube_manager_create"); return 1; } if ( !tube_manager_socket(mgr, 0, &err) ) { LS_LOG_ERR(err, "tube_manager_socket"); return 1; } /* TODO: make source addresses work (again?). */ /* if (has_addr) { */ /* LOGI("source address: %s\n", inet_ntop(AF_INET6, &addr, buf, * sizeof(buf))); */ /* } */ if ( !tube_manager_bind_event(mgr, EV_LOOPSTART_NAME, loopstart_cb, &err) || !tube_manager_bind_event(mgr, EV_RUNNING_NAME, running_cb, &err) || !tube_manager_bind_event(mgr, EV_DATA_NAME, data_cb, &err) ) { LS_LOG_ERR(err, "tube_manager_bind_event"); return 1; } if ( !tube_manager_signal(mgr, SIGINT, done_sig, &err) ) { LS_LOG_ERR(err, "tube_manager_signal"); return 1; } if ( !tube_manager_schedule_ms(mgr, 5000, done, NULL, NULL, &err) ) { LS_LOG_ERR(err, "tube_manager_schedule_ms"); return 1; } if ( !tube_manager_loop(mgr, &err) ) { LS_LOG_ERR(err, "tube_manager_loop"); } return 0; }