003 File Manager
Current Path:
/usr/src/contrib/wpa/src/utils
usr
/
src
/
contrib
/
wpa
/
src
/
utils
/
📁
..
📄
base64.c
(4.52 KB)
📄
base64.h
(653 B)
📄
bitfield.c
(1.37 KB)
📄
bitfield.h
(558 B)
📄
browser-android.c
(2.62 KB)
📄
browser-system.c
(2.39 KB)
📄
browser-wpadebug.c
(3.14 KB)
📄
browser.c
(5.93 KB)
📄
browser.h
(451 B)
📄
build_config.h
(1.38 KB)
📄
common.c
(24.26 KB)
📄
common.h
(14.84 KB)
📄
const_time.h
(5.45 KB)
📄
crc32.c
(3.7 KB)
📄
crc32.h
(297 B)
📄
edit.c
(20.21 KB)
📄
edit.h
(612 B)
📄
edit_readline.c
(3.78 KB)
📄
edit_simple.c
(1.77 KB)
📄
eloop.c
(32.23 KB)
📄
eloop.h
(13.77 KB)
📄
eloop_win.c
(15.17 KB)
📄
ext_password.c
(2.02 KB)
📄
ext_password.h
(855 B)
📄
ext_password_i.h
(713 B)
📄
ext_password_test.c
(1.72 KB)
📄
http-utils.h
(1.71 KB)
📄
http_curl.c
(44.53 KB)
📄
includes.h
(1.09 KB)
📄
ip_addr.c
(1.02 KB)
📄
ip_addr.h
(608 B)
📄
json.c
(12.54 KB)
📄
json.h
(1.02 KB)
📄
list.h
(2.4 KB)
📄
module_tests.h
(438 B)
📄
os.h
(19.54 KB)
📄
os_internal.c
(8.66 KB)
📄
os_none.c
(3.3 KB)
📄
os_unix.c
(15.06 KB)
📄
os_win32.c
(4.68 KB)
📄
pcsc_funcs.c
(37.61 KB)
📄
pcsc_funcs.h
(1.4 KB)
📄
platform.h
(508 B)
📄
radiotap.c
(12.25 KB)
📄
radiotap.h
(10.67 KB)
📄
radiotap_iter.h
(2.86 KB)
📄
state_machine.h
(5.25 KB)
📄
trace.c
(8.28 KB)
📄
trace.h
(1.88 KB)
📄
utils_module_tests.c
(28.14 KB)
📄
uuid.c
(1.8 KB)
📄
uuid.h
(439 B)
📄
wpa_debug.c
(18.68 KB)
📄
wpa_debug.h
(12.38 KB)
📄
wpabuf.c
(7.44 KB)
📄
wpabuf.h
(4.14 KB)
📄
xml-utils.c
(9.29 KB)
📄
xml-utils.h
(4.01 KB)
📄
xml_libxml2.c
(9.07 KB)
Editing: browser-android.c
/* * Hotspot 2.0 client - Web browser using Android browser * Copyright (c) 2013, Qualcomm Atheros, Inc. * * This software may be distributed under the terms of the BSD license. * See README for more details. */ #include "includes.h" #include "common.h" #include "utils/eloop.h" #include "wps/http_server.h" #include "browser.h" struct browser_data { int success; }; static void browser_timeout(void *eloop_data, void *user_ctx) { wpa_printf(MSG_INFO, "Timeout on waiting browser interaction to " "complete"); eloop_terminate(); } static void http_req(void *ctx, struct http_request *req) { struct browser_data *data = ctx; struct wpabuf *resp; const char *url; int done = 0; url = http_request_get_uri(req); wpa_printf(MSG_INFO, "Browser response received: %s", url); if (os_strcmp(url, "/") == 0) { data->success = 1; done = 1; } else if (os_strncmp(url, "/osu/", 5) == 0) { data->success = atoi(url + 5); done = 1; } resp = wpabuf_alloc(1); if (resp == NULL) { http_request_deinit(req); if (done) eloop_terminate(); return; } if (done) { eloop_cancel_timeout(browser_timeout, NULL, NULL); eloop_register_timeout(0, 500000, browser_timeout, &data, NULL); } http_request_send_and_deinit(req, resp); } int hs20_web_browser(const char *url) { struct http_server *http; struct in_addr addr; struct browser_data data; pid_t pid; wpa_printf(MSG_INFO, "Launching Android browser to %s", url); os_memset(&data, 0, sizeof(data)); if (eloop_init() < 0) { wpa_printf(MSG_ERROR, "eloop_init failed"); return -1; } addr.s_addr = htonl((127 << 24) | 1); http = http_server_init(&addr, 12345, http_req, &data); if (http == NULL) { wpa_printf(MSG_ERROR, "http_server_init failed"); eloop_destroy(); return -1; } pid = fork(); if (pid < 0) { wpa_printf(MSG_ERROR, "fork: %s", strerror(errno)); http_server_deinit(http); eloop_destroy(); return -1; } if (pid == 0) { /* run the external command in the child process */ char *argv[7]; argv[0] = "browser-android"; argv[1] = "start"; argv[2] = "-a"; argv[3] = "android.intent.action.VIEW"; argv[4] = "-d"; argv[5] = (void *) url; argv[6] = NULL; execv("/system/bin/am", argv); wpa_printf(MSG_ERROR, "execv: %s", strerror(errno)); exit(0); return -1; } eloop_register_timeout(30, 0, browser_timeout, &data, NULL); eloop_run(); eloop_cancel_timeout(browser_timeout, &data, NULL); http_server_deinit(http); eloop_destroy(); wpa_printf(MSG_INFO, "Closing Android browser"); if (system("/system/bin/input keyevent KEYCODE_HOME") != 0) { wpa_printf(MSG_INFO, "Failed to inject keyevent"); } return data.success; }
Upload File
Create Folder