예제 #1
0
static void cmd_wlan_ap_print_sta_info(wlan_ap_stas_t *stas)
{
	int i;

	CMD_LOG(1, "sta_num: %d\n", stas->num);

	for (i = 0; i < stas->num; i++) {
		CMD_LOG(1, "[%02d]Mac addr: %02x:%02x:%02x:%02x:%02x:%02x\n",
			i + 1, stas->sta[i].addr[0], stas->sta[i].addr[1],
			stas->sta[i].addr[2], stas->sta[i].addr[3],
			stas->sta[i].addr[4], stas->sta[i].addr[5]);
	}
}
예제 #2
0
void sntp_run(void *arg)
{
	CMD_LOG(1, "<net> <sntp> <request>\n");
        if (sntp_request(NULL) != 0) {
		CMD_LOG(1, "<net> <sntp> <response : fail>\n");
		goto exit;
	}

	sntp_time *time = (sntp_time *)sntp_obtain_time();
	CMD_LOG(1, "<net> <sntp> <response : success>\n");
	CMD_LOG(1,"sntp(%u  %u  %u ",time->week, time->mon, time->day);
        CMD_LOG(1,"%u:%u:%u %u)\n", time->hour, time->min, time->sec, time->year);
exit:
        SNTP_THREAD_EXIT(&g_sntp_thread);

}
예제 #3
0
static void cmd_wlan_sta_print_scan_results(wlan_sta_scan_results_t *results)
{
	int i;

	for (i = 0; i < results->num; ++i) {
		CMD_LOG(1, "\n%02d:  ", i + 1);
		cmd_wlan_sta_print_ap(&results->ap[i]);
	}
}
예제 #4
0
static __inline void cmd_wlan_sta_print_ap(wlan_sta_ap_t *ap)
{
	CMD_LOG(1, "%02x:%02x:%02x:%02x:%02x:%02x  ssid=%-32.32s  "
		"beacon_int=%d  freq=%d  channel=%u  rssi=%d  level=%d  "
		"flags=%#010x  wpa_key_mgmt=%#010x  wpa_cipher=%#010x  "
		"wpa2_key_mgmt=%#010x  wpa2_cipher=%#010x\n",
		ap->bssid[0], ap->bssid[1],
		ap->bssid[2], ap->bssid[3],
		ap->bssid[4], ap->bssid[5],
		ap->ssid.ssid,
		ap->beacon_int,
		ap->freq,
		ap->channel,
		ap->rssi,
		ap->level,
		ap->wpa_flags,
		ap->wpa_key_mgmt,
		ap->wpa_cipher,
		ap->wpa2_key_mgmt,
		ap->wpa2_cipher);
}
예제 #5
0
파일: main.c 프로젝트: JesseEisen/tview
/**
 *This function is involed when the argc == 2,
 *We just action the basement of the command
 *may some commands need argument,so here will
 *make a dicision
 */
static int
default_action(char *cmd)
{
	int ret;

	ret = convert_command_tbl(cmd);	
	switch(ret)
	{
			case CMD_LS:
				ls_type = 0;
				return IS_LS;
				break;
			case CMD_FIND:
				show_find_usage();
				break;
			case CMD_GREP:
				CMD_LOG("grep","%s\n","argument is needed");
				break;
			default:
				CMD_ERR(cmd,"%s","This command may not show output by ncurses");
	}
	
	return -1;
}
예제 #6
0
enum cmd_status cmd_wlan_ap_exec(char *cmd)
{
	int ret;

	cmd_write_respond(CMD_STATUS_OK, "OK");

