Giter Site home page Giter Site logo

notroj / neon Goto Github PK

View Code? Open in Web Editor NEW
127.0 8.0 32.0 3.34 MB

neon - an HTTP/1.1 and WebDAV client library with a C API

Home Page: https://notroj.github.io/neon/

Shell 1.03% Makefile 2.36% C 92.05% M4 4.55% GDB 0.01%
http-client http c webdav webdav-client

neon's Issues

[regression] 0.31.2 -> 0.32.1, install fails since docs are regerated

Cross-compiling using a Buildroot environment, x86_64, 0.31.2 builds/installs fine, but 0.32.1 fails on install with:

xmlto -o `pwd`/doc/man -x ./doc/man.xsl man ./doc/manual.xml
/bin/sh: xmlto: command not found
make[1]: *** [Makefile:97: docs-man] Error 127

Our build environment does not include xmlto, and there is no need to regenerate the docs as they are included in the release. (BTW, we remove all docs anyway.)

This patch fixes the issue on my end:

--- neon-0.32.1/Makefile.in.orig	2021-10-06 10:57:58.322850997 -0500
+++ neon-0.32.1/Makefile.in	2021-10-06 10:59:10.560854337 -0500
@@ -128,13 +128,13 @@
 
 install-docs: install-man install-html
 
