int CommandListener::WifiRemoveNetworkCmd::runCommand(SocketClient *cli, int argc, char **argv) { NetworkManager *nm = NetworkManager::Instance(); WifiController *wc = (WifiController *) nm->findController("WIFI"); if (wc->removeNetwork(atoi(argv[1]))) cli->sendMsg(ResponseCode::OperationFailed, "Failed to remove network", true); else { cli->sendMsg(ResponseCode::CommandOkay, "Network removed.", false); } return 0; }
int CommandListener::WifiCreateNetworkCmd::runCommand(SocketClient *cli, int argc, char **argv) { NetworkManager *nm = NetworkManager::Instance(); WifiController *wc = (WifiController *) nm->findController("WIFI"); WifiNetwork *wn; if (!(wn = wc->createNetwork())) cli->sendMsg(ResponseCode::OperationFailed, "Failed to create network", true); else { char tmp[128]; sprintf(tmp, "Created network id %d.", wn->getNetworkId()); cli->sendMsg(ResponseCode::CommandOkay, tmp, false); } return 0; }
int CommandListener::WifiListNetworksCmd::runCommand(SocketClient *cli, int argc, char **argv) { NetworkManager *nm = NetworkManager::Instance(); WifiController *wc = (WifiController *) nm->findController("WIFI"); WifiNetworkCollection *src = wc->createNetworkList(); WifiNetworkCollection::iterator it; char buffer[256]; for(it = src->begin(); it != src->end(); ++it) { sprintf(buffer, "%d:%s", (*it)->getNetworkId(), (*it)->getSsid()); cli->sendMsg(ResponseCode::WifiNetworkList, buffer, false); delete (*it); } delete src; cli->sendMsg(ResponseCode::CommandOkay, "Network listing complete.", false); return 0; }
int CommandListener::WifiScanResultsCmd::runCommand(SocketClient *cli, int argc, char **argv) { NetworkManager *nm = NetworkManager::Instance(); WifiController *wc = (WifiController *) nm->findController("WIFI"); ScanResultCollection *src = wc->createScanResults(); ScanResultCollection::iterator it; char buffer[256]; for(it = src->begin(); it != src->end(); ++it) { sprintf(buffer, "%s %u %d %s %s", (*it)->getBssid(), (*it)->getFreq(), (*it)->getLevel(), (*it)->getFlags(), (*it)->getSsid()); cli->sendMsg(ResponseCode::WifiScanResult, buffer, false); delete (*it); it = src->erase(it); } delete src; cli->sendMsg(ResponseCode::CommandOkay, "Scan results complete.", false); return 0; }