summaryrefslogtreecommitdiff
path: root/frontends/atari
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2018-08-14 11:34:30 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2018-08-15 07:29:58 +0100
commit66a97b863ce450bb0932ea4813b81c9b62d84b83 (patch)
treee105c2dd0cc633053e8f66af91bf7c8537a0c557 /frontends/atari
parentc55a31aa110cd5f469a7758f63c0f0dbb26da2c9 (diff)
downloadnetsurf-66a97b863ce450bb0932ea4813b81c9b62d84b83.tar.gz
netsurf-66a97b863ce450bb0932ea4813b81c9b62d84b83.tar.bz2
Atari: Move to new HTTP auth API.
Diffstat (limited to 'frontends/atari')
-rw-r--r--frontends/atari/gui.c39
-rw-r--r--frontends/atari/login.c18
-rw-r--r--frontends/atari/login.h2
3 files changed, 36 insertions, 23 deletions
diff --git a/frontends/atari/gui.c b/frontends/atari/gui.c
index 6ee63b301..14e02e5f8 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 1b21c5d2a..6736c3ab2 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 b61808c71..3b714dd9d 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