-install-html: docs-html
+install-html:
 	$(INSTALL) -d $(DESTDIR)$(docdir)/html
 	for d in doc/html/*.html; do \
 		$(INSTALL_DATA) $$d $(DESTDIR)$(docdir)/html; \
 	done
 
-install-man: docs-man
+install-man:
 	$(INSTALL) -d $(DESTDIR)$(man3dir)
 	$(INSTALL) -d $(DESTDIR)$(man1dir)
 	for m in doc/man/*.3; do \

For your release your would have to make with docs to generate the docs.

ne_sock_close() SSL closure issues

  1. ne_sock_close() should not be calling SSL_shutdown() after an SSL library error, per the OpenSSL docs

  2. there is also maybe needed an alternative to ne_sock_close() which does SSL closure and waits for the peer to send close_notify, and returns success/error appropriately.

Calling shutdown(fd, SHUT_WR) is another workaround for the problem in issue #11, the IIS/10 running on live.com does immediately close the connection (without sending a close_notify) in that case, so avoiding the hang

Timeout decreasing on each lock refresh

I am not at all sure, what component of the following bug is at fault. The components are LibreOffice using Neon and a commercial WebDav-Server.

The server returns the time until the lock expires as it currently measures it. So it will be less than the requested timeout.

The following happens:

client -> Second-3
server -> Second-2
client -> Second-2
server -> Second-1
client -> Second-0

BOOM. I don't know who is wrong. If I read the spec I think the client is wrong. The clients should always request the timeout it wants and not the timeout returned by the server. This line will update the requested timeout with the timeout returned by the server.

lock->timeout = ctx.active.timeout;

I am also not sure if how LibreOffice uses Neon is wrong. Please let me know what you think, so I can decide where to fix the problem.

configure script doesn't include required headers; configuration fails

Describe the bug

Configuration fails on macOS and when implicit declaration of functions is an error:

checking for library containing socket... not found
configure: error: could not find library containing socket

config.log shows the reason is:

conftest.c:78:1: error: implicit declaration of function 'socket' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
socket();
^

This was reported to MacPorts here. Implicit declaration of functions is an error in the version of clang included with Xcode 12 and later, or if you add -Werror=implicit-function-declaration to CFLAGS (which I do because I have not upgraded to Xcode 12 but I want to find and help fix these errors). Apple changed this condition from a warning to an error in order to support ARM processors which have different calling conventions for variadic and non-variadic functions, so the compiler must know before you call a function what kind of function it is, so it must see the function declaration.

After fixing this problem by patching the configure script to add the line:

#include <sys/socket.h>

it still fails. config.log shows the next problem is:

conftest.c:78:8: error: too few arguments to function call, expected 3, have 0
socket();
~~~~~~ ^
/usr/include/sys/socket.h:702:1: note: 'socket' declared here
int     socket(int, int, int);
^

Environment

  • neon version: master
  • OS: macOS
  • SSL library version: 1.1.1i

To Reproduce
On macOS with Xcode 12 or later, run LIBTOOLIZE=glibtoolize ./autogen.sh (if not using a release) and ./configure.

Debugging output
N/A

Build neon with WebDAV support?

Error: Build neon with WebDAV support
Environment

  • neon version: [e.g. 0.32.2]
  • OS: [Windows/VisualStudio_2019]
  • Expat library version: [e.g. 2.4.8]

C:\NEON\neon-0.32.2>nmake /f neon.mak EXPAT_SRC=C:\NEON\Expat-2.4.0

Служебная программа обслуживания программ Microsoft (R), версия 14.29.30139.0
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

    tempfile.bat

Created config.h from config.hw
cl.exe @C:\Users\user\AppData\Local\Temp\nm494B.tmp
cl: командная строка warning D9035: использование параметра "GX" нежелательно, он будет удален в следующих выпусках
cl: командная строка warning D9036: используйте "EHsc" вместо "GX"
ne_alloc.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_auth.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_basic.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_compress.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_dates.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_i18n.c
ne_md5.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_pkcs11.c
ne_redirect.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_request.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_session.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_socket.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_socks.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_sspi.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_string.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_uri.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_utils.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_207.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_xml.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_xmlreq.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
Создание кода...
Компиляция...
ne_oldacl.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_acl3744.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_props.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_locks.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1912): warning C4005: snprintf: изменение макроопределения
C:\NEON\neon-0.32.2\src\config.h(62): note: см. предыдущее определение "snprintf"
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt\stdio.h(1914): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
ne_stubssl.c
Создание кода...
NMAKE : fatal error U1077: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\cl.exe" : возвращенный код "0x2"
Stop.

Setting KRB5_CONFIG causes misbehaving configure script

Describe the bug
If KRB5_CONFIG is set as an environment variable, configure fails to execute the krb5-config program and shows an error message instead. The configure script should use a different variable name or make sure to overrides the variable properly, because KRB5_CONFIG is a reserved variable name for MIT Kerberos (see https://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html).

Lines of code exhibiting the error:

neon/macros/neon.m4

Lines 1087 to 1088 in caee3ed

NEON_LIBS="$NEON_LIBS `${KRB5_CONFIG} --libs gssapi`"
CPPFLAGS="$CPPFLAGS `${KRB5_CONFIG} --cflags gssapi`"

Environment

  • neon version: master
  • OS: Debian 11

To Reproduce
export KRB5_CONFIG=/home/mtdcr/.krb5.conf; ./autogen.sh; ./configure

Debugging output

checking for krb5-config... /home/mtdcr/.krb5.conf
./configure: line 7346: /home/mtdcr/.krb5.conf: Permission denied
./configure: line 7347: /home/mtdcr/.krb5.conf: Permission denied

Test ssl:pkcs11 fails with GnuTLS and enabled support for PKCS#11

Neon 0.32.2 + GnuTLS 3.7.3 + PaKChoiS 0.4 fails test ssl:pkcs11:
(Gentoo GNU/Linux, x86_64)

uri-tests............. 15/15 passed 
util-tests............  9/ 9 passed 
string-tests.......... 31/32 SKIPPED - strhash_sha_512_256 (SHA-2-512/256 not supported)
string-tests.......... 31/32 passed (1 skipped) 
socket................  8/47 WARNING: reverse lookup for 127.0.0.1 got '...'
socket................ 47/47 passed (1 warning)
session...............  8/ 8 passed 
request............... 92/92 passed 
auth..................  9/21 SKIPPED - digest_sha512_256 (SHA-512/256 not supported)
auth.................. 20/21 passed (1 skipped) 
basic................. 11/11 passed 
stubs.................  1/ 1 passed 
redirect..............  6/ 6 passed 
socket-ssl............  9/48 WARNING: reverse lookup for 127.0.0.1 got '...'
socket-ssl............ 48/48 passed (1 warning)
ssl................... 13/63 WARNING: no friendly name given
ssl................... 62/63 server child failed (pkcs11): SSL accept failed: SSL error: Certificate is required.
ssl................... 62/63 FAIL - pkcs11 (line 277: HTTP error:
Could not read status line: connection was closed by server)
ssl................... 63/63 server child failed (pkcs11_dsa): SSL accept failed: SSL error: Certificate is required.
ssl................... 63/63 XFAIL - pkcs11_dsa (line 277: HTTP error:
Could not read status line: connection was closed by server)
ssl................... 62/63 passed, 1 failed (1 warning)
compress.............. 22/22 passed 
xml...................  5/ 5 passed 
xmlreq................  3/ 3 passed 
oldacl................  4/ 4 passed 
acl3744...............  4/ 4 passed 
props.................  7/ 7 passed 
lock.................. 16/16 passed 
make[1]: *** [Makefile:74: check] Error 1

When using GnuTLS 3.7.3 and support for PKCS#11 is disabled, then test ssl:pkcs11 and another test are skipped:

uri-tests............. 15/15 passed 
util-tests............  9/ 9 passed 
string-tests.......... 31/32 SKIPPED - strhash_sha_512_256 (SHA-2-512/256 not supported)
string-tests.......... 31/32 passed (1 skipped) 
socket................  8/47 WARNING: reverse lookup for 127.0.0.1 got '...'
socket................ 47/47 passed (1 warning)
session...............  8/ 8 passed 
request............... 92/92 passed 
auth..................  9/21 SKIPPED - digest_sha512_256 (SHA-512/256 not supported)
auth.................. 20/21 passed (1 skipped) 
basic................. 11/11 passed 
stubs.................  1/ 1 passed 
redirect..............  6/ 6 passed 
socket-ssl............  9/48 WARNING: reverse lookup for 127.0.0.1 got '...'
socket-ssl............ 48/48 passed (1 warning)
ssl................... 13/63 WARNING: no friendly name given
ssl................... 62/63 SKIPPED - pkcs11 (pakchois library required for PKCS#11 support)
ssl................... 63/63 SKIPPED - pkcs11_dsa (pakchois library required for PKCS#11 support)
ssl................... 61/63 passed (2 skipped) (1 warning)
compress.............. 22/22 passed 
xml...................  5/ 5 passed 
xmlreq................  3/ 3 passed 
oldacl................  4/ 4 passed 
acl3744...............  4/ 4 passed 
props.................  7/ 7 passed 
lock.................. 16/16 passed

When using OpenSSL 1.1.1m + PaKChoiS 0.4, then test ssl:pkcs11 passes:

uri-tests............. 15/15 passed 
util-tests............  9/ 9 passed 
string-tests.......... 32/32 passed 
socket................  8/47 WARNING: reverse lookup for 127.0.0.1 got '...'
socket................ 47/47 passed (1 warning)
session...............  8/ 8 passed 
request............... 92/92 passed 
auth.................. 21/21 passed 
basic................. 11/11 passed 
stubs.................  1/ 1 passed 
redirect..............  6/ 6 passed 
socket-ssl............  9/48 WARNING: reverse lookup for 127.0.0.1 got '...'
socket-ssl............ 22/48 SKIPPED - ssl_session_id (zero-length session ID, cannot test further)
socket-ssl............ 47/48 passed (1 skipped) (1 warning)
ssl................... 63/63 server child failed (pkcs11_dsa): SSL accept failed: SSL error: peer did not return a certificate
ssl................... 63/63 XFAIL - pkcs11_dsa (line 277: HTTP error:
Could not read status line (TLS client certificate was requested): SSL error: tlsv13 alert certificate required)
ssl................... 63/63 passed 
compress.............. 22/22 passed 
xml...................  5/ 5 passed 
xmlreq................  3/ 3 passed 
oldacl................  4/ 4 passed 
acl3744...............  4/ 4 passed 
props.................  7/ 7 passed 
lock.................. 16/16 passed

autogen.sh uses echo -n which is not POSIX

Describe the bug
Running LIBTOOLIZE=glibtoolize ./autogen.sh on macOS:

-n libtoolize...
-n aclocal...
-n autoheader...
-n autoconf...
okay.

-n should not be printed. It is happening because you are using echo -n, which is not POSIX. To print a line without a following newline, use printf (which is POSIX) instead of echo -n.

Environment

  • neon version: master
  • OS: macOS
  • SSL library version: N/A

To Reproduce
Run LIBTOOLIZE=glibtoolize ./autogen.sh on macOS.

Debugging output
N/A

Authentication for SSL-via-proxy (CONNECT request) regressed

Describe the bug
It appears that CONNECT authentication broke in 0.32 since the "*" request-URI is not treated as inside the Basic auth scope for proxy auth.

Environment

  • neon version: 0.32.1

To Reproduce
SSL via proxy auth

Debugging output
e.g. for auth_proxy_tunnel in ssl.c - which is not actually testing the auth response

auth: Sending 'Basic' response.
auth: '443' is inside auth domain: 0.
Sending request headers:
CONNECT localhost:443 HTTP/1.1
Connection: TE
TE: trailers
Host: localhost

non-ascii character in html body response

Hi,

my webdav server reports non-ascii characters in the propery find response:

<D:response> <D:href>/webdav.php/[email protected]/storage/blä/</D:href> <D:propstat> <D:prop> <D:resourcetype> <D:collection /> </D:resourcetype> <D:getcontenttype>httpd/unix-directory</D:getcontenttyp Jun 02 09:37:31 Burgknecht mount.davfs[15822]: e> <D:creationdate>Fri, 02 Jun 2023 07:10:57 +0000</D:creationdate> <D:getlastmodified>Fri, 02 Jun 2023 07:10:57 +0000</D:getlastmodified> <D:getetag>W/"69f8fe67e70f13b465bcf63e4f34ad8b"</D:getetag> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response>

Is there any work around for this? Thank you!

Guido

RFC 7617 updates for Basic auth

Update Basic auth support for RFC 7617, specifically the new scoping rules.

Also charset, though unclear whether it's necessary to do anything here.

test failures with OpenSSL 3.0

Describe the bug
Multiple failures in EOF handling (may be related to #27) running socket-ssl tests when built against OpenSSL 3.0.0 alpha 16:

13. read_close............ FAIL (read got error not closure: `SSL error: unexpected eof while reading')
14. peek_close............ FAIL (peek gave -1 not closure)
15. single_read........... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
16. single_peek........... pass
17. small_reads........... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
18. read_and_peek......... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
19. larger_read........... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
20. ssl_session_id........ SKIPPED (zero-length session ID, cannot test further)
21. cipher................ FAIL (read got error not closure: `SSL error: unexpected eof while reading')
22. line_simple........... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
23. line_closure.......... FAIL (readline got -1 not EOF: SSL error: unexpected eof while reading)
24. line_empty............ FAIL (read got error not closure: `SSL error: unexpected eof while reading')
25. line_toolong.......... pass
26. line_overflow......... pass
27. line_mingle........... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
28. line_chunked.......... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
29. line_long_chunked..... pass
30. small_writes.......... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
31. large_writes.......... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
32. large_writev.......... FAIL (read got error not closure: `SSL error: unexpected eof while reading')
33. echo_lines............ pass
34. blocking.............. pass
35. prebind............... pass
36. error................. pass
37. ssl_closure........... pass
38. ssl_truncate.......... FAIL (socket got error -1 not truncation: `SSL error: unexpected eof while reading')

Plus similar with ssl, and then auth_tunnel_creds hangs:

14. simple_eof............ FAIL (request failed: Could not read response body: SSL error: unexpected eof while reading)
15. empty_truncated_eof... FAIL (request failed: Could not read response body: SSL error: unexpected eof while reading)
...
57. auth_tunnel_creds..... 

Environment

  • neon version: 0.31.2
  • OS: Linux
  • SSL library version: OpenSSL 3.0.0-alpha16

Could not authenticate to server: legacy Digest challenge not supported

Describe the bug

I want to connect to a WebDAV server via HTTPS (bitrix24.net). I suspect the server admins changed the config on their side, because it used to work until recently. Access with the Linux file browser Dolphin still works, but tools which make use of libneon, such as cadaver or mount.davfs, can no longer connect. They fail with Could not authenticate to server: legacy Digest challenge not supported.

I noticed that NE_AUTH_LEGACY_DIGEST is disabled by default, even when NE_AUTH_ALL is set. When I recompile a hacked libneon with this auth method enabled, then authentication fails with Could not authenticate to server: could not handle non-ASCII username in Digest challenge. The username is an email address containing only ASCII characters (including ., _, and @).

Environment

  • neon version: 0.32.2
  • OS: Kubuntu 22.04
  • SSL library version: OpenSSL 3.0.2

To Reproduce

One needs a Bitrix24 account to reproduce, I guess. This is the only server where I have noticed this issue. So not straightforward to reproduce, sorry. But I am willing to provide whatever debug info is required.

Debugging output
This is the debug output of ne_debug_init(stderr, NE_DBG_HTTPAUTH);:

auth: Create for WWW-Authenticate
auth: Post-send (#0), code is 401 (want 401), WWW-Authenticate is Digest realm="Bitrix Site Manager", nonce="6cbf91f91941c"
auth: Got challenge (code 401).
auth: Got 'Digest' challenge.
auth: Trying Digest challenge...
auth: No challenges accepted.
Could not open collection:
Could not authenticate to server: legacy Digest challenge not supported

cookie support?

I have a customer that needs cookie support in his FOSS WebDAV-client. It is a long stack and on the bottom is neon. I wonder on what layer I should implement that on.

neon has a history of adding and removing cookie support. I feel cookie support is orthogonal to WebDAV and should be implemented elsewhere, but if cookie-support is in demand in neon, I would implement it here. Please let me know if you're interested.

deprecated OpenSSL 3.0 API warnings

Describe the bug
A few deprecation warnings when building against OpenSSL 3.0 should be addressed:

ne_md5.c: In function 'ne_md5_create_ctx':
ne_md5.c:377:5: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  377 |     if (MD5_Init(&ctx->ctx) != 1) {
      |     ^~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~
ne_md5.c: In function 'ne_md5_process_block':
ne_md5.c:388:5: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  388 |     MD5_Update(&ctx->ctx, buffer, len);
      |     ^~~~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
ne_md5.c: In function 'ne_md5_process_bytes':
ne_md5.c:394:5: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  394 |     MD5_Update(&ctx->ctx, buffer, len);
      |     ^~~~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
ne_md5.c: In function 'ne_md5_finish_ctx':
ne_md5.c:399:5: warning: 'MD5_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  399 |     MD5_Final(resbuf, &ctx->ctx);
      |     ^~~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
      |                           ^~~~~~~~~
ne_md5.c: In function 'ne_md5_reset_ctx':
ne_md5.c:411:5: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  411 |     MD5_Init(&ctx->ctx);
      |     ^~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~

and

ne_md5.c: In function 'ne_md5_create_ctx':
ne_md5.c:377:5: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  377 |     if (MD5_Init(&ctx->ctx) != 1) {
      |     ^~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~
ne_md5.c: In function 'ne_md5_process_block':
ne_md5.c:388:5: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  388 |     MD5_Update(&ctx->ctx, buffer, len);
      |     ^~~~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
ne_md5.c: In function 'ne_md5_process_bytes':
ne_md5.c:394:5: warning: 'MD5_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  394 |     MD5_Update(&ctx->ctx, buffer, len);
      |     ^~~~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~
ne_md5.c: In function 'ne_md5_finish_ctx':
ne_md5.c:399:5: warning: 'MD5_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  399 |     MD5_Final(resbuf, &ctx->ctx);
      |     ^~~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
      |                           ^~~~~~~~~
ne_md5.c: In function 'ne_md5_reset_ctx':
ne_md5.c:411:5: warning: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  411 |     MD5_Init(&ctx->ctx);
      |     ^~~~~~~~
In file included from ne_md5.c:34:
/usr/include/openssl/md5.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c);
      |                           ^~~~~~~~

could not reslove hostname host not found

when i use a same session (ne_session_create with a host), and everytime i use post, i create a request once and destory it imedially.

i often encounter the 'could not reslo ehostname' error, and after a while, it will be right by itself.

why this error happen? How can we avoid this kind of mistake?

0.32.5: missing doc/ files

Looks like on generate man page xmlto shows some warnings

[tkloczko@pers-jacek neon-0.32.5]$ make
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/neon-0.32.5/src'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/tkloczko/rpmbuild/BUILD/neon-0.32.5/src'
rm -rf doc/man; mkdir -p doc/man
xmlto -o `pwd`/doc/man -x ./doc/man.xsl man ./doc/manual.xml
warning: failed to load external entity "/home/tkloczko/rpmbuild/BUILD/neon-0.32.5/doc/date.xml"
warning: failed to load external entity "/home/tkloczko/rpmbuild/BUILD/neon-0.32.5/doc/version.xml"

"make install" fails ( tag : 0.31.2 )

Installing ne_uri.h into /tmp/abc/include/neon
/usr/bin/install: cannot stat './doc/man/*.3': No such file or directory
/usr/bin/install: cannot stat './doc/html/*.html'make: *** [Makefile:140: install-man] Error 1
make: *** Waiting for unfinished jobs....
: No such file or directory
make: *** [Makefile:133: install-html] Error 1

Double SSL_shutdown in neon 0.31.0 causes hang when closing a connection to login.live.com

Since the change b19bb81, neon now calls SSL_shutdown twice. Indeed, this seems to be the right thing to do. Unfortunately it causes a hang when closing a connection to login.live.com. It's very well possible that it's a server-side issue. I'm posting it anyway, in case others face the problem, as this is a major server.

A simple code to reproduce the problem:

ne_session * session = ne_session_create("https", "login.live.com", 443);
ne_ssl_set_verify(session, dummy_verify, 0);
ne_request * request = ne_request_create(session, "GET", "/");
ne_request_dispatch(request);
ne_request_destroy(request);
ne_session_destroy(session);

dummy_verify can be a dummy function like:

int dummy_verify(void *, int, const ne_ssl_certificate *)
{
    return 0;
}

The code hangs in ne_session_destroy, in the second call to SSL_shutdown (it times out eventually).

Built against OpenSSL 1.1.1e.

Neon skipping Negotiate authentication challenges

Describe the bug
I'm configuring a new device with my previous configuration, and there seems to be a feature regression. Neon (within davfs2) looks to be skipping Negotiate authentication challenges on my new device. Specifically, on the impacted environment, Neon looks to be ignoring the Negotiate challenge in the WWW-Authenticate header. Here's a short snippet of logging output.

Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Reading 381 bytes of response body.
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Got 381 bytes.
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_send hooks
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Post-send (#0), code is 401 (want 401), WWW-Authenticate is Negotiate, Basic realm="Corporate Login"
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Got challenge (code 401).
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Got 'Basic' challenge.
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Trying Basic challenge...
Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Basic auth scope is: /mnt/

Interestingly enough, my previous device is not impacted by this - it seems to be performing Kerberos auth just fine. It's running a different version of neon/different OS, but I'm not sure if that's the issue at-hand here. Here's a snippet from those logs, note how the Negotiate challenge is tried first (truncated because it's a real token and davfs2 works thereafter):

Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Reading 381 bytes of response body.
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Got 381 bytes.
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Running post_send hooks
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: ah_post_send (#0), code is 401 (want 401), WWW-Authenticate is Negotiate, Basic realm="ANT (Windows) Login"
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Got challenge (code 401).
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Got 'Negotiate' challenge.
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Got 'Basic' challenge.
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Trying Negotiate challenge...
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: gssapi: init_sec_context OK. (major=1)
Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: gssapi: Output token: [YIIKvwYJKoZIhvcSAQIC...

davfs2 has informed its users that it does not set Kerberos-specific settings, and that all transport-related behavior is within neon. It can provide credentials to neon, but neither environment is configured to do so.

Impacted Environment

  • neon version: 0.32.2-1
  • OS: Ubuntu 22.04
  • SSL library version: OpenSSL 3.0.2 15 Mar 2022

Unimpacted Environment

  • neon version: 0.30.2-4
  • OS: Ubuntu 20.04
  • SSL library version: OpenSSL 1.1.1f 31 Mar 2020

To Reproduce

  1. Install Ubuntu 22.04
  2. Install davfs2 and libneon27
  3. Configure Ubuntu for Kerberos logon with sssd
  4. Connect davfs2 to a webdav endpoint using Kerberos authentication
  5. Observe that davfs2 is unable to perform Kerberos authentication

Debugging output

Full unimpacted device log output Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: davfs2 1.5.5 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: /sbin/mount.davfs https://webdav.corp.example.com/mnt/ /home/CORP.EXAMPLE.COM/aph3rson/Drive -o rw,noexec,nosuid,nodev,conf=/etc/davfs2/corporate.conf,uid=630783448,gid=600260513,file_mode=600,dir_mode=700,user Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Configuration: Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: url: https://webdav.corp.example.com/mnt/ Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: mount point: /home/CORP.EXAMPLE.COM/aph3rson/Drive Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: dav_user: davfs2 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: dav_group: davfs2 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: conf: /etc/davfs2/corporate.conf Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: user: 1 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: netdev: 1 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: grpid: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: mopts: 0xc0ed000e Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: kernel_fs: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: buf_size: 0 KiB Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: uid: 630783448 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: gid: 600260513 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: dir_mode: 040700 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: file_mode: 0100600 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: scheme: https Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: host: webdav.corp.example.com Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: port: 443 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: path: /mnt/ Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: trust_ca_cert: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: trust_server_cert: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: secrets: /home/CORP.EXAMPLE.COM/aph3rson/.davfs2/secrets Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: clicert: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: p_host: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: p_port: 8080 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: useproxy: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: askauth: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: locks: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: lock_owner: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: lock_timeout: 1800 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: lock_refresh: 60 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: expect100: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: if_match_bug: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: drop_weak_etags: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: n_cookies: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: precheck: 1 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: ignore_dav_header: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: use_compression: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: follow_redirect: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: connect_timeout: 10 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: read_timeout: 30 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: retry: 30 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: max_retry: 300 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: s_charset: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: header: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: sys_cache: /var/cache/davfs2 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: cache_dir: /home/CORP.EXAMPLE.COM/aph3rson/.davfs2/cache Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: backup_dir: lost+found Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: cache_size: 50 MiB Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: table_size: 1024 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: dir_refresh: 60 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: file_refresh: 1 s Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: delay_upload: 10 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: gui_optimize: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: minimize_mem: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: debug: 0xf Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: neon_debug: 0x1b Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: mounts in: /proc/mounts Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: uid ok Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: gid ok Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: memeber of group davfs2 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Secrets: Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: username: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: cl_username: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: password: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: p_user: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: p_passwd: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: clicert_pw: (null) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: PID file: /var/run/mount.davfs/home-CORP.EXAMPLE.COM-aph3rson-Drive.pid Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: changing persona: euid 630783448, gid 130 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Initializing webdav Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: HTTP session to https://webdav.corp.example.com:443 begins. Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Initializing cache Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Alignment of dav_node: 16 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Checking cache directory Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: /home/CORP.EXAMPLE.COM/aph3rson/.davfs2/cache/webdav.corp.example.com-mnt+home-CORP.EXAMPLE.COM-aph3rson-Drive+aph3rson Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: (nil)->0x55809973f7a0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Reading stored cache data Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f7a0->0x55809973f6d0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809973f610 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099713d50 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x5580997195d0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809973b2e0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749260 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x5580997493a0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749500 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749740 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x5580997497e0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749a10 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749ad0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749c30 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099749e70 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a0b0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a170 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a3a0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a440 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a680 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a800 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974a9a0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974ab80 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974ac40 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750b80 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750de0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750ee0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099751080 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099751220 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x5580997513c0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974ca50 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974cbf0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974cd90 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974cf30 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974d0d0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974d270 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974d410 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974d670 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974d770 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974d910 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974dab0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974dc50 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974deb0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974dfb0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974e150 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974e380 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974e530 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974e630 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974e7d0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974e970 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974eab0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974ebf0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974ede0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974ee80 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974efc0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f100 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f240 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f410 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f540 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f5e0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f720 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f860 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974f9a0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974fae0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974fc20 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974fe10 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974feb0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809974fff0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750130 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750270 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750440 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x5580997504e0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750620 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099750760 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x5580997508a0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759570 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759710 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759940 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759a40 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759be0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759d80 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x558099759f20 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809975a0c0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: new node: 0x55809973f6d0->0x55809975a2f0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: ah_create, for WWW-Authenticate Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Running pre_send hooks Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Sending request headers: OPTIONS /mnt/ HTTP/1.1 User-Agent: davfs2/1.5.5 neon/0.30.2 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: webdav.corp.example.com Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Sending request-line and headers: Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Doing DNS lookup on webdav.corp.example.com... Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: req: Connecting to 10.187.230.67:443 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Request sent; retry is 0. Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [status-line] < HTTP/1.1 200 OK Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Server: Server Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [server], Value: [Server] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Date: Wed, 18 Jan 2023 01:10:27 GMT Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [date], Value: [Wed, 18 Jan 2023 01:10:27 GMT] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Content-Length: 0 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [content-length], Value: [0] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Connection: keep-alive Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [connection], Value: [keep-alive] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Dav: 1, 2 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [dav], Value: [1, 2] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Cache-Control: no-cache Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [cache-control], Value: [no-cache] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Strict-Transport-Security: max-age=631138519 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [strict-transport-security], Value: [max-age=631138519] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Permitted-Cross-Domain-Policies: none Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-permitted-cross-domain-policies], Value: [none] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-XSS-Protection: 1; mode=block Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-xss-protection], Value: [1; mode=block] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Ms-Author-Via: DAV Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [ms-author-via], Value: [DAV] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Request-Id: 756c927d-5e68-4118-8567-15f9338bae58 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-request-id], Value: [756c927d-5e68-4118-8567-15f9338bae58] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Download-Options: noopen Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-download-options], Value: [noopen] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Runtime: 0.001254 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-runtime], Value: [0.001254] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Frame-Options: sameorigin Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-frame-options], Value: [sameorigin] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Content-Type-Options: nosniff Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-content-type-options], Value: [nosniff] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Allow: OPTIONS,HEAD,GET,PUT,POST,DELETE,PROPFIND,PROPPATCH,MKCOL,COPY,MOVE Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [allow], Value: [OPTIONS,HEAD,GET,PUT,POST,DELETE,PROPFIND,PROPPATCH,MKCOL,COPY,MOVE] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Allow-Credentials: true Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-allow-credentials], Value: [true] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Allow-Methods: OPTIONS,GET,PATCH,DELETE Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-allow-methods], Value: [OPTIONS,GET,PATCH,DELETE] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Allow-Headers: X-Requested-With,Content-type,Accept,Origin Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-allow-headers], Value: [X-Requested-With,Content-type,Accept,Origin] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Max-Age: 200 Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-max-age], Value: [200] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Status: 200 OK Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [status], Value: [200 OK] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Strict-Transport-Security: max-age=31536000; includeSubDomains Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [strict-transport-security], Value: [max-age=31536000; includeSubDomains] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] X-Robots-Tag: noindex, nofollow Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Header Name: [x-robots-tag], Value: [noindex, nofollow] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: [hdr] Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: End of headers. Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Running post_headers hooks Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Running post_send hooks Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: ah_post_send (#0), code is 200 (want 401), WWW-Authenticate is (none) Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Request ends, status 200 class 2xx, error line: 200 OK Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Running destroy hooks. Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Request ends. Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: ah_create, for WWW-Authenticate Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Running pre_send hooks Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Sending request headers: PROPFIND /mnt/ HTTP/1.1 User-Agent: davfs2/1.5.5 neon/0.30.2 Connection: TE TE: trailers Host: webdav.corp.example.com Depth: 1 Content-Length: 257 Content-Type: application/xml Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Sending request-line and headers: Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Sending request body: Jan 17 17:10:27 old-pc-hostname mount.davfs[70265]: Request sent; retry is 1. Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [status-line] < HTTP/1.1 401 Unauthorized Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Server: Server Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [server], Value: [Server] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Date: Wed, 18 Jan 2023 01:10:27 GMT Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [date], Value: [Wed, 18 Jan 2023 01:10:27 GMT] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Content-Type: text/html; charset=iso-8859-1 Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [content-type], Value: [text/html; charset=iso-8859-1] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Content-Length: 381 Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [content-length], Value: [381] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Connection: keep-alive Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [connection], Value: [keep-alive] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Allow-Credentials: true Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-allow-credentials], Value: [true] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Allow-Methods: OPTIONS,GET,PATCH,DELETE Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-allow-methods], Value: [OPTIONS,GET,PATCH,DELETE] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Allow-Headers: X-Requested-With,Content-type,Accept,Origin Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-allow-headers], Value: [X-Requested-With,Content-type,Accept,Origin] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Access-Control-Max-Age: 200 Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [access-control-max-age], Value: [200] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] WWW-Authenticate: Negotiate Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [www-authenticate], Value: [Negotiate] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] WWW-Authenticate: Basic realm="Corporate Login" Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Header Name: [www-authenticate], Value: [Basic realm="Corporate Login"] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: [hdr] Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: End of headers. Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Running post_headers hooks Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Reading 381 bytes of response body. Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Got 381 bytes. Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: Running post_send hooks Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: ah_post_send (#0), code is 401 (want 401), WWW-Authenticate is Negotiate, Basic realm="Corporate Login" Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Got challenge (code 401). Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Got 'Negotiate' challenge. Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Got 'Basic' challenge. Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: auth: Trying Negotiate challenge... Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: gssapi: init_sec_context OK. (major=1) Jan 17 17:10:28 old-pc-hostname mount.davfs[70265]: gssapi: Output token: [YIIKvwYJKoZIhvcSAQIC... ```
Full impacted device log output Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: davfs2 1.6.1 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: /sbin/mount.davfs https://webdav.corp.example.com/mnt/ /home/CORP.EXAMPLE.COM/aph3rson/Drive -o rw,noexec,nosuid,nodev,conf=/etc/davfs2/corporate.conf,uid=630783448,gid=600260513,file_mode=600,dir_mode=700,user Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Configuration: Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: url: https://webdav.corp.example.com/mnt/ Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: mount point: /home/CORP.EXAMPLE.COM/aph3rson/Drive Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: dav_user: davfs2 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: dav_group: davfs2 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: conf: /etc/davfs2/corporate-drive.conf Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: user: 1 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: netdev: 1 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: grpid: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: mopts: 0xc0ed000e Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: buf_size: 0 KiB Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: uid: 630783448 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: gid: 600260513 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: dir_mode: 040700 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: file_mode: 0100600 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: scheme: https Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: host: webdav.corp.example.com Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: port: 443 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: path: /mnt/ Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: trust_ca_cert: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: trust_server_cert: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: secrets: /home/CORP.EXAMPLE.COM/aph3rson/.davfs2/secrets Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: clicert: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: p_host: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: p_port: 8080 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: useproxy: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: askauth: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: locks: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: lock_owner: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: lock_timeout: 1800 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: lock_refresh: 60 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: expect100: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: if_match_bug: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: drop_weak_etags: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: n_cookies: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: precheck: 1 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: ignore_dav_header: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: use_compression: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: follow_redirect: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: sharepoint_href_bug: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: connect_timeout: 10 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: read_timeout: 30 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: retry: 30 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: max_retry: 300 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: s_charset: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: header: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: sys_cache: /var/cache/davfs2 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: cache_dir: /home/CORP.EXAMPLE.COM/aph3rson/.davfs2/cache Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: backup_dir: lost+found Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: cache_size: 50 MiB Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: table_size: 1024 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: dir_refresh: 60 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: file_refresh: 1 s Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: delay_upload: 10 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: gui_optimize: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: minimize_mem: 0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: debug: 0xf Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: neon_debug: 0x1b Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: mounts in: /proc/mounts Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: uid ok Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: gid ok Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: memeber of group davfs2 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Secrets: Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: username: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: cl_username: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: password: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: p_user: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: p_passwd: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: clicert_pw: (null) Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: PID file: /var/run/mount.davfs/home-CORP.EXAMPLE.COM-aph3rson-Drive.pid Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: changing persona: euid 630783448, gid 140 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Initializing webdav Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: HTTP session to https://webdav.corp.example.com:443 begins. Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Initializing cache Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Alignment of dav_node: 16 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Checking cache directory Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: /home/CORP.EXAMPLE.COM/aph3rson/.davfs2/cache/webdav.corp.example.com-mnt+home-CORP.EXAMPLE.COM-aph3rson-Drive+aph3rson Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: new node: (nil)->0x561b8ffec1d0 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Reading stored cache data Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: new node: 0x561b8ffec1d0->0x561b8ffec130 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: auth: Create for WWW-Authenticate Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Running pre_send hooks Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Sending request headers: OPTIONS /mnt/ HTTP/1.1 User-Agent: davfs2/1.6.1 neon/0.32.2 Keep-Alive: Connection: TE, Keep-Alive TE: trailers Host: webdav.corp.example.com Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Sending request-line and headers: Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Doing DNS lookup on webdav.corp.example.com... Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: req: Connecting to 10.187.230.67:443 Jan 17 17:11:42 my.fqdn.host.name mount.davfs[42476]: Request sent; retry is 0. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [status-line] < HTTP/1.1 200 OK Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Server: Server Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [server], Value: [Server] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Date: Wed, 18 Jan 2023 01:11:43 GMT Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [date], Value: [Wed, 18 Jan 2023 01:11:43 GMT] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Content-Length: 0 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [content-length], Value: [0] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Connection: keep-alive Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [connection], Value: [keep-alive] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Dav: 1, 2 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [dav], Value: [1, 2] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Cache-Control: no-cache Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [cache-control], Value: [no-cache] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Strict-Transport-Security: max-age=631138519 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [strict-transport-security], Value: [max-age=631138519] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Permitted-Cross-Domain-Policies: none Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-permitted-cross-domain-policies], Value: [none] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-XSS-Protection: 1; mode=block Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-xss-protection], Value: [1; mode=block] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Ms-Author-Via: DAV Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [ms-author-via], Value: [DAV] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Request-Id: d72a5137-b2c8-4746-831f-045992af09c5 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-request-id], Value: [d72a5137-b2c8-4746-831f-045992af09c5] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Download-Options: noopen Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-download-options], Value: [noopen] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Runtime: 0.001755 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-runtime], Value: [0.001755] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Frame-Options: sameorigin Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-frame-options], Value: [sameorigin] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Content-Type-Options: nosniff Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-content-type-options], Value: [nosniff] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Allow: OPTIONS,HEAD,GET,PUT,POST,DELETE,PROPFIND,PROPPATCH,MKCOL,COPY,MOVE Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [allow], Value: [OPTIONS,HEAD,GET,PUT,POST,DELETE,PROPFIND,PROPPATCH,MKCOL,COPY,MOVE] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Credentials: true Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-credentials], Value: [true] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Methods: OPTIONS,GET,PATCH,DELETE Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-methods], Value: [OPTIONS,GET,PATCH,DELETE] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Headers: X-Requested-With,Content-type,Accept,Origin Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-headers], Value: [X-Requested-With,Content-type,Accept,Origin] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Max-Age: 200 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-max-age], Value: [200] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Status: 200 OK Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [status], Value: [200 OK] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Strict-Transport-Security: max-age=31536000; includeSubDomains Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [strict-transport-security], Value: [max-age=31536000; includeSubDomains] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] X-Robots-Tag: noindex, nofollow Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [x-robots-tag], Value: [noindex, nofollow] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: End of headers. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_headers hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_send hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Post-send (#0), code is 200 (want 401), WWW-Authenticate is (none) Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Request ends, status 200 class 2xx, error line: 200 OK Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running destroy hooks. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Request ends. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Create for WWW-Authenticate Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running pre_send hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Sending request headers: PROPFIND /mnt/ HTTP/1.1 User-Agent: davfs2/1.6.1 neon/0.32.2 Connection: TE TE: trailers Host: webdav.corp.example.com Depth: 1 Content-Length: 257 Content-Type: application/xml Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Sending request-line and headers: Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Sending request body: Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Request sent; retry is 1. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [status-line] < HTTP/1.1 401 Unauthorized Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Server: Server Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [server], Value: [Server] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Date: Wed, 18 Jan 2023 01:11:43 GMT Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [date], Value: [Wed, 18 Jan 2023 01:11:43 GMT] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Content-Type: text/html; charset=iso-8859-1 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [content-type], Value: [text/html; charset=iso-8859-1] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Content-Length: 381 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [content-length], Value: [381] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Connection: keep-alive Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [connection], Value: [keep-alive] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Credentials: true Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-credentials], Value: [true] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Methods: OPTIONS,GET,PATCH,DELETE Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-methods], Value: [OPTIONS,GET,PATCH,DELETE] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Headers: X-Requested-With,Content-type,Accept,Origin Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-headers], Value: [X-Requested-With,Content-type,Accept,Origin] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Max-Age: 200 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-max-age], Value: [200] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] WWW-Authenticate: Negotiate Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [www-authenticate], Value: [Negotiate] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] WWW-Authenticate: Basic realm="Corporate Login" Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [www-authenticate], Value: [Basic realm="Corporate Login"] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: End of headers. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_headers hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Reading 381 bytes of response body. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Got 381 bytes. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_send hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Post-send (#0), code is 401 (want 401), WWW-Authenticate is Negotiate, Basic realm="Corporate Login" Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Got challenge (code 401). Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Got 'Basic' challenge. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Trying Basic challenge... Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Basic auth scope is: /mnt/ Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Accepted Basic challenge. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running pre_send hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Sending 'Basic' response. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: '/mnt/' is inside auth domain: 1. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Sending request headers: PROPFIND /mnt/ HTTP/1.1 User-Agent: davfs2/1.6.1 neon/0.32.2 Connection: TE TE: trailers Host: webdav.corp.example.com Depth: 1 Content-Length: 257 Content-Type: application/xml Authorization: Basic Ohgr848bVg== Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Sending request-line and headers: Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Sending request body: Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Request sent; retry is 1. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [status-line] < HTTP/1.1 401 Unauthorized Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Server: Server Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [server], Value: [Server] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Date: Wed, 18 Jan 2023 01:11:43 GMT Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [date], Value: [Wed, 18 Jan 2023 01:11:43 GMT] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Content-Type: text/html; charset=iso-8859-1 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [content-type], Value: [text/html; charset=iso-8859-1] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Content-Length: 381 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [content-length], Value: [381] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Connection: keep-alive Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [connection], Value: [keep-alive] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Credentials: true Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-credentials], Value: [true] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Methods: OPTIONS,GET,PATCH,DELETE Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-methods], Value: [OPTIONS,GET,PATCH,DELETE] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Allow-Headers: X-Requested-With,Content-type,Accept,Origin Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-allow-headers], Value: [X-Requested-With,Content-type,Accept,Origin] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Access-Control-Max-Age: 200 Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [access-control-max-age], Value: [200] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] WWW-Authenticate: Basic realm="Corporate Login" Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Header Name: [www-authenticate], Value: [Basic realm="Corporate Login"] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: [hdr] Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: End of headers. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_headers hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Reading 381 bytes of response body. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Got 381 bytes. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running post_send hooks Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Post-send (#1), code is 401 (want 401), WWW-Authenticate is Basic realm="Corporate Login" Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Got challenge (code 401). Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Got 'Basic' challenge. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: Trying Basic challenge... Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: authentication failure: Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Corporate Login Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: auth: No challenges accepted. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Request ends, status 401 class 4xx, error line: Could not authenticate to server: rejected Basic challenge Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Running destroy hooks. Jan 17 17:11:43 my.fqdn.host.name mount.davfs[42476]: Request ends. ```

ar, ranlib detection

Some users set AR, RANLIB etc. variables to requested tools (e.g. AR="x86_64-pc-linux-gnu-ar" and RANLIB="x86_64-pc-linux-gnu-ranlib").

Handling of these variables is not too good in Neon. See: https://bugs.gentoo.org/728218

Sergei Trofimovich attached this patch:

--- a/macros/neon.m4
+++ b/macros/neon.m4
@@ -806,11 +806,11 @@ AC_DEFUN([NE_FIND_AR], [
 
 # Search in /usr/ccs/bin for Solaris
 ne_PATH=$PATH:/usr/ccs/bin
-AC_PATH_TOOL(AR, ar, notfound, $ne_PATH)
+AC_CHECK_TOOL(AR, ar, notfound, $ne_PATH)
 if test "x$AR" = "xnotfound"; then
    AC_MSG_ERROR([could not find ar tool])
 fi
-AC_PATH_TOOL(RANLIB, ranlib, :, $ne_PATH)
+AC_CHECK_TOOL(RANLIB, ranlib, :, $ne_PATH)
 
 ])

AC_PATH_TOOL macro rejects non-absolute values of variables.

Besides above:
src/Makefile.in sets these variables actually used in this file:

AR = @AR@
RANLIB = @RANLIB@

test/Makefile.in sets these variables not used in this file:

AR = ar
RANLIB = @RANLIB@

They can be dropped, but if you prefer to keep them, then AR assignment should be corrected (AR = @AR@).

Migrate docs to github.io or RTD or ...

Currently the docs are the only thing still hosted on webdav.org, these need to be moved to either github.io or somewhere else (readthedocs.io? difficult to convert from docbook to markdown)

so`make install` tries to install po/*.gmo, but those files haven't been created

Describe the bug

for d in ./doc/html/*.html; do \
	/usr/bin/install -c -m 644 $d /sw/build.build/root-neon27-0.31.2-1/sw/share/doc/neon27/html; \
done
install: ./po/cs.gmo: No such file or directory
install: ./po/de.gmo: No such file or directory
...

Environment

  • neon version: [e.g. 0.31.2]
  • OS: macOS
  • SSL library version: OpenSSL 1.1.1k

To Reproduce
Configuring with these options:

	--with-libxml2 \
	--with-ssl=openssl \
	--without-egd \
	--enable-shared \
	--disable-static \
	--with-ca-bundle=%p/etc/ssl/certs/ca-bundle.crt \
	--without-pakchois

then running make; make docs; make install and get the above failure.

Debugging output
.gmo files are created by the compile-gmo target, but nothing calls that target, so when make install calls make install-nls-yes, the process fails.
install-nls-yes should depend on compile-gmo or something similar.

Disable 2069-style weak Digest auth by default

RFC2617 is out for two decades; 2069-style Digest auth should not be supported for NE_AUTH_DEFAULT in 0.32.

An NE_AUTH_WEAK_DIGEST or similar can be defined to restore it explicitly.

The "algorithm" parameter of Digest challenge is no longer optional

I believe that neon 0.32.3, particularly 2b8e2e4, broke RFC 2617 compliance.

The algorithm parameter of Digest challenge is optional and defaults to MD5, according to section 3.2.1 of RFC 2617:

A string indicating a pair of algorithms used to produce the digest and a checksum. If this is not present it is assumed to be "MD5".

In neon 0.32.3 the absence of the parameter results in

unknown algorithm in Digest challenge

I believe that it's because in 0.32.3, the alg defaults to null, what is the same value as is used when algorithm has unknown value.

While in 0.32.2 the alg defaulted to 0, what is auth_alg_md5. But when algorithm has unknown value, the alg is auth_alg_unknown.


Thanks for keeping neon up to date!

cppcheck: check for digest authentication might be wrong

cppcheck found an issue:
Result of operator '|' is always true if one operand is non-zero. Did you intend to use '&'?

While NE_AUTH_DIGEST is defined to 0x0002 the check in ne_auth.c line 1621 will always be true.
Is this really intended?
I would prefer a check like the ones above
if ((protomask & NE_AUTH_DIGEST) == NE_AUTH_DIGEST) {
}
Should I make a pull request?

if (protomask | NE_AUTH_DIGEST) {

autogen.sh does not find glibtoolize on macOS

Describe the bug
When running ./autogen.sh on macOS:

./autogen.sh: line 16: libtoolize: command not found
./autogen.sh: line 19: libtoolize: command not found

On macOS, it's called glibtoolize.

I can overcome it by running LIBTOOLIZE=glibtoolize ./autogen.sh but I shouldn't have to do that. Other projects figure it out automatically.

Environment

  • neon version: master
  • OS: macOS
  • SSL library version: N/A

To Reproduce
Run ./autogen.sh on macOS

Debugging output
N/A

Configurable max interim response count

when sending large files, i'm always hitting the 128 response limit since updating from ubuntu 20 to 22 (which i guess has updated my cadaver/neon version). is it possible to/would you accept PRs to make this limit configurable or removeable?

thanks!

Downloading many small files causes hang with Synology NAS

When downloading many small files from Synology WebDAV server, neon causes hang while downloading.
I tried with 100-200 of 100KB-200KB files on Synology DS-120J, and hang happens after 80-100 downloads.
It maybe the Synology problem, because it works well with other servers such as Box.
After some time (around 20 min), it works again.

I set NE_SESSFLAG_PERSIST to 0 and timeout.

ne_set_session_flag(session, NE_SESSFLAG_PERSIST, 0);
ne_set_connect_timeout(session, 4);
ne_set_read_timeout(session, 4);`

Built with OpenSSL 1.1.1g.

neon also hangs if Synology server shuts down while downloading.

Any workarounds?

Build on windows failed

Describe the bug
When trying to build neon according to the instruction in INSTALL.win32 the c compiler returns with an error and the build failed.

Environment

  • neon version: 0.32.5
  • OS: Microsoft Windows 10 (Version 21H2)

To Reproduce
When running nmake /f neon.mak i got the following output:

Microsoft (R) Program Maintenance Utility, Version 14.29.30146.0
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

        cl.exe @C:\Users\EW\AppData\Local\Temp\nmC368.tmp
ne_alloc.c
ne_auth.c
src\ne_auth.c(370): error C2146: Syntaxfehler: Fehlendes ")" vor Bezeichner "NE_FMT_TIME_T"
ne_basic.c
ne_compress.c
ne_dates.c
ne_i18n.c
ne_md5.c
ne_pkcs11.c
ne_redirect.c
ne_request.c
ne_session.c
ne_socket.c
src\ne_socket.c(1442): warning C4133: "Funktion": Inkompatible Typen - von "int *" zu "const char *"
src\ne_socket.c(1567): warning C4133: "Funktion": Inkompatible Typen - von "int *" zu "const char *"
ne_socks.c
ne_sspi.c
src\ne_sspi.c(358): warning C4090: "return": Unterschiedliche "const"-Qualifizierer
ne_string.c
ne_uri.c
ne_utils.c
ne_stubssl.c
Code wird generiert...
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\cl.exe"": Rückgabe-Code "0x2"
Stop.

The error here seems to be in the file src\ne_auth.c, in line 370: The compiler expects a closing parenthesis before the identifier NE_FMT_TIME_T.

Preference order for Digest auth challenges

If the server sends multiple Digest challenges these should be tried in strength order. Currently the ordering is only by protocol (i.e. Digest > Basic) but not by algorithm strength within that protocol.

NLS not detected: implicit declaration in ./configure

Describe the bug
A fink user has reported that even when libintl and libiconv are available (via fink), neon's ./configure does not detect that i18n support is available. He's running OS X 10.15 (Xcode 12.4), which has -Werror-implicit-function-declaration by default. On older Xcode, it i18n is detected properly, but I can reproduce the non-detection by passing that -W via CFLAGS.

Environment

  • neon version: 0.32.1
  • OS: OS X 10.15

Debugging output
Compare config.log with that -Werror:

configure:17472: gcc -o conftest -Os -Werror-implicit-function-declaration  -MD -I/sw/include -no-cpp-precomp -I/sw/include -I/sw/include -I/sw/include/libxml2 -I/sw/include -Wl,-dead_strip_dylibs -L/sw/lib conftest.c  -lintl  -lz -L/sw/lib -lssl -lcrypto -dynamic -Wl,-search_paths_first -lkrb5 -L/sw/lib -lproxy -L/sw/lib -lxml2 >&5
conftest.c:120:1: error: implicit declaration of function 'bindtextdomain' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
bindtextdomain();
^
1 error generated.
configure:17472: $? = 1
[...]
configure:17502: result: not found

vs without:

configure:17472: gcc -o conftest -Os  -MD -I/sw/include -no-cpp-precomp -I/sw/include -I/sw/include -I/sw/include/libxml2 -I/sw/include -Wl,-dead_strip_dylibs -L/sw/lib conftest.c  -lintl  -lz -L/sw/lib -lssl -lcrypto -dynamic -Wl,-search_paths_first -lkrb5 -L/sw/lib -lproxy -L/sw/lib -lxml2 >&5
conftest.c:120:1: warning: implicit declaration of function 'bindtextdomain' is invalid in C99 [-Wimplicit-function-declaration]
bindtextdomain();
^
1 warning generated.
configure:17472: $? = 0
configure:17502: result: -lintl

This is another case like #45, and the same type of solution works: putting in neon.m4's NE_SEARCH_LIBS:

    bindtextdomain)
      ne__prologue="#include <libintl.h>"                                       
      ne__code="bindtextdomain(\"\",\"\");"
      ;;

Testsuite fails against openssl 1.1.1h

openssl 1.1.1h has been released, with this short release notes:

 5+- Update to 1.1.1h
 6+  * Disallow explicit curve parameters in verifications chains when X509_V_FLAG_X509_STRICT is used
 7+  * Enable 'MinProtocol' and 'MaxProtocol' to configure both TLS and DTLS contexts
 8+- refresh openssl-fips_selftest_upstream_drbg.patch
 9+  * DRBG internals got renamed back:
10+    reseed_gen_counter  -> generate_counter
11+    reseed_prop_counter -> reseed_counter

Neon (up to current master, rev 0bdf346 fails to pass the test suite with this version openssl:

socket-ssl............ 21/46 SKIPPED - ssl_session_id (zero-length session ID, cannot test further)
socket-ssl............ 45/46 passed (1 skipped) 
ssl................... 52/64 FAIL - fail_ca_notyetvalid (no error in verification callback; request rv 0 error string: 200 OK)
ssl................... 53/64 FAIL - fail_ca_expired (no error in verification callback; request rv 0 error string: 200 OK)
ssl................... 55/64 FAIL - fail_nul_cn (verification flags were 6 not 22)
ssl................... 56/64 FAIL - fail_nul_san (verification flags were 6 not 22)
ssl................... 63/64 WARNING: NSS required for PKCS#11 testing
[   67s] ssl................... 63/64 SKIPPED - pkcs11
ssl................... 64/64 WARNING: NSS required for PKCS#11 testing
[   67s] ssl................... 64/64 SKIPPED - pkcs11_dsa
ssl................... 58/64 passed, 4 failed (2 skipped) (2 warnings)

Test environment: openSUSE Tumbleweed, openssl 1.1.1h integration test project

sudo make install fails '/usr/bin/install: cannot stat 'doc/man/*.3': No such file or directory'

Describe the bug
cloned neon project
./autogen.sh
./configure.sh --with-ssl
make
sudo make install

ends with

/usr/bin/install -c -d /usr/local/share/man/man3
/usr/bin/install -c -d /usr/local/share/man/man1
for m in doc/man/*.3; do \
 /usr/bin/install -c -m 644 $m /usr/local/share/man/man3; done
/usr/bin/install: cannot stat 'doc/man/*.3': No such file or directory
make: *** [Makefile:139: install-man] Error 1

Environment

  • neon version: [master/]473bc206ffa5375862aaea9789c79114a5897f3b
  • OS: [Debian 11.6]
  • SSL library version: [] SSL library: SSL support enabled, using OpenSSL 1.1.1n

To Reproduce
git checkout 473bc20
then do all build process untill
sudo make install

Stack smashing detected when trying to change NE_ABUFSIZ (512)

Describe the bug
I use neon with davfs2 to connect to webdavs using a (long) token for password. So I need to alter the buffer size for password.
When trying to connect to webdav after changing NE_ABUFSIZ (512) in ne_auth.c, i get a *** stack smashing detected *** error.

Environment

  • neon version: 0.31.2
  • OS: Ubuntu 20.04
  • SSL library version: OpenSSL 1.1.1f

To Reproduce
Build with the following code :

#!/bin/bash

# Build and install neon
export NEON_VERSION=0.31.2
wget https://github.com/notroj/neon/archive/$NEON_VERSION.tar.gz
tar -zxvf $NEON_VERSION.tar.gz

cd ./neon-$NEON_VERSION

# Patch buffer
sudo sed -i 's/NE_ABUFSIZ (256)/NE_ABUFSIZ (512)/g' ./src/ne_auth.h

./autogen.sh && ./configure --prefix=/usr \
    --with-ssl \
    --enable-shared \
    --disable-static &&
    make &&
    sudo make install

cd ..

# Build and install davfs2
export DAVFS2_VERSION=1.6.0
wget http://download.savannah.nongnu.org/releases/davfs2/davfs2-1.6.0.tar.gz
tar -zxvf davfs2-$DAVFS2_VERSION.tar.gz
cd davfs2-$DAVFS2_VERSION

./configure &&
    make &&
    sudo make install

try to mount a webdav share with a long password

Debugging output
*** stack smashing detected ***: terminated

Crash in ne_path_escapef

Crash in ne_path_escapef

Environment

  • neon version: 0.33.0
  • OS: Fedora 39
  • SSL library version: OpenSSL 3.1.1

To Reproduce
Can't

Debugging output

Program terminated with signal SIGSEGV, Segmentation fault.
#0  ne_path_escapef (path=0x0, flags=<optimized out>) at ne_uri.c:497
497	    for (pnt = (const unsigned char *)path; *pnt != '\0'; pnt++) {
Missing separate debuginfos, use: dnf debuginfo-install davfs2-1.7.0-3.fc39.x86_64
(gdb) q

pnt isn't checked for NULL before using it.

rejected NTLM challenge

Describe the bug
While trying to connect to a WebDAV server, I'm getting this error message:

Could not authenticate to server: ignoring empty Negotiate continuation, rejected NTLM challenge

Environment

  • neon version: 7f7c94e
  • OS: Debian
  • SSL library version: OpenSSL 1.1.1n
  • davfs2 recompiled to use latest libneon

To Reproduce

mount -t davfs https://fsstud.ruhr-uni-bochum.de/<hidden> /mnt/rub/

Debugging output
Please instruct me how to.

document pls~

Describe the bug
I am new in this lib, and I can not know how to use this pretty lib... Could you please add the install and api doc?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.