Git Product home page Git Product logo

cadaver's Introduction

Build and test

cadaver

cadaver is a command-line WebDAV client, with support for file upload, download, on-screen display, in-place editing, namespace operations (move/copy), collection creation and deletion, property manipulation, and resource locking.

GitHub: https://github.com/notroj/cadaver | Web: https://notroj.github.io/cadaver/

Bugs, feature requests and patches can be sent in via the Github repository: https://github.com/notroj/cadaver/issues

cadaver is Copyright (C) 1999-2022 Joe Orton
Portions are:
Copyright (C) 85, 88, 90, 91, 1995-1999 Free Software Foundation, Inc.
Copyright (C) Free Software Foundation, Inc.
Copyright (C) GRASE Lab, UCSC

cadaver's People

Contributors

elboulangero avatar hughmcmaster avatar macrohumanity avatar notroj avatar thesamesam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cadaver's Issues

How to build with bundled neon?

Hi, afraid I'm not very good with autoconf, and I can't figure out how to build cadaver against the bundled neon code instead of using the system libraries?

(Am building cadaver with debug symbols to help troubleshoot an embedded web server, and hence want to use the bundled neon for debug info also)..

Thanks!

mget fails to get the file with Chinese name

Describe the bug
The command "mget *" fails to get the file with Chinese filename.

Environment

  • cadaver version: 0.32
  • neon version: [e.g. 0.32.0]
  • OS: Ubuntu22.04
  • SSL library version: [e.g. OpenSSL 1.1.1]

To Reproduce
The WebDav fold contains some files with Chinese name.

mget * 

Debugging output
ๆˆชๅ›พ 2023-07-04 22-58-08

Make install-nls complains about @mkdir_p@: not found

I added it to the CI: elboulangero@a30b79e

The failure on Ubuntu 18 and Ubuntu 20 is due to a mismatch in gettext version, that's why I added Ubuntu 22 to the CI.

The error can be seen at https://github.com/elboulangero/cadaver/actions/runs/3358682685/jobs/5565952239

make[2]: Leaving directory '/home/runner/work/cadaver/cadaver/po'
touch ./stamp-po
/bin/sh: 6: @mkdir_p@: not found
/usr/bin/install: cannot create regular file '/usr/local/share/locale/es/LC_MESSAGES/cadaver.mo': No such file or directory
installing es.gmo as /usr/local/share/locale/es/LC_MESSAGES/cadaver.mo
/bin/sh: 6: @mkdir_p@: not found
/usr/bin/install: cannot create regular file '/usr/local/share/locale/en@quot/LC_MESSAGES/cadaver.mo': No such file or directory

Apparently the variable @mkdir_p@ is not substituted, for some reason. It's been reported at https://savannah.gnu.org/bugs/?60201 by a Gentoo developer, but it's not clear what's the cause, or what the right fix is.

complains about certificate

Describe the bug
my SSL certificate is valid, i promise. But when I try to access my server, every time, I have to tell it to accept the certificate. (today is 2024-01-30, notably within the timeframe)

Environment

  • cadaver 0.23.3
  • neon 0.31.2: Library build, IPv6, libxml 2.9.10, zlib 1.2.11, GNU TLS 3.6.14.
  • readline 8.1
  • OS: Debian 11
  • SSL library version:OpenSSL 1.1.1w-0+deb11u1 amd64

To Reproduce

  1. have a server with a let's encrypt certificate
  2. have nextcloud on it
  3. cadaver -t https://[DOMAIN]/nextcloud/remote.php/dav/files/[USER]/

output:

WARNING: Untrusted server certificate presented for `[DOMAIN]':
Issued to: [DOMAIN]
Issued by: Let's Encrypt, US
Certificate is valid from Mon, 01 Jan 2024 01:01:28 GMT to Sun, 31 Mar 2024 01:01:27 GMT
Do you wish to accept the certificate? 

Debugging output
have to do this after connection, right?

note also
neither curl nor wget complain, so I'm quite confident my system should trust the certificate

open WARNING: Untrusted server certificate presented for

Describe the bug

Using cadaver to access my personal nextcloud instance, i have to accept the certificate while it should be accepted.
so i did test on https://nextcloud.com provider and hit same issue.

It looks like system certificate autorities are not used.

Environment

  • cadaver --version
    cadaver 0.23.3
    neon 0.31.2: Library build, IPv6, libxml 2.9.10, zlib 1.2.11, GNU TLS 3.6.14.
    readline 8.1
  • OS: debian 11.6
  • SSL library version: ldd /usr/bin/cadaver | grep tls
    libneon-gnutls.so.27 => /usr/lib/x86_64-linux-gnu/libneon-gnutls.so.27 (0x00007fba3d215000)
    libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fba3d015000)

To Reproduce

cadaver
dav:!> open https://nextcloud.com/
WARNING: Untrusted server certificate presented for `nextcloud.com':
Do you wish to accept the certificate? (y/n) y

