/* * Function: Constructor */ Server::Server(int port) { cout << "Running program as server" << endl; this->m_nListenPort = port; this->m_nLatestIndex = 0; this->m_nQueIx = 0; // initalize nodeList and its tracker for(int i=0; i<10; i++) { m_nodeList[i].id = i+1; m_nodeList[i].state=INACTIVE; m_nodeList[i].isServer=false; } updateIpAddress(); printf("server IP: %s \n", m_ipAddress); // initalize server specific parameters FD_ZERO(&m_masterSet); FD_ZERO(&m_readSet); memset(&m_srvAddr, 0, sizeof(m_srvAddr)); // starting event handler eventHandler(); }
int networkConnect() { switch(CurNetwork.mode) { case NMODE_MANAGED: sprintf(cmdSetMode, "iwconfig %s mode managed", CurNetwork.interface); break; case NMODE_ADHOC: sprintf(cmdSetMode, "iwconfig %s mode ad-hoc", CurNetwork.interface); break; case NMODE_MASTER: sprintf(cmdSetMode, "iwconfig %s mode master", CurNetwork.interface); break; default: break; } sprintf(cmdSetIfaceUp, "ifconfig %s up", CurNetwork.interface); sprintf(cmdSetIfaceDown, "ifconfig %s down", CurNetwork.interface); sprintf(cmdSetEssid, "iwconfig %s essid \"%s\"", CurNetwork.interface, CurNetwork.essid); sprintf(cmdSetDhcp, "udhcpc -i %s -n", CurNetwork.interface); switch(CurNetwork.encryption) { case ENC_WEP: sprintf(cmdSetWepKey, "iwconfig %s key s:%s", CurNetwork.interface, CurNetwork.key); break; case ENC_WEP_NUM: sprintf(cmdSetWepKey, "iwconfig %s key %s", CurNetwork.interface, CurNetwork.key); break; case ENC_WPA: sprintf(cmdSetWpaPassphrase, "wpa_passphrase \"%s\" \"%s\" > /tmp/wpa.conf", CurNetwork.essid, CurNetwork.key); sprintf(cmdSetWpaSup, "wpa_supplicant -B -Dwext -i%s -c/tmp/wpa.conf", CurNetwork.interface); break; default: break; } systemf("ifconfig %s down", CurNetwork.interface); #if defined(DRIVER_WEXT) if(systemf("ifconfig %s up", CurNetwork.interface)) { return 1; } if(system(cmdSetMode)) { return 1; } if(system(cmdSetEssid)) { return 1; } switch(CurNetwork.encryption) { case ENC_NONE: sleep(1); break; case ENC_WEP: case ENC_WEP_NUM: if(system(cmdSetWepKey)) { return 1; } sleep(1); break; case ENC_WPA: sleep(1); if(system(cmdSetWpaPassphrase)) { return 1; } if(system(cmdSetWpaSup)) { return 1; } sleep(1); break; default: break; } #elif defined(DRIVER_NL80211) systemf("killall -9 wpa_supplicant"); if(systemf("ifconfig %s up", CurNetwork.interface)) { return 1; } sleep(1); switch(CurNetwork.encryption) { case ENC_NONE: break; case ENC_WEP: case ENC_WEP_NUM: systemf("echo -e \"network={\\nssid=\\\"%s\\\"\\nscan_ssid=1\\npriority=5\\nkey_mgmt=NONE\\nwep_key0=\\\"%s\\\"\\nwep_tx_keyidx=0\\n}\" > /tmp/wpa.conf", CurNetwork.essid, CurNetwork.key); systemf("wpa_supplicant -B -Dnl80211 -i%s -c/tmp/wpa.conf", CurNetwork.interface); sleep(1); break; case ENC_WPA: systemf("wpa_passphrase \"%s\" \"%s\" > /tmp/wpa.conf", CurNetwork.essid, CurNetwork.key); systemf("wpa_supplicant -B -Dnl80211 -i%s -c/tmp/wpa.conf", CurNetwork.interface); sleep(1); break; default: break; } #endif if(systemf("udhcpc -i %s -n", CurNetwork.interface)) { return 1; } updateIpAddress(); return 0; }