From 36dfbf712d0e2f6c0cb4fbe05def81b79495dcc6 Mon Sep 17 00:00:00 2001 From: Walker Aldridge Date: Fri, 3 May 2024 17:31:17 -0500 Subject: [PATCH] Change file upload password from parameter to body --- waifuAPIModule.f90 | 31 ++++++++++++++++++++++++++++--- waifuModelsModule.f90 | 3 --- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/waifuAPIModule.f90 b/waifuAPIModule.f90 index d347626..3031b6e 100644 --- a/waifuAPIModule.f90 +++ b/waifuAPIModule.f90 @@ -77,6 +77,12 @@ function uploadFile(fileObj) result (res) ! URL Upload fields = 'url=' fields = trim(fields) // curl_easy_escape(curl_ptr, trim(fileObj%url), len_trim(fileObj%url)) + + if (len_trim(fileObj%password) > 0) then + fields = trim(fields) // '&password=' & + // curl_easy_escape(curl_ptr, trim(fileObj%password), len_trim(fileObj%password)) + end if + call dispatch_curl(rc, 'PUT', trim(target_url), c_null_ptr, body, fields) elseif (len_trim(fileObj%filename) > 0 .and. .not. allocated(fileObj%buffer)) then ! File Upload @@ -95,7 +101,17 @@ function uploadFile(fileObj) result (res) // 'Content-Length: ' // trim(stringsize) // achar(13) // achar(10) & // 'Content-Type: octet-stream' // achar(13) // achar(10) // 'Content-Transfer-Encoding: binary' & // achar(13) // achar(10) & - // achar(13) // achar(10) // filebuffer // achar(13) // achar(10) // '--' // seperator // '--' + // achar(13) // achar(10) // filebuffer // achar(13) // achar(10) + + if (len_trim(fileObj%password) > 0) then + fields = fields // '--' // seperator // achar(13) // achar(10) & + // 'Content-Disposition: form-data; name="password"' // achar(13) // achar(10) & + // 'Content-Type: text/plain' // achar(13) // achar(10) & + // achar(13) // achar(10) // trim(fileObj%password) // achar(13) // achar(10) + endif + + fields = fields // '--' // seperator // '--' + headers = c_null_ptr headers = curl_slist_append(headers, ('Content-Type: multipart/form-data; boundary="' & // seperator // '"')) @@ -116,8 +132,17 @@ function uploadFile(fileObj) result (res) // 'Content-Type: octet-stream' // achar(13) // achar(10) & // 'Content-Transfer-Encoding: binary' & // achar(13) // achar(10) & - // achar(13) // achar(10) // fileObj%buffer // achar(13) // achar(10) // '--' & - // seperator // '--' + // achar(13) // achar(10) // fileObj%buffer // achar(13) // achar(10) + + if (len_trim(fileObj%password) > 0) then + fields = fields // '--' // seperator // achar(13) // achar(10) & + // 'Content-Disposition: form-data; name="password"' // achar(13) // achar(10) & + // 'Content-Type: text/plain' // achar(13) // achar(10) & + // achar(13) // achar(10) // trim(fileObj%password) // achar(13) // achar(10) + endif + + fields = fields // '--' // seperator // '--' + headers = c_null_ptr headers = curl_slist_append(headers, ('Content-Type: multipart/form-data; boundary="' & // seperator // '"')) diff --git a/waifuModelsModule.f90 b/waifuModelsModule.f90 index 66fed3e..5edf05e 100644 --- a/waifuModelsModule.f90 +++ b/waifuModelsModule.f90 @@ -75,9 +75,6 @@ function build_url(this) result (res) integer :: len character(len=512) :: res res = 'https://waifuvault.moe/rest?' - if(len_trim(this%password)>0) then - res = trim(res) // 'password=' // trim(this%password) // '&' - end if if(len_trim(this%expires)>0) then res = trim(res) // 'expires=' // trim(this%expires) // '&' end if