int __cdecl main(int argc, char** argv, char** envp) { PUSER_DIR_INFO info = NULL; HANDLE hThread = NULL; uint32_t status = 0; uint32_t depth = 0; if(argc < 2 || (0 == (depth = strtoul(argv[1], NULL, 0)))) { depth = 10; } if(DIRLIST_SUCCESS != (status = dirlist_init(&info, OUTPATH, depth))) { return status; } if(NULL == (hThread = CreateThread(NULL, 0, do_work, info, 0, NULL))) { printf("[x] Failed to start running our worker! :(\n"); return GetLastError(); } WaitForSingleObject(hThread, INFINITE); dirlist_free(info); CloseHandle(hThread); return 0; }
int root_init(void) { if (dirlist_init( 1 )) { debugf("[root] failed to initialise dirlist\n"); return -1; } return 0; }
int main(int argc, char **argv) { void *listen = NULL; signal(SIGINT, exit_interrupt); #ifndef WIN32 signal(SIGHUP, exit_interrupt); #endif printf("Initialising Network...\n"); lion_init(); lion_compress_level( 0 ); printf("Network Initialised.\n"); // Create an initial game printf("Initialising Socket...\n"); listen = lion_listen(&server_port, 0, 0, NULL); if (!listen) { printf("Socket Failed...\n"); master_switch = 1; } printf("Listening on port %d...\n", server_port); printf("Initialising libdirlist...\n"); if (dirlist_init(1)) { printf("libdirlist failed...\n"); master_switch = 1; } while( !master_switch ) { // If you are using rate calls, you should sleep for 1s or less. lion_poll(0, 1); // This blocks. (by choice, FYI). //printf("main\n"); } printf("\n"); printf("Releasing libdirlist...\n"); dirlist_free(); printf("Releasing Socket...\n"); if (listen) { lion_disconnect(listen); listen = NULL; } printf("Socket Released.\n"); lion_free(); printf("Network Released.\n"); printf("Done\n"); return 0; // Avoid warning }