projects
/
project
/
uclient.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add support for passing in auth to uclient_set_url()
[project/uclient.git]
/
uclient.c
diff --git
a/uclient.c
b/uclient.c
index
b020ad0
..
2ac052d
100644
(file)
--- a/
uclient.c
+++ b/
uclient.c
@@
-112,12
+112,12
@@
free:
return NULL;
}
return NULL;
}
-struct uclient *uclient_new(const char *url_str, const struct uclient_cb *cb)
+struct uclient *uclient_new(const char *url_str, const
char *auth_str, const
struct uclient_cb *cb)
{
struct uclient *cl;
struct uclient_url *url;
{
struct uclient *cl;
struct uclient_url *url;
- url = uclient_get_url(url_str,
NULL
);
+ url = uclient_get_url(url_str,
auth_str
);
if (!url)
return NULL;
if (!url)
return NULL;
@@
-132,27
+132,30
@@
struct uclient *uclient_new(const char *url_str, const struct uclient_cb *cb)
return cl;
}
return cl;
}
-int uclient_
connect_url(struct uclient *cl, const char *url
_str)
+int uclient_
set_url(struct uclient *cl, const char *url_str, const char *auth
_str)
{
{
- struct uclient_url *url = cl->url;
const struct uclient_backend *backend = cl->backend;
const struct uclient_backend *backend = cl->backend;
+ struct uclient_url *url = cl->url;
+
+ url = uclient_get_url(url_str, auth_str);
+ if (!url)
+ return -1;
- if (url_str) {
- url = uclient_get_url(url_str, NULL);
- if (!url)
- return -1;
+ if (url->backend != cl->backend)
+ return -1;
- if (url->backend != cl->backend)
-
return -1
;
+ free(cl->url);
+
cl->url = url
;
- free(cl->url);
-
cl->url = url
;
+ if (backend->update_url)
+
backend->update_url(cl)
;
- if (backend->update_url)
- backend->update_url(cl);
- }
+ return 0;
+}
- return backend->connect(cl);
+int uclient_connect(struct uclient *cl)
+{
+ return cl->backend->connect(cl);
}
void uclient_free(struct uclient *cl)
}
void uclient_free(struct uclient *cl)