libidav/session.c

changeset 796
81e0f67386a6
parent 790
7110b37f2a6b
child 805
bff983370565
--- a/libidav/session.c	Sat Sep 30 16:33:47 2023 +0200
+++ b/libidav/session.c	Sat Sep 30 17:26:00 2023 +0200
@@ -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