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; }
const char * iwinfo_type(const char *ifname) { const struct iwinfo_ops *ops = iwinfo_backend(ifname); if (!ops) return NULL; return ops->name; }
/* * 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; }
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; }
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; }