	if (cmd_strncmp(cmd, "config ", 7) == 0) {
		char *argv[2];
		if (cmd_parse_argv(cmd + 7, argv, cmd_nitems(argv)) == 0) {
			ret = -2;
			goto out;
		}
		ret = wlan_ap_set((uint8_t *)argv[0], cmd_strlen(argv[0]), (uint8_t *)argv[1]);
	} else if (cmd_strncmp(cmd, "set ", 4) == 0) {
		ret = cmd_wlan_ap_set(cmd + 4);
	} else if (cmd_strncmp(cmd, "get ", 4) == 0) {
		ret = cmd_wlan_ap_get(cmd + 4);
	} else if (cmd_strcmp(cmd, "enable") == 0) {
		ret = wlan_ap_enable();
	} else if (cmd_strcmp(cmd, "reload") == 0) {
		ret = wlan_ap_reload();
	} else if (cmd_strcmp(cmd, "disable") == 0) {
		ret = wlan_ap_disable();
	} else if (cmd_strcmp(cmd, "sta num") == 0) {
		int num;
		ret = wlan_ap_sta_num(&num);
		if (ret == 0)
			CMD_LOG(1, "sta num: %d\n", num);
	} else if (cmd_strncmp(cmd, "sta info ", 9) == 0) {
		int size;
		if (cmd_wpas_parse_int(cmd + 9, 1, 30, &size) != 0) {
			ret = -2;
			goto out;
		}
		wlan_ap_stas_t stas;
		stas.sta = (wlan_ap_sta_t *)cmd_malloc(size * sizeof(wlan_ap_sta_t));
		if (stas.sta == NULL) {
			CMD_ERR("%s: malloc failed\n", __func__);
			ret = -1;
			goto out;
		}
		stas.size = size;
		ret = wlan_ap_sta_info(&stas);
		if (ret == 0)
			cmd_wlan_ap_print_sta_info(&stas);
		cmd_free(stas.sta);
	} else {
		CMD_ERR("%s: unknown command '%s'\n", __func__, cmd);
		return CMD_STATUS_ACKED;
	}

out:
	if (ret == -2) {
		CMD_ERR("%s: command '%s' invalid arg\n", __func__, cmd);
		return CMD_STATUS_ACKED;
	} else if (ret == -1) {
		CMD_ERR("%s: command '%s' exec failed\n", __func__, cmd);
		return CMD_STATUS_ACKED;
	}

	return CMD_STATUS_ACKED;
}
예제 #7
0
/* @return
 *   -2: CMD_STATUS_INVALID_ARG
 *   -1: CMD_STATUS_FAIL
 *    0: CMD_STATUS_OK
 */
