Project

General

Profile

trying to use Joplin Android App with lighttpd

Added by Anonymous 10 months ago

I am writing this into the developer forum as it might be more a feature request or issue report rather then a support question. I have configured webDAV in lighttpd and ran into some trouble with an Android app called Joplin. It is supposed to sync some data via webdav. While searching for a solution or even understand what is going wrong I have found the following issue which might be related: https://github.com/laurent22/joplin/issues/1228. Is the described problem also a problem in lighttpd? Can it be fixed?

best regards


Replies (14)

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 10 months ago

You are posting to the developer forum, but did not provide any data to support your conclusion. If you think lighttpd is mishandling If-None-Match as in the (unrelated) mailbox.org or OpenXchange mentioned in https://github.com/laurent22/joplin/issues/1228, then please share the request headers sent by the client and the response headers sent by lighttpd.

Does the resource in question exist? If the resource does not exist, and If-None-Match is sent spuriously by Joplin, there might be a logic bug in the lighttpd test with If-None-Match, so this patch might help (but needs further review):

--- a/src/mod_webdav.c
+++ b/src/mod_webdav.c
@@ -2268,7 +2268,7 @@ webdav_if_match_or_unmodified_since (request_st * const r, struct stat *st)

     if (NULL != inm) {
         if (NULL == st
-            ? !buffer_eq_slen(inm, CONST_STR_LEN("*"))
+            ? buffer_eq_slen(inm, CONST_STR_LEN("*"))
               || (errno != ENOENT && errno != ENOTDIR)
             : http_etag_matches(etagb, inm->ptr, 1))
             return 412; /* Precondition Failed */

RE: trying to use Joplin Android App with lighttpd - Added by Anonymous 10 months ago

Apologies for posting to the wrong place, I understand now this is a support question and this is the wrong place. All I wanted to know is, if this is a known problem. I am not a developer, I am a user. For me this case is closed as I cannot change anything. Thank you for your help.

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 10 months ago

Thank you for your help.

I have not helped. However, you have succeeded in drawing my ire.

If you can not test anything, and you refuse to even try to provide observations of request and response headers (which are easy to obtain for users and non-developers), then, in short, you are refusing to participate and therefore should not have posted at all.

It is baffling that you are so insecure that you can not even attempt to answer my questions, such as "Does the resource in question exist?". Inability to even try to answer a "yes"/"no" question is quite pitiful.

RE: trying to use Joplin Android App with lighttpd - Added by karlitos 5 months ago

I can confirm, that the error, described in the Joplin Github issue 1228 is not appearing with the lighttpd version 1.4.64.

For those, who can not switch to a recent lighttp version, there may be a workaround in commenting out the line 311 in the WebDavApi.js. You can enable the development tools on the desktop (Help > Toggle Development Tools) to figure out where the files is located.

I still can't get Joplin synchronization running, because of:

Synchronizer: Error: PUT 04975f7542b34d15a6db533d6a3e3239.md: Unknown error 2 (403): <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>403 Forbidden</title>
 </head>
 <body>
  <h1>403 Forbidden</h1>
 </body>
</html>

I enabled the debug output in Joplin, and here is the whole console output

I will also post the the request headers sent by the client and the response headers sent by lighttpd as requested as sonn as I figure out how to capture them

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 5 months ago

I will also post the the request headers sent by the client and the response headers sent by lighttpd as requested as sonn as I figure out how to capture them

Did you read the 6 lines in the link as requested ? Were the explicit lighttpd.conf config directives not clear in those 6 lines?

On the front page of lighttpd wiki is Configuration: Debug Variables

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 5 months ago

I confirmed that the patch above in #message-10194 fixes the 412 Precondition Failed response that lighttpd was returning to the random If-None-Match sent by Joplin for a non-existent resource. The patch is part of lighttpd 1.4.64, released Jan 2022.

I had no issues doing an initial synchronization using Joplin against lighttpd 1.4.64 mod_webdav. (I did not see the 403 Forbidden seen by karlitos above.)

RE: trying to use Joplin Android App with lighttpd - Added by karlitos 4 months ago

Hello and forgive me my late response. Updating lighttpd from Debian unstable repos worked fine for lighttpd but broke openssh-server due to never version of glibc. Solution was an update of openssh-server package, which has to be done via serial console, which took me some time to prepare.

Did you read the 6 lines in the link as requested ? Were the explicit lighttpd.conf config directives not clear in those 6 lines?

Yes and apparently not, since in my first support request you already stated that I am selectively omitting information - I beg your pardon, I don't do this on purpose.

So, I added the lines

debug.log-request-header = "enable" 
debug.log-response-header = "enable" 

to my lighttpd config and also added webdav.log-xml="enable" to the webdav part of the configuration.

When I run the Joplin synchronization I see following output in the error log:

2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 200 OK
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Type: application/json; charset=utf-8
2022-05-27 21:07:10: (response.c.164) fd:16 resp: ETag: "1997969442" 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Last-Modified: Wed, 04 May 2022 13:49:11 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Length: 200
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Cache-Control: max-age=0
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Accept-Ranges: bytes
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (mod_webdav.c.3859) XML-request-body: <?xml version="1.0" encoding="UTF-8"?>\n\t\t\t<d:propfind xmlns:d="DAV:">\n\t\t\t\t<d:prop xmlns:oc="http://owncloud.org/ns">\n\t\t\t\t\t<d:getlastmodified/><d:resourcetype/>\n\t\t\t\t</d:prop>\n\t\t\t</d:propfind>
2022-05-27 21:07:10: (mod_webdav.c.771) XML-response-body: <?xml version="1.0" encoding="utf-8"?>\n<D:multistatus xmlns:D="DAV:" xmlns:ns0="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/">\n<D:response>\n<D:href>/webdav/locks/</D:href>\n<D:propstat>\n<D:prop>\n<D:getlastmodified ns0:dt="dateTime.rfc1123">Fri, 27 May 2022 19:06:39 GMT</D:getlastmodified><D:resourcetype><D:collection/></D:resourcetype></D:prop>\n<D:status>HTTP/1.1 200 OK</D:status>\n</D:propstat>\n</D:response>\n</D:multistatus>\n
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 207 Multi-status
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Type: application/xml; charset="utf-8" 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Length: 430
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 201 Created
2022-05-27 21:07:10: (response.c.164) fd:16 resp: ETag: "1193213858" 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Length: 0
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (mod_webdav.c.3859) XML-request-body: <?xml version="1.0" encoding="UTF-8"?>\n\t\t\t<d:propfind xmlns:d="DAV:">\n\t\t\t\t<d:prop xmlns:oc="http://owncloud.org/ns">\n\t\t\t\t\t<d:getlastmodified/><d:resourcetype/>\n\t\t\t\t</d:prop>\n\t\t\t</d:propfind>
2022-05-27 21:07:10: (mod_webdav.c.771) XML-response-body: <?xml version="1.0" encoding="utf-8"?>\n<D:multistatus xmlns:D="DAV:" xmlns:ns0="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/">\n<D:response>\n<D:href>/webdav/locks/</D:href>\n<D:propstat>\n<D:prop>\n<D:getlastmodified ns0:dt="dateTime.rfc1123">Fri, 27 May 2022 19:07:10 GMT</D:getlastmodified><D:resourcetype><D:collection/></D:resourcetype></D:prop>\n<D:status>HTTP/1.1 200 OK</D:status>\n</D:propstat>\n</D:response>\n<D:response>\n<D:href>/webdav/locks/1_1_058bd161cea54f63a2063c26bb43d608.json</D:href>\n<D:propstat>\n<D:prop>\n<D:getlastmodified ns0:dt="dateTime.rfc1123">Fri, 27 May 2022 19:07:10 GMT</D:getlastmodified><D:resourcetype/></D:prop>\n<D:status>HTTP/1.1 200 OK</D:status>\n</D:propstat>\n</D:response>\n</D:multistatus>\n
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 207 Multi-status
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Type: application/xml; charset="utf-8" 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Length: 724
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 204 No Content
2022-05-27 21:07:10: (response.c.164) fd:16 resp: ETag: "3261005277" 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 403 Forbidden
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Type: text/html
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Length: 341
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Connection: close
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (mod_webdav.c.3859) XML-request-body: <?xml version="1.0" encoding="UTF-8"?>\n\t\t\t<d:propfind xmlns:d="DAV:">\n\t\t\t\t<d:prop xmlns:oc="http://owncloud.org/ns">\n\t\t\t\t\t<d:getlastmodified/><d:resourcetype/>\n\t\t\t\t</d:prop>\n\t\t\t</d:propfind>
2022-05-27 21:07:10: (mod_webdav.c.771) XML-response-body: <?xml version="1.0" encoding="utf-8"?>\n<D:multistatus xmlns:D="DAV:" xmlns:ns0="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/">\n<D:response>\n<D:href>/webdav/locks/</D:href>\n<D:propstat>\n<D:prop>\n<D:getlastmodified ns0:dt="dateTime.rfc1123">Fri, 27 May 2022 19:07:10 GMT</D:getlastmodified><D:resourcetype><D:collection/></D:resourcetype></D:prop>\n<D:status>HTTP/1.1 200 OK</D:status>\n</D:propstat>\n</D:response>\n<D:response>\n<D:href>/webdav/locks/1_1_058bd161cea54f63a2063c26bb43d608.json</D:href>\n<D:propstat>\n<D:prop>\n<D:getlastmodified ns0:dt="dateTime.rfc1123">Fri, 27 May 2022 19:07:10 GMT</D:getlastmodified><D:resourcetype/></D:prop>\n<D:status>HTTP/1.1 200 OK</D:status>\n</D:propstat>\n</D:response>\n</D:multistatus>\n
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 207 Multi-status
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Type: application/xml; charset="utf-8" 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Content-Length: 724
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 
2022-05-27 21:07:10: (response.c.164) fd:16 resp: HTTP/1.1 204 No Content
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Date: Fri, 27 May 2022 19:07:10 GMT
2022-05-27 21:07:10: (response.c.164) fd:16 resp: Server: lighttpd/1.4.64
2022-05-27 21:07:10: (response.c.164) fd:16 resp: 

Are there still any information missing ?

On a side note - I tried also the Obsidian note taking app and it fails syncing with the WebDav server with 403 error code as well.

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 4 months ago

Yes and apparently not, since in my first support request you already stated that I am selectively omitting information - I beg your pardon, I don't do this on purpose.

You must be doing this on purpose. debug.log-request-header = "enable" will log the request, which is not present in your previous post, which contains only the output from debug.log-response-header = "enable" and webdav.log-xml="enable"

RE: trying to use Joplin Android App with lighttpd - Added by karlitos 4 months ago

You must be doing this on purpose.

Oh my ... what purpose would this serve to me?

I can clearly see, that the error.log output does not contain any lines containing request.c (my guess the analogue to request.c lines) even thou my config has the lines

debug.log-request-header = "enable" 
debug.log-response-header = "enable" 

The documentation states, that "The debug output will be written to the error.log.Please keep in mind that you can have only one global error.log." Is the second sentence still valid, may this be the cause for the missing request lines ? I have an extra server.errorlog entry in my $HTTP["host"] - I was assuming this may be outdated

Adding debug.log-request-handling = "enable" did not bring any improvements. Removing the line debug.log-response-header = "enable" causes no request/response lines in the error.log at all. Searching the forum/web did not reveal any hints ... I am completely baffeled and confused

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 4 months ago

I am completely baffeled and confused

https://redmine.lighttpd.net/issues/665#note-32 is accurate. The line on the other wiki page is not (and has been corrected)

The front page of the wiki has the link Configuration: Options which lists server.error-log

RE: trying to use Joplin Android App with lighttpd - Added by gstrauss 4 months ago

I am completely baffeled and confused

Please read the following very carefully:
How to get Help

RE: trying to use Joplin Android App with lighttpd - Added by karlitos 4 months ago

gstrauss wrote in RE: trying to use Joplin Android App with lighttpd:

I am completely baffeled and confused

https://redmine.lighttpd.net/issues/665#note-32 is accurate. The line on the other wiki page is not (and has been corrected)

Many thanks for the corrected wiki page, this brought me to looking into the main error log and it probably contains the request headers. When Joplin starts the sync process those line appears in the log

2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: GET /webdav/info.json HTTP/1.1
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:16: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PROPFIND /webdav/locks/ HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: depth: 1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/xml
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-20748
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 190
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PUT /webdav/temp/timeCheck949883.txt HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/plain
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-65126
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 9
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PROPFIND /webdav/temp/timeCheck949883.txt HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: depth: 0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/xml
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-12392
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 190
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: DELETE /webdav/temp/timeCheck949883.txt HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-14514
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PUT /webdav/locks/1_1_058bd161cea54f63a2063c26bb43d608.json HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/plain
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-70609
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 71
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PROPFIND /webdav/locks/ HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: depth: 1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/xml
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-27842
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 190
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PUT /webdav/locks/1_1_058bd161cea54f63a2063c26bb43d608.json HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/plain
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-41119
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 109
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PUT /webdav/a21689dacf334988942d3d939591ab4e.md HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/plain
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-74615
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 686
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: PROPFIND /webdav/locks/ HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: depth: 1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-type: text/xml
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-24855
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 190
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: 
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: DELETE /webdav/locks/1_1_058bd161cea54f63a2063c26bb43d608.json HTTP/1.1
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: authorization: Basic a2FybGl0b3M6MDc3NDc5NEtyZXNpbGtv
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: cache-control: no-store
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: if-none-match: JoplinIgnore-35299
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: user-agent: Joplin/1.0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept-encoding: gzip,deflate
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: accept: */*
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: content-length: 0
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Host: pim.karlitos.net
2022-05-28 20:30:17: (connections.c.770) fd:16 rqst: Connection: keep-alive

RE: trying to use Joplin Android App with lighttpd - Added by karlitos 4 months ago

Please read the following very carefully:
How to get Help

I am using Armbian Bullseye and lighttpd 1.4.64 from Debian Bookworm
lighttpd -tt -f /etc/lighttpd/lighttpd.conf does not print any output
lighttpd -p -f /etc/lighttpd/lighttpd.conf print following output
The bigger part of the configuration comes from the default lighttpd configuration for Pi-hole web interface which I did not change
As a client I tried Joplin 2.7.15 and Obsidian 0.14.6. Both apps fails the synchronization against the lighttpd Webdav with error code 403. In case of Joplin the displayed error is

Synchronizer: Error: PUT a21689dacf334988942d3d939591ab4e.md: Unknown error 2 (403): <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>403 Forbidden</title>
 </head>
 <body>
  <h1>403 Forbidden</h1>
 </body>
</html>

    (1-14/14)