Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/1e9b95397b45bf7c6cfd528591e9f9fa4dbd40e7
...commit
http://git.netsurf-browser.org/netsurf.git/commit/1e9b95397b45bf7c6cfd528591e9f9fa4dbd40e7
...tree
http://git.netsurf-browser.org/netsurf.git/tree/1e9b95397b45bf7c6cfd528591e9f9fa4dbd40e7
The branch, tlsa/401 has been updated
via 1e9b95397b45bf7c6cfd528591e9f9fa4dbd40e7 (commit)
via b39273100a4a257fd74221efb45e5f29f8d405bf (commit)
from 7dd43902190fb0298e42962ab0174190693ff3af (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=1e9b95397b45bf7c6cfd528591e9f9fa4dbd40e7
commit 1e9b95397b45bf7c6cfd528591e9f9fa4dbd40e7
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>
Atari: Move to new HTTP auth API.
diff --git a/frontends/atari/gui.c b/frontends/atari/gui.c
index 6ee63b3..14e02e5 100644
--- a/frontends/atari/gui.c
+++ b/frontends/atari/gui.c
@@ -767,23 +767,30 @@ static void gui_set_clipboard(const char *buffer, size_t
length,
}
static void gui_401login_open(nsurl *url, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw)
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw)
{
- bool bres;
- char * out = NULL;
- bres = login_form_do( url, (char*)realm, &out);
- if (bres) {
- NSLOG(netsurf, INFO, "url: %s, realm: %s, auth: %s\n",
- nsurl_access(url), realm, out);
- urldb_set_auth_details(url, realm, out);
- }
- if (out != NULL) {
- free( out );
- }
- if (cb != NULL) {
- cb(bres, cbpw);
- }
-
+ bool bres;
+ char * u_out = NULL;
+ char * p_out = NULL;
+
+ bres = login_form_do(url, (char*)realm, &u_out, &p_out);
+ if (bres) {
+ NSLOG(netsurf, INFO, "url: %s, realm: %s, auth: %s\n",
+ nsurl_access(url), realm, out);
+ }
+ if (cb != NULL) {
+ cb(u_out, p_out, cbpw);
+ }
+ if (u_out != NULL) {
+ free(u_out);
+ }
+ if (p_out != NULL) {
+ free(p_out);
+ }
}
static nserror
diff --git a/frontends/atari/login.c b/frontends/atari/login.c
index 1b21c5d..6736c3a 100644
--- a/frontends/atari/login.c
+++ b/frontends/atari/login.c
@@ -34,7 +34,7 @@
#include "atari/res/netsurf.rsh"
-bool login_form_do(nsurl * url, char * realm, char ** out)
+bool login_form_do(nsurl * url, char * realm, char ** u_out char ** p_out)
{
char user[255];
char pass[255];
@@ -45,8 +45,6 @@ bool login_form_do(nsurl * url, char * realm, char ** out)
user[0] = 0;
pass[0] = 0;
- // TODO: use auth details for predefined login data
- // auth = urldb_get_auth_details(url, realm);
tree = gemtk_obj_get_tree(LOGIN);
assert(tree != NULL);
@@ -57,10 +55,18 @@ bool login_form_do(nsurl * url, char * realm, char ** out)
get_string(tree, LOGIN_TB_USER, user);
get_string(tree, LOGIN_TB_PASSWORD, pass);
int size = strlen((char*)&user) + strlen((char*)&pass) + 2 ;
- *out = malloc(size);
- snprintf(*out, size, "%s:%s", user, pass);
+ *u_out = malloc(strlen((char*)&user) + 1);
+ *p_out = malloc(strlen((char*)&pass) + 1);
+ if (u_out == NULL || p_out == NULL) {
+ free(*u_out);
+ free(*p_out);
+ return false;
+ }
+ memcpy(*u_out, (char*)&user, strlen((char*)&user) + 1);
+ memcpy(*p_out, (char*)&pass, strlen((char*)&pass) + 1);
} else {
- *out = NULL;
+ *u_out = NULL;
+ *p_out = NULL;
}
return((exit_obj == LOGIN_BT_LOGIN));
}
diff --git a/frontends/atari/login.h b/frontends/atari/login.h
index b61808c..3b714dd 100644
--- a/frontends/atari/login.h
+++ b/frontends/atari/login.h
@@ -21,6 +21,6 @@
#include "utils/nsurl.h"
-bool login_form_do( nsurl * host, char * realm, char **cbpw );
+bool login_form_do(nsurl * url, char * realm, char ** u_out char ** p_out);
#endif
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=b39273100a4a257fd74221efb45e5f29f8d405bf
commit b39273100a4a257fd74221efb45e5f29f8d405bf
Author: Michael Drake <[email protected]>
Commit: Michael Drake <[email protected]>
RISC OS: Update to new HTTP auth API.
diff --git a/frontends/riscos/401login.c b/frontends/riscos/401login.c
index 4b2deb1..d01edef 100644
--- a/frontends/riscos/401login.c
+++ b/frontends/riscos/401login.c
@@ -72,12 +72,16 @@ void ro_gui_401login_init(void)
* Open the login dialog
*/
void gui_401login_open(nsurl *url, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw)
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw)
{
lwc_string *host = nsurl_get_component(url, NSURL_HOST);
assert(host != NULL);
- ro_gui_401login_open(url, host, realm, cb, cbpw);
+ ro_gui_401login_open(url, host, realm, username, password, cb, cbpw);
lwc_string_unref(host);
}
@@ -88,11 +92,19 @@ void gui_401login_open(nsurl *url, const char *realm,
*/
void ro_gui_401login_open(nsurl *url, lwc_string *host, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw)
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw)
{
struct session_401 *session;
+ size_t len;
wimp_w w;
- const char *auth;
+
+ assert(host != NULL);
+ assert(username != NULL);
+ assert(password != NULL);
session = calloc(1, sizeof(struct session_401));
if (!session) {
@@ -100,32 +112,23 @@ void ro_gui_401login_open(nsurl *url, lwc_string *host,
const char *realm,
return;
}
- session->url = nsurl_ref(url);
if (realm == NULL)
realm = "Secure Area";
- auth = urldb_get_auth_details(session->url, realm);
- if (auth == NULL) {
- session->uname[0] = '\0';
- session->pwd[0] = '\0';
- } else {
- const char *pwd;
- size_t pwd_len;
-
- pwd = strchr(auth, ':');
- assert(pwd && pwd < auth + sizeof(session->uname));
- memcpy(session->uname, auth, pwd - auth);
- session->uname[pwd - auth] = '\0';
- ++pwd;
- pwd_len = strlen(pwd);
- assert(pwd_len < sizeof(session->pwd));
- memcpy(session->pwd, pwd, pwd_len);
- session->pwd[pwd_len] = '\0';
- }
+
+ session->url = nsurl_ref(url);
session->host = lwc_string_ref(host);
session->realm = strdup(realm);
session->cb = cb;
session->cbpw = cbpw;
+ len = strlen(username);
+ assert(len < sizeof(session->uname));
+ memcpy(session->uname, username, len + 1);
+
+ len = strlen(password);
+ assert(len < sizeof(session->pwd));
+ memcpy(session->pwd, password, len + 1);
+
if (!session->realm) {
nsurl_unref(session->url);
lwc_string_unref(session->host);
@@ -182,7 +185,7 @@ void ro_gui_401login_close(wimp_w w)
/* If ok didn't happen, send failure response */
if (session->cb != NULL)
- session->cb(false, session->cbpw);
+ session->cb(NULL, NULL, session->cbpw);
nsurl_unref(session->url);
lwc_string_unref(session->host);
@@ -205,26 +208,12 @@ void ro_gui_401login_close(wimp_w w)
bool ro_gui_401login_apply(wimp_w w)
{
struct session_401 *session;
- char *auth;
session = (struct session_401 *)ro_gui_wimp_event_get_user_data(w);
assert(session);
- auth = malloc(strlen(session->uname) + strlen(session->pwd) + 2);
- if (!auth) {
- NSLOG(netsurf, INFO, "calloc failed");
- ro_warn_user("NoMemory", 0);
- return false;
- }
-
- sprintf(auth, "%s:%s", session->uname, session->pwd);
-
- urldb_set_auth_details(session->url, session->realm, auth);
-
- free(auth);
-
- session->cb(true, session->cbpw);
+ session->cb(session->uname, session->pwd, session->cbpw);
/* Flag that we sent response by invalidating callback details */
session->cb = NULL;
diff --git a/frontends/riscos/gui.h b/frontends/riscos/gui.h
index 49a8ba4..b308c00 100644
--- a/frontends/riscos/gui.h
+++ b/frontends/riscos/gui.h
@@ -136,8 +136,12 @@ extern struct gui_download_table *riscos_download_table;
/* in 401login.c */
void ro_gui_401login_init(void);
-void gui_401login_open(struct nsurl *url, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw);
+void gui_401login_open(nsurl *url, const char *realm,
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw);
/* in schedule.c */
extern bool sched_active;
-----------------------------------------------------------------------
Summary of changes:
frontends/atari/gui.c | 39 ++++++++++++++-----------
frontends/atari/login.c | 18 ++++++++----
frontends/atari/login.h | 2 +-
frontends/riscos/401login.c | 67 ++++++++++++++++++-------------------------
frontends/riscos/gui.h | 8 ++++--
5 files changed, 70 insertions(+), 64 deletions(-)
diff --git a/frontends/atari/gui.c b/frontends/atari/gui.c
index 6ee63b3..14e02e5 100644
--- a/frontends/atari/gui.c
+++ b/frontends/atari/gui.c
@@ -767,23 +767,30 @@ static void gui_set_clipboard(const char *buffer, size_t
length,
}
static void gui_401login_open(nsurl *url, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw)
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw)
{
- bool bres;
- char * out = NULL;
- bres = login_form_do( url, (char*)realm, &out);
- if (bres) {
- NSLOG(netsurf, INFO, "url: %s, realm: %s, auth: %s\n",
- nsurl_access(url), realm, out);
- urldb_set_auth_details(url, realm, out);
- }
- if (out != NULL) {
- free( out );
- }
- if (cb != NULL) {
- cb(bres, cbpw);
- }
-
+ bool bres;
+ char * u_out = NULL;
+ char * p_out = NULL;
+
+ bres = login_form_do(url, (char*)realm, &u_out, &p_out);
+ if (bres) {
+ NSLOG(netsurf, INFO, "url: %s, realm: %s, auth: %s\n",
+ nsurl_access(url), realm, out);
+ }
+ if (cb != NULL) {
+ cb(u_out, p_out, cbpw);
+ }
+ if (u_out != NULL) {
+ free(u_out);
+ }
+ if (p_out != NULL) {
+ free(p_out);
+ }
}
static nserror
diff --git a/frontends/atari/login.c b/frontends/atari/login.c
index 1b21c5d..6736c3a 100644
--- a/frontends/atari/login.c
+++ b/frontends/atari/login.c
@@ -34,7 +34,7 @@
#include "atari/res/netsurf.rsh"
-bool login_form_do(nsurl * url, char * realm, char ** out)
+bool login_form_do(nsurl * url, char * realm, char ** u_out char ** p_out)
{
char user[255];
char pass[255];
@@ -45,8 +45,6 @@ bool login_form_do(nsurl * url, char * realm, char ** out)
user[0] = 0;
pass[0] = 0;
- // TODO: use auth details for predefined login data
- // auth = urldb_get_auth_details(url, realm);
tree = gemtk_obj_get_tree(LOGIN);
assert(tree != NULL);
@@ -57,10 +55,18 @@ bool login_form_do(nsurl * url, char * realm, char ** out)
get_string(tree, LOGIN_TB_USER, user);
get_string(tree, LOGIN_TB_PASSWORD, pass);
int size = strlen((char*)&user) + strlen((char*)&pass) + 2 ;
- *out = malloc(size);
- snprintf(*out, size, "%s:%s", user, pass);
+ *u_out = malloc(strlen((char*)&user) + 1);
+ *p_out = malloc(strlen((char*)&pass) + 1);
+ if (u_out == NULL || p_out == NULL) {
+ free(*u_out);
+ free(*p_out);
+ return false;
+ }
+ memcpy(*u_out, (char*)&user, strlen((char*)&user) + 1);
+ memcpy(*p_out, (char*)&pass, strlen((char*)&pass) + 1);
} else {
- *out = NULL;
+ *u_out = NULL;
+ *p_out = NULL;
}
return((exit_obj == LOGIN_BT_LOGIN));
}
diff --git a/frontends/atari/login.h b/frontends/atari/login.h
index b61808c..3b714dd 100644
--- a/frontends/atari/login.h
+++ b/frontends/atari/login.h
@@ -21,6 +21,6 @@
#include "utils/nsurl.h"
-bool login_form_do( nsurl * host, char * realm, char **cbpw );
+bool login_form_do(nsurl * url, char * realm, char ** u_out char ** p_out);
#endif
diff --git a/frontends/riscos/401login.c b/frontends/riscos/401login.c
index 4b2deb1..d01edef 100644
--- a/frontends/riscos/401login.c
+++ b/frontends/riscos/401login.c
@@ -72,12 +72,16 @@ void ro_gui_401login_init(void)
* Open the login dialog
*/
void gui_401login_open(nsurl *url, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw)
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw)
{
lwc_string *host = nsurl_get_component(url, NSURL_HOST);
assert(host != NULL);
- ro_gui_401login_open(url, host, realm, cb, cbpw);
+ ro_gui_401login_open(url, host, realm, username, password, cb, cbpw);
lwc_string_unref(host);
}
@@ -88,11 +92,19 @@ void gui_401login_open(nsurl *url, const char *realm,
*/
void ro_gui_401login_open(nsurl *url, lwc_string *host, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw)
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw)
{
struct session_401 *session;
+ size_t len;
wimp_w w;
- const char *auth;
+
+ assert(host != NULL);
+ assert(username != NULL);
+ assert(password != NULL);
session = calloc(1, sizeof(struct session_401));
if (!session) {
@@ -100,32 +112,23 @@ void ro_gui_401login_open(nsurl *url, lwc_string *host,
const char *realm,
return;
}
- session->url = nsurl_ref(url);
if (realm == NULL)
realm = "Secure Area";
- auth = urldb_get_auth_details(session->url, realm);
- if (auth == NULL) {
- session->uname[0] = '\0';
- session->pwd[0] = '\0';
- } else {
- const char *pwd;
- size_t pwd_len;
-
- pwd = strchr(auth, ':');
- assert(pwd && pwd < auth + sizeof(session->uname));
- memcpy(session->uname, auth, pwd - auth);
- session->uname[pwd - auth] = '\0';
- ++pwd;
- pwd_len = strlen(pwd);
- assert(pwd_len < sizeof(session->pwd));
- memcpy(session->pwd, pwd, pwd_len);
- session->pwd[pwd_len] = '\0';
- }
+
+ session->url = nsurl_ref(url);
session->host = lwc_string_ref(host);
session->realm = strdup(realm);
session->cb = cb;
session->cbpw = cbpw;
+ len = strlen(username);
+ assert(len < sizeof(session->uname));
+ memcpy(session->uname, username, len + 1);
+
+ len = strlen(password);
+ assert(len < sizeof(session->pwd));
+ memcpy(session->pwd, password, len + 1);
+
if (!session->realm) {
nsurl_unref(session->url);
lwc_string_unref(session->host);
@@ -182,7 +185,7 @@ void ro_gui_401login_close(wimp_w w)
/* If ok didn't happen, send failure response */
if (session->cb != NULL)
- session->cb(false, session->cbpw);
+ session->cb(NULL, NULL, session->cbpw);
nsurl_unref(session->url);
lwc_string_unref(session->host);
@@ -205,26 +208,12 @@ void ro_gui_401login_close(wimp_w w)
bool ro_gui_401login_apply(wimp_w w)
{
struct session_401 *session;
- char *auth;
session = (struct session_401 *)ro_gui_wimp_event_get_user_data(w);
assert(session);
- auth = malloc(strlen(session->uname) + strlen(session->pwd) + 2);
- if (!auth) {
- NSLOG(netsurf, INFO, "calloc failed");
- ro_warn_user("NoMemory", 0);
- return false;
- }
-
- sprintf(auth, "%s:%s", session->uname, session->pwd);
-
- urldb_set_auth_details(session->url, session->realm, auth);
-
- free(auth);
-
- session->cb(true, session->cbpw);
+ session->cb(session->uname, session->pwd, session->cbpw);
/* Flag that we sent response by invalidating callback details */
session->cb = NULL;
diff --git a/frontends/riscos/gui.h b/frontends/riscos/gui.h
index 49a8ba4..b308c00 100644
--- a/frontends/riscos/gui.h
+++ b/frontends/riscos/gui.h
@@ -136,8 +136,12 @@ extern struct gui_download_table *riscos_download_table;
/* in 401login.c */
void ro_gui_401login_init(void);
-void gui_401login_open(struct nsurl *url, const char *realm,
- nserror (*cb)(bool proceed, void *pw), void *cbpw);
+void gui_401login_open(nsurl *url, const char *realm,
+ const char *username, const char *password,
+ nserror (*cb)(const char *username,
+ const char *password,
+ void *pw),
+ void *cbpw);
/* in schedule.c */
extern bool sched_active;
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org