static int cmd_wlan_ap_get(char *cmd)
{
	wlan_ap_config_t config;
	cmd_memset(&config, 0, sizeof(config));

	if (cmd_strcmp(cmd, "ssid") == 0) {
		config.field = WLAN_AP_FIELD_SSID;
	} else if (cmd_strcmp(cmd, "psk") == 0) {
		config.field = WLAN_AP_FIELD_PSK;
	} else if (cmd_strcmp(cmd, "key_mgmt") == 0) {
		config.field = WLAN_AP_FIELD_KEY_MGMT;
	} else if (cmd_strcmp(cmd, "wpa") == 0) {
		config.field = WLAN_AP_FIELD_WPA_CIPHER;
	} else if (cmd_strcmp(cmd, "rsn") == 0) {
		config.field = WLAN_AP_FIELD_RSN_CIPHER;
	} else if (cmd_strcmp(cmd, "proto") == 0) {
		config.field = WLAN_AP_FIELD_PROTO;
	} else if (cmd_strcmp(cmd, "auth_alg") == 0) {
		config.field = WLAN_AP_FIELD_AUTH_ALG;
	} else if (cmd_strcmp(cmd, "group_rekey") == 0) {
		config.field = WLAN_AP_FIELD_GROUP_REKEY;
	} else if (cmd_strcmp(cmd, "strict_rekey") == 0) {
		config.field = WLAN_AP_FIELD_STRICT_REKEY;
	} else if (cmd_strcmp(cmd, "gmk_rekey") == 0) {
		config.field = WLAN_AP_FIELD_GMK_REKEY;
	} else if (cmd_strcmp(cmd, "ptk_rekey") == 0) {
		config.field = WLAN_AP_FIELD_PTK_REKEY;
	} else if (cmd_strcmp(cmd, "hw_mode") == 0) {
		config.field = WLAN_AP_FIELD_HW_MODE;
	} else if (cmd_strcmp(cmd, "80211n") == 0) {
		config.field = WLAN_AP_FIELD_IEEE80211N;
	} else if (cmd_strcmp(cmd, "channel") == 0) {
		config.field = WLAN_AP_FIELD_CHANNEL;
	} else if (cmd_strcmp(cmd, "beacon_int") == 0) {
		config.field = WLAN_AP_FIELD_BEACON_INT;
	} else if (cmd_strcmp(cmd, "dtim") == 0) {
		config.field = WLAN_AP_FIELD_DTIM;
	} else if (cmd_strcmp(cmd, "max_num_sta") == 0) {
		config.field = WLAN_AP_FIELD_MAX_NUM_STA;
	} else {
		CMD_ERR("%s: invalid arg '%s'\n", __func__, cmd);
		return -2;
	}

	if (wlan_ap_get_config(&config) != 0) {
		CMD_ERR("%s: get config failed\n", __func__);
		return -1;
	}

	if (config.field == WLAN_AP_FIELD_SSID) {
		CMD_LOG(1, "ssid: %.32s\n", config.u.ssid.ssid);
	} else if (config.field == WLAN_AP_FIELD_PSK) {
		CMD_LOG(1, "psk: %s\n", config.u.psk);
	} else if (config.field == WLAN_AP_FIELD_KEY_MGMT) {
		CMD_LOG(1, "key_mgmt: %#06x\n", config.u.key_mgmt);
	} else if (config.field == WLAN_AP_FIELD_WPA_CIPHER) {
		CMD_LOG(1, "wpa_cipher: %#06x\n", config.u.wpa_cipher);
	} else if (config.field == WLAN_AP_FIELD_RSN_CIPHER) {
		CMD_LOG(1, "rsn_cipher: %#06x\n", config.u.rsn_cipher);
	} else if (config.field == WLAN_AP_FIELD_PROTO) {
		CMD_LOG(1, "proto: %#06x\n", config.u.proto);
	} else if (config.field == WLAN_AP_FIELD_AUTH_ALG) {
		CMD_LOG(1, "auth_alg: %#06x\n", config.u.auth_alg);
	} else if (config.field == WLAN_AP_FIELD_GROUP_REKEY) {
		CMD_LOG(1, "group_rekey: %d\n", config.u.group_rekey);
	} else if (config.field == WLAN_AP_FIELD_STRICT_REKEY) {
		CMD_LOG(1, "strict_rekey: %d\n", config.u.strict_rekey);
	} else if (config.field == WLAN_AP_FIELD_GMK_REKEY) {
		CMD_LOG(1, "gmk_rekey: %d\n", config.u.gmk_rekey);
	} else if (config.field == WLAN_AP_FIELD_PTK_REKEY) {
		CMD_LOG(1, "ptk_rekey: %d\n", config.u.ptk_rekey);
	} else if (config.field == WLAN_AP_FIELD_HW_MODE) {
		if (config.u.hw_mode == WLAN_AP_HW_MODE_IEEE80211B) {
			CMD_LOG(1, "hw_mode: b\n");
		} else if (config.u.hw_mode == WLAN_AP_HW_MODE_IEEE80211G) {
			CMD_LOG(1, "hw_mode: g\n");
		} else if (config.u.hw_mode == WLAN_AP_HW_MODE_IEEE80211A) {
			CMD_LOG(1, "hw_mode: a\n");
		} else if (config.u.hw_mode == WLAN_AP_HW_MODE_IEEE80211AD) {
			CMD_LOG(1, "hw_mode: ad\n");
		} else {
			CMD_ERR("%s: invalid hw_mode\n", __func__);
		}
	} else if (config.field == WLAN_AP_FIELD_IEEE80211N) {
		CMD_LOG(1, "ieee80211n: %d\n", config.u.ieee80211n);
	} else if (config.field == WLAN_AP_FIELD_CHANNEL) {
		CMD_LOG(1, "channel: %d\n", config.u.channel);
	} else if (config.field == WLAN_AP_FIELD_BEACON_INT) {
		CMD_LOG(1, "beacon_int: %d\n", config.u.beacon_int);
	} else if (config.field == WLAN_AP_FIELD_DTIM) {
		CMD_LOG(1, "dtim: %d\n", config.u.dtim);
	} else if (config.field == WLAN_AP_FIELD_MAX_NUM_STA) {
		CMD_LOG(1, "max_num_sta: %d\n", config.u.max_num_sta);
	}

	return 0;
}
예제 #8
0
enum cmd_status cmd_wlan_sta_exec(char *cmd)
{
	int ret;

	cmd_write_respond(CMD_STATUS_OK, "OK");

