diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2011-05-08 17:38:40 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2011-05-08 17:38:40 -0700 |
commit | 0c07cbad2ee8450fbe8050bf6223a99e3f2e01a9 (patch) | |
tree | d9cf6facbc041d0471c1ad8b5f611ec008573e32 /tools/wispr.c | |
parent | 1cd6b098b484fb5993a5e55b1d8aaa97db38d416 (diff) | |
download | connman-0c07cbad2ee8450fbe8050bf6223a99e3f2e01a9.tar.gz connman-0c07cbad2ee8450fbe8050bf6223a99e3f2e01a9.tar.bz2 connman-0c07cbad2ee8450fbe8050bf6223a99e3f2e01a9.zip |
tools: Add support for WISPr authentication polling
To log into a FON access point, the redirect site needs to be requested
since it contains the 2nd stage authentication challenge.
Diffstat (limited to 'tools/wispr.c')
-rw-r--r-- | tools/wispr.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tools/wispr.c b/tools/wispr.c index e43208d0..7de9dbb0 100644 --- a/tools/wispr.c +++ b/tools/wispr.c @@ -491,8 +491,24 @@ static gboolean wispr_result(GWebResult *result, gpointer user_data) g_print("elapse: %f seconds\n", elapsed); - if (wispr->msg.message_type < 0) - goto done; + if (wispr->msg.message_type < 0) { + const char *redirect; + + if (status != 302) + goto done; + + if (g_web_result_get_header(result, "Location", + &redirect) == FALSE) + goto done; + + printf("Redirect URL: %s\n", redirect); + printf("\n"); + + wispr->request = g_web_request_get(wispr->web, redirect, + wispr_result, wispr); + + return FALSE; + } printf("Message type: %s (%d)\n", message_type_to_string(wispr->msg.message_type), @@ -527,7 +543,8 @@ static gboolean wispr_result(GWebResult *result, gpointer user_data) g_idle_add(execute_login, wispr); return FALSE; - } else if (status == 200 && wispr->msg.message_type == 120) { + } else if (status == 200 && (wispr->msg.message_type == 120 || + wispr->msg.message_type == 140)) { int code = wispr->msg.response_code; printf("Login process: %s\n", code == 50 ? "SUCCESS" : "FAILURE"); |