libidav/session.c

changeset 2
fbdfaacc4182
parent 1
b5bb7b3cd597
child 18
af411868ab9b
--- a/libidav/session.c	Mon Jan 22 17:27:47 2024 +0100
+++ b/libidav/session.c	Sat Jan 27 17:50:19 2024 +0100
@@ -114,13 +114,17 @@
     return sn;
 }
 
-void dav_session_set_auth(DavSession *sn, char *user, char *password) {
+void dav_session_set_auth(DavSession *sn, const char *user, const char *password) {
     if(user && password) {
-        size_t ulen = strlen(user);
-        size_t plen = strlen(password);
-        size_t upwdlen = ulen + plen + 2;
+        dav_session_set_auth_s(sn, cx_str(user), cx_str(password));
+    }
+}
+
+void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password) {
+    if(user.length > 0 && password.length > 0) {
+        size_t upwdlen = user.length + password.length + 2;
         char *upwdbuf = malloc(upwdlen);
-        snprintf(upwdbuf, upwdlen, "%s:%s", user, password);
+        snprintf(upwdbuf, upwdlen, "%.*s:%.*s", (int)user.length, user.ptr, (int)password.length, password.ptr);
         curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf);
         free(upwdbuf);
     }

mercurial