	if (cmd_strncmp(cmd, "config ", 7) == 0) {
		char *argv[2];
		if (cmd_parse_argv(cmd + 7, argv, cmd_nitems(argv)) == 0) {
			ret = -2;
			goto out;
		}
		ret = wlan_sta_set((uint8_t *)argv[0], cmd_strlen(argv[0]), (uint8_t *)argv[1]);
	} else if (cmd_strncmp(cmd, "set ", 4) == 0) {
		ret = cmd_wlan_sta_set(cmd + 4);
	} else if (cmd_strncmp(cmd, "get ", 4) == 0) {
		ret = cmd_wlan_sta_get(cmd + 4);
	} else if (cmd_strcmp(cmd, "enable") == 0) {
		ret = wlan_sta_enable();
	} else if (cmd_strcmp(cmd, "disable") == 0) {
		ret = wlan_sta_disable();
	} else if (cmd_strcmp(cmd, "scan once") == 0) {
		ret = wlan_sta_scan_once();
	} else if (cmd_strncmp(cmd, "scan result ", 12) == 0) {
		int size;
		if (cmd_wpas_parse_int(cmd + 12, 1, 30, &size) != 0) {
			ret = -2;
			goto out;
		}
		wlan_sta_scan_results_t results;
		results.ap = cmd_malloc(size * sizeof(wlan_sta_ap_t));
		if (results.ap == NULL) {
			CMD_ERR("%s: malloc failed\n", __func__);
			ret = -1;
			goto out;
		}
		results.size = size;
		ret = wlan_sta_scan_result(&results);
		if (ret == 0)
			cmd_wlan_sta_print_scan_results(&results);
		cmd_free(results.ap);
	} else if (cmd_strncmp(cmd, "scan interval ", 14) == 0) {
		int sec;
		if (cmd_wpas_parse_int(cmd + 14, 0, INT32_MAX, &sec) != 0) {
			ret = -2;
			goto out;
		}
		ret = wlan_sta_scan_interval(sec);
	} else if (cmd_strncmp(cmd, "bss max count ", 14) == 0) {
		int count;
		if (cmd_wpas_parse_int(cmd + 14, 0, UINT8_MAX, &count) != 0) {
			ret = -2;
			goto out;
		}
		ret = wlan_sta_bss_max_count((uint8_t)count);
	} else if (cmd_strncmp(cmd, "bss flush ", 10) == 0) {
		int age;
		if (cmd_wpas_parse_int(cmd + 10, 0, INT32_MAX, &age) != 0) {
			ret = -2;
			goto out;
		}
		ret = wlan_sta_bss_flush(age);
	} else if (cmd_strcmp(cmd, "connect") == 0) {
		ret = wlan_sta_connect();
	} else if (cmd_strcmp(cmd, "disconnect") == 0) {
		ret = wlan_sta_disconnect();
	} else if (cmd_strcmp(cmd, "state") == 0) {
		wlan_sta_states_t state;
		ret = wlan_sta_state(&state);
		if (ret == 0)
			CMD_LOG(1, "sta state: %d\n", state);
	} else if (cmd_strcmp(cmd, "ap") == 0) {
		wlan_sta_ap_t *ap = cmd_malloc(sizeof(wlan_sta_ap_t));
		if (ap == NULL) {
			CMD_ERR("%s: malloc failed\n", __func__);
			ret = -1;
			goto out;
		}
		ret = wlan_sta_ap_info(ap);
		if (ret == 0)
			cmd_wlan_sta_print_ap(ap);
		cmd_free(ap);
	} else if (cmd_strcmp(cmd, "wps pbc") == 0) {
		ret = wlan_sta_wps_pbc();
	} else if ((cmd_strlen(cmd) == 7) || (cmd_strcmp(cmd, "wps pin") == 0)) {
		wlan_sta_wps_pin_t wps;
		ret = wlan_sta_wps_pin_get(&wps);
		if (ret == 0)
			CMD_LOG(1, "WPS pin: %s\n", wps.pin);
	} else if (cmd_strncmp(cmd, "wps pin ", 8) == 0) {
		if (cmd_strlen(cmd + 8) != 8) {
			ret = -2;
			goto out;
		}
		wlan_sta_wps_pin_t wps;
		cmd_memcpy(wps.pin, cmd + 8, 8);
		wps.pin[8] = '\0';
		ret = wlan_sta_wps_pin_set(&wps);
	} else {
		CMD_ERR("%s: unknown command '%s'\n", __func__, cmd);
		return CMD_STATUS_ACKED;
	}

out:
	if (ret == -2) {
		CMD_ERR("%s: command '%s' invalid arg\n", __func__, cmd);
		return CMD_STATUS_ACKED;
	} else if (ret == -1) {
		CMD_ERR("%s: command '%s' exec failed\n", __func__, cmd);
		return CMD_STATUS_ACKED;
	}

	return CMD_STATUS_ACKED;
}
예제 #9
0
/* @return
 *   -2: CMD_STATUS_INVALID_ARG
 *   -1: CMD_STATUS_FAIL
 *    0: CMD_STATUS_OK
 */
