Beispiel #1
0
int main(void) {
  char *ifname = getenv("QUERY_STRING");

  if (ifname == NULL)
    badrequest();

  if (!interface_is_valid(ifname))
    badrequest();

  const struct iwinfo_ops *iw = iwinfo_backend(ifname);

  if (iw == NULL)
    badrequest();

  printf("Access-Control-Allow-Origin: *\n");
  printf("Content-type: text/event-stream\n\n");

  while (true) {
    struct json_object *obj;
    obj = get_stations(iw, ifname);
    printf("data: %s\n\n", json_object_to_json_string_ext(obj, JSON_C_TO_STRING_PLAIN));
    fflush(stdout);
    json_object_put(obj);
    usleep(150000);
  }

  return 0;
}
Beispiel #2
0
const char * iwinfo_type(const char *ifname)
{
	const struct iwinfo_ops *ops = iwinfo_backend(ifname);
	if (!ops)
		return NULL;

	return ops->name;
}
Beispiel #3
0
/*
 * Get the wifi SSID.
 */
char* system_get_wifi_ssid()
{
	char *ssid = (char*) calloc(IWINFO_ESSID_MAX_SIZE+1, sizeof(char)); /* The SSID */
	const struct iwinfo_ops *iw = iwinfo_backend("wlan0");

	/* Try to find ssid and reset to 0 when not found */
	if(iw->ssid("wlan0", ssid))
		ssid[0] = 0;

	/* Free resources */
	iwinfo_finish();

	return ssid;
}
Beispiel #4
0
int main(int argc, char **argv)
{
	int i;
	const struct iwinfo_ops *iw;

	if (argc < 3)
	{
		fprintf(stderr,
			"Usage:\n"
			"	iwinfo <device> info\n"
			"	iwinfo <device> scan\n"
			"	iwinfo <device> txpowerlist\n"
			"	iwinfo <device> freqlist\n"
			"	iwinfo <device> assoclist\n"
			"	iwinfo <device> countrylist\n"
		);

		return 1;
	}

	iw = iwinfo_backend(argv[1]);

	if (!iw)
	{
		fprintf(stderr, "No such wireless device: %s\n", argv[1]);
		return 1;
	}

	for (i = 2; i < argc; i++)
	{
		switch(argv[i][0])
		{
		case 'i':
			print_info(iw, argv[1]);
			break;

		case 's':
			print_scanlist(iw, argv[1]);
			break;

		case 't':
			print_txpwrlist(iw, argv[1]);
			break;

		case 'f':
			print_freqlist(iw, argv[1]);
			break;

		case 'a':
			print_assoclist(iw, argv[1]);
			break;

		case 'c':
			print_countrylist(iw, argv[1]);
			break;

		default:
			fprintf(stderr, "Unknown command: %s\n", argv[i]);
			return 1;
		}
	}

	iwinfo_finish();

	return 0;
}
Beispiel #5
0
int main(int argc, char **argv)
{
	int i;
	char *p;
	const struct iwinfo_ops *iw;
	glob_t globbuf;

	if (argc > 1 && argc < 3)
	{
		fprintf(stderr,
			"Usage:\n"
			"	iwinfo <device> info\n"
			"	iwinfo <device> scan\n"
			"	iwinfo <device> txpowerlist\n"
			"	iwinfo <device> freqlist\n"
			"	iwinfo <device> assoclist\n"
			"	iwinfo <device> countrylist\n"
		);

		return 1;
	}

	if (argc == 1)
	{
		glob("/sys/class/net/*", 0, NULL, &globbuf);

		for (i = 0; i < globbuf.gl_pathc; i++)
		{
			p = strrchr(globbuf.gl_pathv[i], '/');

			if (!p)
				continue;

			iw = iwinfo_backend(++p);

			if (!iw)
				continue;

			print_info(iw, p);
			printf("\n");
		}

		globfree(&globbuf);
		return 0;
	}

	iw = iwinfo_backend(argv[1]);

	if (!iw)
	{
		fprintf(stderr, "No such wireless device: %s\n", argv[1]);
		return 1;
	}

	for (i = 2; i < argc; i++)
	{
		switch(argv[i][0])
		{
		case 'i':
			print_info(iw, argv[1]);
			break;

		case 's':
			print_scanlist(iw, argv[1]);
			break;

		case 't':
			print_txpwrlist(iw, argv[1]);
			break;

		case 'f':
			print_freqlist(iw, argv[1]);
			break;

		case 'a':
			print_assoclist(iw, argv[1]);
			break;

		case 'c':
			print_countrylist(iw, argv[1]);
			break;

		default:
			fprintf(stderr, "Unknown command: %s\n", argv[i]);
			return 1;
		}
	}

	iwinfo_finish();

	return 0;
}