void getouraddr() { char* hostname = host_name(); SockAddress hostaddr; our_addr_ip = loopback_addr_ip; if (sock_address_init_resolve( &hostaddr, hostname, 0, 0 ) < 0) return; our_addr_ip = sock_address_get_ip(&hostaddr); if (our_addr_ip == (uint32_t)-1) our_addr_ip = loopback_addr_ip; }
/* List emulator core processes running on the given machine. * This routine is called from main() if -list-cores parameter is set in the * command line. * Param: * host Value passed with -list-core parameter. Must be either "localhost", or * an IP address of a machine where core processes must be enumerated. */ static void list_running_cores(const char* host) { Looper* looper; CoreConsole cores[MAX_CORE_PROCS]; SockAddress address; int nn, found; if (sock_address_init_resolve(&address, host, CORE_BASE_PORT, 0) < 0) { derror("Unable to resolve hostname %s: %s", host, errno_str); return; } looper = looper_newGeneric(); for (nn = 0; nn < MAX_CORE_PROCS; nn++) { int port = CORE_BASE_PORT + nn*2; sock_address_set_port(&address, port); coreconsole_init(&cores[nn], &address, looper); } looper_runWithTimeout(looper, CORE_PORT_TIMEOUT_MS*2); found = 0; for (nn = 0; nn < MAX_CORE_PROCS; nn++) { int port = CORE_BASE_PORT + nn*2; if (cores[nn].ok) { if (found == 0) { fprintf(stdout, "Running emulator core processes:\n"); } fprintf(stdout, "Emulator console port %d\n", port); found++; } coreconsole_done(&cores[nn]); } looper_free(looper); if (found == 0) { fprintf(stdout, "There were no running emulator core processes found on %s.\n", host); } }