Debugging output
For protocol issues please include neon debugging output which can be
enabled by running "set debug http" or similar in cadaver.

dav:/? set debug http
dav:/? open https://nextcloud.com/
HTTP session to https://nextcloud.com:443 begins.
Running pre_send hooks
Sending request headers:
OPTIONS / HTTP/1.1
User-Agent: cadaver/0.23.3 neon/0.31.2
Keep-Alive: 
Connection: TE, Keep-Alive
TE: trailers
Host: nextcloud.com

Sending request-line and headers:
Doing DNS lookup on nextcloud.com...
req: Connecting to 2a01:4f9:2b:29dc::155:443
WARNING: Untrusted server certificate presented for `nextcloud.com':
Issued to: nextcloud.com
Issued by: Let's Encrypt, US
Certificate is valid from Mon, 19 Dec 2022 04:00:23 GMT to Sun, 19 Mar 2023 04:00:22 GMT
Do you wish to accept the certificate? (y/n) 

certificate chain is indeed well accepted by certtool :

certtool --verify --infile nextcloud-com-chain.pem --verify-profile high
Loaded system trust (127 CAs available)
	Subject: CN=R3,O=Let's Encrypt,C=US
	Issuer: CN=ISRG Root X1,O=Internet Security Research Group,C=US
	Checked against: CN=ISRG Root X1,O=Internet Security Research Group,C=US
	Signature algorithm: RSA-SHA256
	Output: Verified. The certificate is trusted. 

	Subject: CN=nextcloud.com
	Issuer: CN=R3,O=Let's Encrypt,C=US
	Checked against: CN=R3,O=Let's Encrypt,C=US
	Signature algorithm: RSA-SHA256
	Output: Verified. The certificate is trusted. 

Chain verification output: Verified. The certificate is trusted. 

More documentation needed

I would like to use cadaver to sync specific files via WebDAV. But at least for me, it is really complicated to understand how this works.

For example i try to understand propget to compare the timestamp of a local file with the same on remote, but i have no idea, how to get the right timestamp only. Currently i use a bash script and curl to do that. But Curl will not download the file. My current bash script looks like:

#!/bin/bash
remote_file="https://my.url.com/files/[email protected]/file.name"
local_file="/home/user/Documents/file.name"
creds='user':'pass'

modified=$(curl --silent --basic --user $creds --head $remote_file | \
             awk '/^Last-Modified/{print $0}' | \
             sed 's/^Last-Modified: //')
remote_ctime=$(date --date="$modified" +%s)
local_ctime=$(stat -c %z "$local_file")
local_ctime=$(date --date="$local_ctime" +%s)

if [ $local_ctime -lt $remote_ctime ]; then
#	curl --silent --basic --user $creds $remote_file --output $local_file
	cadaver < getdb >/dev/null 2>&1
elif [ $remote_ctime -lt $local_ctime ]; then
#	curl  --basic --user $creds --silent -T $local_file $remote_file
	cadaver < putdb >/dev/null 2>&1
fi

There must be a easier way, using only cadaver and without curl.
BTW: The commented line with curl, to download the file fails, username or password is incorrect for some reason. But the same credentials works with other commands.

Would be nice to have a little bit more documentation.

New release?

Thanks for continuing to work on cadaver. The recent commits have made building from source very easy again.

As Debian will enter code freeze in January, do you think you could release a new version soon? This would be very helpful and allow all of the changes to enter Ubuntu, Linux Mint and other distros tracking Debian packages well before the freeze.

Mutual tls client certificate

Describe the bug
I am running a dockerised webdav server https://github.com/dgraziotin/docker-nginx-webdav-nononsense behind reverse proxy and mutual tls with caddy

I use cadaver on android with termux installed with pkg install cadaver also have tsu installed

cadaver cant decrypt the p12 client certificate

Environment

cadaver -V

shows

cadaver 0.24 neon 0.32.5: Library build, IPv6, Expat 2.5.0, zlib 1.2.13, OpenSSL 3.0.7 1 Nov 2022 (thread-safe). readline 8.2

openssl version

Shows

OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)

To Reproduce
Open my webdav server

sudo cadaver https://mywebdav.instance.com

Throws error

Could not open collection: Could not read status line (TLS client certificate was requested): SSL error: sslv3 alert bad certificate

Set the client certificate

set client-cert /path/to/cert/client.p12

Open

open https://mywebdav.instance.com

Teturns

The server has requested a client certificate. Client certificate /storage/emulated/0/cert/v4/client.p12' is encrypted. Decryption password: Password incorrect, try again. Decryption password: Password incorrect, try again.

And can't decrypt the p12 password

I also tried to use my .crt and .pem certs but those throw error

Could not load client certificate from /path/to/cert/client.crt'. Could not open collection: Could not read status line (TLS client certificate was requested): SSL error: sslv3 alert bad certificate

Debugging output

--

Could not parse redirect destination URL

I tried to download a zip file using get command and this error poped up

Progress: [=============================>] 100.0% of 208 bytes failed:
Could not parse redirect destination URL

Cannot access WebDAV share / terminates with `207 Multi-Status`

Describe the bug

When I try to access a WebDAV share on my bitrix24.de server, libneon terminates the connection with the message 207 Multi-Status. Other WebDAV servers work fine, so it must be specific to bitrix24.de.

Environment

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

To Reproduce

Happens everytime when connecting to a bitrix24 WebDAV server. The error also occurs with earlier versions of libneon.

Debugging output

This is the debug output with debugging of HTTP and XML enabled. Potentially sensitive info was masked by xxxxxx....

Running pre_send hooks
Sending request headers:
OPTIONS /company/personal/user/1/disk/path/ HTTP/1.1
User-Agent: cadaver/0.23.3 neon/0.32.2
Keep-Alive: 
Connection: TE, Keep-Alive
TE: trailers
Host: xxxxxxxxxx.bitrix24.de

Sending request-line and headers:
Doing DNS lookup on xxxxxxxxxx.bitrix24.de...
req: Connecting to xxx.xxx.xxx.xxx:443
Request sent; retry is 0.
[status-line] < HTTP/1.1 401 Unauthorized
[hdr] Date: Fri, 15 Jul 2022 00:44:59 GMT
Header Name: [date], Value: [Fri, 15 Jul 2022 00:44:59 GMT]
[hdr] Content-Type: text/html; charset=UTF-8
Header Name: [content-type], Value: [text/html; charset=UTF-8]
[hdr] Transfer-Encoding: chunked
Header Name: [transfer-encoding], Value: [chunked]
[hdr] Connection: keep-alive
Header Name: [connection], Value: [keep-alive]
[hdr] Server: nginx
Header Name: [server], Value: [nginx]
[hdr] P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
Header Name: [p3p], Value: [policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"]
[hdr] X-Powered-CMS: Bitrix Site Manager (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
Header Name: [x-powered-cms], Value: [Bitrix Site Manager (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)]
[hdr] X-Dav-Powered-By: Bitrix Site Manager
Header Name: [x-dav-powered-by], Value: [Bitrix Site Manager]
[hdr] WWW-Authenticate: Digest realm="Bitrix Site Manager", nonce="xxxxxxxxxxxxxx"
Header Name: [www-authenticate], Value: [Digest realm="Bitrix Site Manager", nonce="xxxxxxxxxxxxxx"]
[hdr] X-WebDAV-Status: 401 Unauthorized
Header Name: [x-webdav-status], Value: [401 Unauthorized]
[hdr] 
End of headers.
Running post_headers hooks
ne_begin_request 0
[chunk] < 0
Got chunk size: 0
ne_discard_response 0
[hdr] 
End of headers.
Running post_send hooks
Authentication required for Bitrix Site Manager on server `xxxxxxxxxx.bitrix24.de':
Username: [email protected]
Password: 
ne_end_request 8
Running pre_send hooks
Sending request headers:
OPTIONS /company/personal/user/1/disk/path/ HTTP/1.1
User-Agent: cadaver/0.23.3 neon/0.32.2
Keep-Alive: 
Connection: TE, Keep-Alive
TE: trailers
Host: xxxxxxxxxx.bitrix24.de
Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Sending request-line and headers:
Request sent; retry is 1.
[status-line] < HTTP/1.1 200 OK
[hdr] Date: Fri, 15 Jul 2022 00:45:18 GMT
Header Name: [date], Value: [Fri, 15 Jul 2022 00:45:18 GMT]
[hdr] Content-Type: text/html; charset=UTF-8
Header Name: [content-type], Value: [text/html; charset=UTF-8]
[hdr] Content-Length: 0
Header Name: [content-length], Value: [0]
[hdr] Connection: keep-alive
Header Name: [connection], Value: [keep-alive]
[hdr] Server: nginx
Header Name: [server], Value: [nginx]
[hdr] P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
Header Name: [p3p], Value: [policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"]
[hdr] X-Powered-CMS: Bitrix Site Manager (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
Header Name: [x-powered-cms], Value: [Bitrix Site Manager (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)]
[hdr] Set-Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; secure; HttpOnly]
[hdr] Expires: Thu, 19 Nov 1981 08:52:00 GMT
Header Name: [expires], Value: [Thu, 19 Nov 1981 08:52:00 GMT]
[hdr] Cache-Control: no-store, no-cache, must-revalidate
Header Name: [cache-control], Value: [no-store, no-cache, must-revalidate]
[hdr] Pragma: no-cache
Header Name: [pragma], Value: [no-cache]
[hdr] Set-Cookie: BITRIX_SM_PK=%2F1%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; HttpOnly
Header Name: [set-cookie], Value: [BITRIX_SM_PK=%2F1%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; HttpOnly]
[hdr] X-Dav-Powered-By: Bitrix Site Manager
Header Name: [x-dav-powered-by], Value: [Bitrix Site Manager]
[hdr] MS-Author-Via: DAV
Header Name: [ms-author-via], Value: [DAV]
[hdr] DAV: 1,2
Header Name: [dav], Value: [1,2]
[hdr] Allow: OPTIONS,CHECKAUTH,PROPFIND,PROPPATCH,MKCOL,GET,POST,PUT,DELETE,COPY,MOVE,LOCK,UNLOCK,HEAD
Header Name: [allow], Value: [OPTIONS,CHECKAUTH,PROPFIND,PROPPATCH,MKCOL,GET,POST,PUT,DELETE,COPY,MOVE,LOCK,UNLOCK,HEAD]
[hdr] X-WebDAV-Status: 200 OK
Header Name: [x-webdav-status], Value: [200 OK]
[hdr] X-Frame-Options: SAMEORIGIN
Header Name: [x-frame-options], Value: [SAMEORIGIN]
[hdr] X-Content-Type-Options: nosniff
Header Name: [x-content-type-options], Value: [nosniff]
[hdr] Strict-Transport-Security: max-age=31536000; includeSubdomains
Header Name: [strict-transport-security], Value: [max-age=31536000; includeSubdomains]
[hdr] Server-Timing: t1;dur=0.261, t2;dur=0.262, t3;dur=0.000
Header Name: [server-timing], Value: [t1;dur=0.261, t2;dur=0.262, t3;dur=0.000]
[hdr] Server-Timing: tc1;dur=496, tc2;dur=795, tc3;dur=34
Header Name: [server-timing], Value: [tc1;dur=496, tc2;dur=795, tc3;dur=34]
[hdr] X-Bitrix-RI: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Header Name: [x-bitrix-ri], Value: [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
[hdr] X-Bitrix-LB: lb-de-01
Header Name: [x-bitrix-lb], Value: [lb-de-01]
[hdr] 
End of headers.
Running post_headers hooks
ne_begin_request 0
ne_discard_response 0
Running post_send hooks
ne_end_request 0
Request ends, status 200 class 2xx, error line:
200 OK
Running destroy hooks.
Request ends.
Running pre_send hooks
Sending request headers:
PROPFIND /company/personal/user/1/disk/path/ HTTP/1.1
User-Agent: cadaver/0.23.3 neon/0.32.2
Connection: TE
TE: trailers
Host: xxxxxxxxxx.bitrix24.de
Depth: 0
Content-Length: 288
Content-Type: application/xml
Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Sending request-line and headers:
Sending request body:
Request sent; retry is 1.
[status-line] < HTTP/1.1 207 Multi-Status
[hdr] Date: Fri, 15 Jul 2022 00:45:18 GMT
Header Name: [date], Value: [Fri, 15 Jul 2022 00:45:18 GMT]
[hdr] Content-Type: text/xml; charset="utf-8"
Header Name: [content-type], Value: [text/xml; charset="utf-8"]
[hdr] Transfer-Encoding: chunked
Header Name: [transfer-encoding], Value: [chunked]
[hdr] Connection: keep-alive
Header Name: [connection], Value: [keep-alive]
[hdr] Server: nginx
Header Name: [server], Value: [nginx]
[hdr] P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
Header Name: [p3p], Value: [policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"]
[hdr] X-Powered-CMS: Bitrix Site Manager (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
Header Name: [x-powered-cms], Value: [Bitrix Site Manager (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)]
[hdr] Set-Cookie: PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [PHPSESSID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; secure; HttpOnly]
[hdr] Expires: Thu, 19 Nov 1981 08:52:00 GMT
Header Name: [expires], Value: [Thu, 19 Nov 1981 08:52:00 GMT]
[hdr] Cache-Control: no-store, no-cache, must-revalidate
Header Name: [cache-control], Value: [no-store, no-cache, must-revalidate]
[hdr] Pragma: no-cache
Header Name: [pragma], Value: [no-cache]
[hdr] Set-Cookie: BITRIX_SM_PK=%2F1%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; HttpOnly
Header Name: [set-cookie], Value: [BITRIX_SM_PK=%2F1%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; path=/; HttpOnly]
[hdr] X-Dav-Powered-By: Bitrix Site Manager
Header Name: [x-dav-powered-by], Value: [Bitrix Site Manager]
[hdr] DAV: 1
Header Name: [dav], Value: [1]
[hdr] X-WebDAV-Status: 207 Multi-Status
Header Name: [x-webdav-status], Value: [207 Multi-Status]
[hdr] 
End of headers.
Running post_headers hooks
ne_begin_request 0
[chunk] < 459
Got chunk size: 1113
Reading 1113 bytes of response body.
Got 1113 bytes.
XML: start-element (0, {DAV:, multistatus}) => 1
XML: char-data (1) returns 0
XML: start-element (1, {DAV:, response}) => 2
XML: char-data (2) returns 0
XML: start-element (2, {DAV:, href}) => 4
XML: char-data (4) returns 0
XML: end-element (4, {DAV:, href})
XML: char-data (2) returns 0
XML: start-element (2, {DAV:, propstat}) => 7
XML: char-data (7) returns 0
XML: start-element (7, {DAV:, prop}) => 50
XML: char-data (50) returns 0
Got property #0: {DAV:}name.
XML: start-element (50, {DAV:, name}) => 99
XML: char-data (99) returns 0
XML: end-element (99, {DAV:, name})
XML: char-data (50) returns 0
Got property notroj/neon#1: {DAV:}creationdate.
XML: start-element (50, {DAV:, creationdate}) => 99
XML: char-data (99) returns 0
XML: end-element (99, {DAV:, creationdate})
XML: char-data (50) returns 0
Got property notroj/neon#2: {DAV:}getlastmodified.
XML: start-element (50, {DAV:, getlastmodified}) => 99
XML: char-data (99) returns 0
XML: end-element (99, {DAV:, getlastmodified})
XML: char-data (50) returns 0
Got property notroj/neon#3: {DAV:}iscollection.
XML: start-element (50, {DAV:, iscollection}) => 99
XML: char-data (99) returns 0
XML: end-element (99, {DAV:, iscollection})
XML: char-data (50) returns 0
XML: start-element (50, {DAV:, resourcetype}) => 201
XML: start-element (201, {, collection}) => 0
XML: end-element (0, {, collection})
XML: end-element (201, {DAV:, resourcetype})
XML: char-data (50) returns 0
Got property notroj/neon#4: {DAV:}getcontenttype.
XML: start-element (50, {DAV:, getcontenttype}) => 99
XML: char-data (99) returns 0
XML: end-element (99, {DAV:, getcontenttype})
XML: char-data (50) returns 0
Got property notroj/neon#5: {DAV:}supportedlock.
XML: start-element (50, {DAV:, supportedlock}) => 99
XML: start-element (99, {DAV:, lockentry}) => 99
XML: start-element (99, {DAV:, lockscope}) => 99
XML: start-element (99, {DAV:, exclusive}) => 99
XML: end-element (99, {DAV:, exclusive})
XML: end-element (99, {DAV:, lockscope})
XML: start-element (99, {DAV:, locktype}) => 99
XML: start-element (99, {DAV:, write}) => 99
XML: end-element (99, {DAV:, write})
XML: end-element (99, {DAV:, locktype})
XML: end-element (99, {DAV:, lockentry})
XML: start-element (99, {DAV:, lockentry}) => 99
XML: start-element (99, {DAV:, lockscope}) => 99
XML: start-element (99, {DAV:, shared}) => 99
XML: end-element (99, {DAV:, shared})
XML: end-element (99, {DAV:, lockscope})
XML: start-element (99, {DAV:, locktype}) => 99
XML: start-element (99, {DAV:, write}) => 99
XML: end-element (99, {DAV:, write})
XML: end-element (99, {DAV:, locktype})
XML: end-element (99, {DAV:, lockentry})
XML: end-element (99, {DAV:, supportedlock})
XML: char-data (50) returns 0
XML: end-element (50, {DAV:, prop})
XML: char-data (7) returns 0
XML: start-element (7, {DAV:, status}) => 6
XML: char-data (6) returns 0
Decoded status line: HTTP/1.1 200 OK
XML: end-element (6, {DAV:, status})
XML: char-data (7) returns 0
XML: end-element (7, {DAV:, propstat})
XML: char-data (2) returns 0
End resource /company/personal/user/1/disk/path/
XML: end-element (2, {DAV:, response})
XML: char-data (1) returns 0
XML: end-element (1, {DAV:, multistatus})
[chunk] < 0
Got chunk size: 0
ne_discard_response 0
[hdr] 
End of headers.
Running post_send hooks
ne_end_request 0
Request ends, status 207 class 2xx, error line:
207 Multi-Status
Running destroy hooks.
Request ends.
Could not access /company/personal/user/1/disk/path/ (not WebDAV-enabled?):
207 Multi-Status
sess: Destroying session.
Connection to `xxxxxxxxxx.bitrix24.de' closed.

Verbose mode for debugging

(Skipping the bug report template since this is a feature request.)

It would be really nice if Cadaver had an option to dump the bodies of the requests it's making to the server. I'm trying to wrangle a Nextcloud shell script, but I can't get search to work properly - it keeps returning 501 Not Implemented. This is frustrating because I don't have (easy) access to the server logs to see the request body, so without --verbose or something like it I have no way of knowing whether the requests Cadaver is sending are anywhere near what's in the Nextcloud WebDAV documentation.

manpage typo

I found a typo in the output of man cadaver and I would like to fix the issue.
this will be one of my first-ever legit pull requests so my apologies for the noobness!
after cloning via git, I searched for the manpage in the master branch for some time but could only find some hints in ./cadaver.spec.in and src/cadaver.c.
it is worth noting that I am not familiar with C, only bash, which could be the reason the trouble.
please tell me the manpage location and i will continue forward :)

automatic login with .cadaverrc and .netrc not working

I would like to connect to a webdav file space on the internet and have cadaver only ask for my password.

So I have created a ~/.cadaverrc file

open https://webdav.smartdrive.web.de

and a ~/.netrc file

default
login [email protected]

(The login is the connected user email.)

However cadaver seems to ignore the .netrc file since it constantly asks for the user name instead of going straight to ask for the user password. Am I missing something here?

Thank you for your hints.

Can't connect using kerberos ticket

Describe the bug
I'm running alfresco using sso, I want to mount the webdav in my system but it ask me for credentials. Since I'm using yubikeys and certificates to login against freeipa with kerberos, my user don't have them.

Environment

  • cadaver version: [0.23.3]
  • neon version: [0.30.2]
  • OS: [RHEL 8]
  • SSL library version: [OpenSSL 1.1.1

URLs with pathnames cause parse error

Describe the bug
I have a webdav server hosted on localhost:4200. When I move the connection point to /webdav cadaver emits the following error:
image
Trying without the port number (localhost/webdav) still does not work, however trying with no path (localhost:4200) works.

Environment

  • cadaver version: 0.24
  • neon version: 0.32.5
  • OS: Arch
  • SSL library version: 3.1.2-1

To Reproduce
cadaver localhost:4200/webdav (no server needed)

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.