static int cmd_wlan_sta_get(char *cmd)
{
	wlan_sta_config_t config;
	cmd_memset(&config, 0, sizeof(config));

	if (cmd_strcmp(cmd, "ssid") == 0) {
		config.field = WLAN_STA_FIELD_SSID;
	} else if (cmd_strcmp(cmd, "psk") == 0) {
		config.field = WLAN_STA_FIELD_PSK;
	} else if (cmd_strcmp(cmd, "wep_key0") == 0) {
		config.field = WLAN_STA_FIELD_WEP_KEY0;
	} else if (cmd_strcmp(cmd, "wep_key1") == 0) {
		config.field = WLAN_STA_FIELD_WEP_KEY1;
	} else if (cmd_strcmp(cmd, "wep_key2") == 0) {
		config.field = WLAN_STA_FIELD_WEP_KEY2;
	} else if (cmd_strcmp(cmd, "wep_key3") == 0) {
		config.field = WLAN_STA_FIELD_WEP_KEY3;
	} else if (cmd_strcmp(cmd, "wep_key_index") == 0) {
		config.field = WLAN_STA_FIELD_WEP_KEY_INDEX;
	} else if (cmd_strcmp(cmd, "key_mgmt") == 0) {
		config.field = WLAN_STA_FIELD_KEY_MGMT;
	} else if (cmd_strcmp(cmd, "pairwise") == 0) {
		config.field = WLAN_STA_FIELD_PAIRWISE_CIPHER;
	} else if (cmd_strcmp(cmd, "group") == 0) {
		config.field = WLAN_STA_FIELD_GROUP_CIPHER;
	} else if (cmd_strcmp(cmd, "proto") == 0) {
		config.field = WLAN_STA_FIELD_PROTO;
	} else if (cmd_strcmp(cmd, "auth_alg") == 0) {
		config.field = WLAN_STA_FIELD_AUTH_ALG;
	} else if (cmd_strcmp(cmd, "ptk_rekey") == 0) {
		config.field = WLAN_STA_FIELD_WPA_PTK_REKEY;
	} else if (cmd_strcmp(cmd, "scan_ssid") == 0) {
		config.field = WLAN_STA_FIELD_SCAN_SSID;
	} else {
		CMD_ERR("%s: invalid arg '%s'\n", __func__, cmd);
		return -2;
	}

	if (wlan_sta_get_config(&config) != 0) {
		CMD_ERR("%s: get config failed\n", __func__);
		return -1;
	}

	if (config.field == WLAN_STA_FIELD_SSID) {
		CMD_LOG(1, "ssid: %.32s\n", config.u.ssid.ssid);
	} else if (config.field == WLAN_STA_FIELD_PSK) {
		CMD_LOG(1, "psk: %s\n", config.u.psk);
	} else if (config.field == WLAN_STA_FIELD_WEP_KEY0) {
		CMD_LOG(1, "wep_key0: %s\n", config.u.wep_key);
	} else if (config.field == WLAN_STA_FIELD_WEP_KEY1) {
		CMD_LOG(1, "wep_key1: %s\n", config.u.wep_key);
	} else if (config.field == WLAN_STA_FIELD_WEP_KEY2) {
		CMD_LOG(1, "wep_key2: %s\n", config.u.wep_key);
	} else if (config.field == WLAN_STA_FIELD_WEP_KEY3) {
		CMD_LOG(1, "wep_key3: %s\n", config.u.wep_key);
	} else if (config.field == WLAN_STA_FIELD_WEP_KEY_INDEX) {
		CMD_LOG(1, "wep_key_index: %d\n", config.u.wep_tx_keyidx);
	} else if (config.field == WLAN_STA_FIELD_KEY_MGMT) {
		CMD_LOG(1, "key_mgmt: %#06x\n", config.u.key_mgmt);
	} else if (config.field == WLAN_STA_FIELD_PAIRWISE_CIPHER) {
		CMD_LOG(1, "pairwise_cipher: %#06x\n", config.u.pairwise_cipher);
	} else if (config.field == WLAN_STA_FIELD_GROUP_CIPHER) {
		CMD_LOG(1, "group_cipher: %#06x\n", config.u.group_cipher);
	} else if (config.field == WLAN_STA_FIELD_PROTO) {
		CMD_LOG(1, "proto: %#06x\n", config.u.proto);
	} else if (config.field == WLAN_STA_FIELD_AUTH_ALG) {
		CMD_LOG(1, "auth_alg: %#06x\n", config.u.auth_alg);
	} else if (config.field == WLAN_STA_FIELD_WPA_PTK_REKEY) {
		CMD_LOG(1, "ptk_rekey: %d\n", config.u.wpa_ptk_rekey);
	} else if (config.field == WLAN_STA_FIELD_SCAN_SSID) {
		CMD_LOG(1, "scan_ssid: %d\n", config.u.scan_ssid);
	}

	return 0;
}