I want to use Radicale as CardDAV server. When I use Radicale with the Fitzbox client. No put request works.With Evolution as client, everything works without errors.
I think the problem is the "Expect" header field. The client may be waiting for a response to start sending the message body.
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] 'test' has write access to collection 'test'
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] 'test' has write access to collection with tag 'test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f'
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] 'test' has write access to collection with tag 'test/3352500e-1689-7e6d-dfa5-7b0c9f620697'
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] Response content:
<?xml version="1.0"?>
/test/HTTP/1.1 200 OKHTTP/1.1 404 Not Found/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/TestHTTP/1.1 200 OK/test/3352500e-1689-7e6d-dfa5-7b0c9f620697/Test_2HTTP/1.1 200 OK
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [INFO] PROPFIND response status for '/test/' with depth '1' in 0.009 seconds: 207 Multi-Status
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [INFO] PUT request for '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf' received from XXX.XXX.XXX.XXX using 'FRITZOS_CardDAV_Client/1.0'
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [DEBUG] Request headers:
{'CONTENT_LENGTH': '155',
'CONTENT_TYPE': 'text/vcard; charset=UTF-8',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_AUTHORIZATION': 'Basic masked',
'HTTP_CONNECTION': 'close',
'HTTP_EXPECT': '100-continue',
'HTTP_HOST': 'XXX.XXX.XXX.XXX:5232',
'HTTP_IF_NONE_MATCH': '*',
'HTTP_USER_AGENT': 'FRITZOS_CardDAV_Client/1.0',
'PATH_INFO': '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf',
'QUERY_STRING': '',
'REMOTE_ADDR': 'XXX.XXX.XXX.XXX',
'REMOTE_CERTIFICATE': None,
'REMOTE_HOST': '',
'REQUEST_METHOD': 'PUT',
'SCRIPT_NAME': '',
'SERVER_NAME': 'XXXXX',
'SERVER_PORT': '5232',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'WSGIServer/0.2',
'wsgi.errors': <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=8>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [DEBUG] Sanitized script name: ''
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [DEBUG] Sanitized path: '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf'
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [INFO] Successful login: 'test'
[2020-07-09 11:21:11 +0200] [28593/Thread-13] [DEBUG] client timed out
Traceback (most recent call last):
File "/home/home/.local/lib/python3.5/site-packages/radicale/app/put.py", line 121, in do_PUT
content = self._read_content(environ)
File "/home/home/.local/lib/python3.5/site-packages/radicale/app/init.py", line 325, in _read_content
content = self._decode(self._read_raw_content(environ), environ)
File "/home/home/.local/lib/python3.5/site-packages/radicale/app/init.py", line 319, in _read_raw_content
content = environ["wsgi.input"].read(content_length)
File "/usr/lib/python3.5/socket.py", line 576, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.5/ssl.py", line 937, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.5/ssl.py", line 799, in read
return self._sslobj.read(len, buffer)
File "/usr/lib/python3.5/ssl.py", line 583, in read
v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
[2020-07-09 11:21:11 +0200] [28593/Thread-13] [DEBUG] Response content:
Connection timed out.
[2020-07-09 11:21:11 +0200] [28593/Thread-13] [INFO] PUT response status for '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf' in 30.035 seconds: 408 Request Timeout
Hi,
I want to use Radicale as CardDAV server. When I use Radicale with the Fitzbox client. No put request works.With Evolution as client, everything works without errors.
I think the problem is the "Expect" header field. The client may be waiting for a response to start sending the message body.
I see these errors in the log:
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [INFO] PROPFIND request for '/test/' with depth '1' received from XXX.XXX.XXX.XXX using 'FRITZOS_CardDAV_Client/1.0' [2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] Request headers: {'CONTENT_LENGTH': '78', 'CONTENT_TYPE': 'application/xml; charset=UTF-8', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_AUTHORIZATION': 'Basic masked', 'HTTP_CONNECTION': 'close', 'HTTP_DEPTH': '1', 'HTTP_HOST': 'XXX.XXX.XXX.XXX:5232', 'HTTP_USER_AGENT': 'FRITZOS_CardDAV_Client/1.0', 'PATH_INFO': '/test/', 'QUERY_STRING': '', 'REMOTE_ADDR': 'XXX.XXX.XXX.XXX', 'REMOTE_CERTIFICATE': None, 'REMOTE_HOST': '', 'REQUEST_METHOD': 'PROPFIND', 'SCRIPT_NAME': '', 'SERVER_NAME': 'XXXXX', 'SERVER_PORT': '5232', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.2', 'wsgi.errors': <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=8>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] Sanitized script name: ''
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] Sanitized path: '/test/'
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [INFO] Successful login: 'test'
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] Request content:
<?xml version="1.0"?>
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] 'test' has write access to collection 'test' [2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] 'test' has write access to collection with tag 'test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f' [2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] 'test' has write access to collection with tag 'test/3352500e-1689-7e6d-dfa5-7b0c9f620697' [2020-07-09 11:20:40 +0200] [28593/Thread-12] [DEBUG] Response content: <?xml version="1.0"?>
[2020-07-09 11:20:40 +0200] [28593/Thread-12] [INFO] PROPFIND response status for '/test/' with depth '1' in 0.009 seconds: 207 Multi-Status [2020-07-09 11:20:41 +0200] [28593/Thread-13] [INFO] PUT request for '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf' received from XXX.XXX.XXX.XXX using 'FRITZOS_CardDAV_Client/1.0' [2020-07-09 11:20:41 +0200] [28593/Thread-13] [DEBUG] Request headers: {'CONTENT_LENGTH': '155', 'CONTENT_TYPE': 'text/vcard; charset=UTF-8', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_AUTHORIZATION': 'Basic masked', 'HTTP_CONNECTION': 'close', 'HTTP_EXPECT': '100-continue', 'HTTP_HOST': 'XXX.XXX.XXX.XXX:5232', 'HTTP_IF_NONE_MATCH': '*', 'HTTP_USER_AGENT': 'FRITZOS_CardDAV_Client/1.0', 'PATH_INFO': '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf', 'QUERY_STRING': '', 'REMOTE_ADDR': 'XXX.XXX.XXX.XXX', 'REMOTE_CERTIFICATE': None, 'REMOTE_HOST': '', 'REQUEST_METHOD': 'PUT', 'SCRIPT_NAME': '', 'SERVER_NAME': 'XXXXX', 'SERVER_PORT': '5232', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SOFTWARE': 'WSGIServer/0.2', 'wsgi.errors': <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'>,
'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,
'wsgi.input': <_io.BufferedReader name=8>,
'wsgi.multiprocess': False,
'wsgi.multithread': True,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [DEBUG] Sanitized script name: ''
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [DEBUG] Sanitized path: '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf'
[2020-07-09 11:20:41 +0200] [28593/Thread-13] [INFO] Successful login: 'test'
[2020-07-09 11:21:11 +0200] [28593/Thread-13] [DEBUG] client timed out
Traceback (most recent call last):
File "/home/home/.local/lib/python3.5/site-packages/radicale/app/put.py", line 121, in do_PUT
content = self._read_content(environ)
File "/home/home/.local/lib/python3.5/site-packages/radicale/app/init.py", line 325, in _read_content
content = self._decode(self._read_raw_content(environ), environ)
File "/home/home/.local/lib/python3.5/site-packages/radicale/app/init.py", line 319, in _read_raw_content
content = environ["wsgi.input"].read(content_length)
File "/usr/lib/python3.5/socket.py", line 576, in readinto
return self._sock.recv_into(b)
File "/usr/lib/python3.5/ssl.py", line 937, in recv_into
return self.read(nbytes, buffer)
File "/usr/lib/python3.5/ssl.py", line 799, in read
return self._sslobj.read(len, buffer)
File "/usr/lib/python3.5/ssl.py", line 583, in read
v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
[2020-07-09 11:21:11 +0200] [28593/Thread-13] [DEBUG] Response content:
Connection timed out.
[2020-07-09 11:21:11 +0200] [28593/Thread-13] [INFO] PUT response status for '/test/d3ede2d3-fbb8-e335-27a7-a3f2432a2b6f/wOS0KY7HHRdeKgLC7yCttr_i5zqSv85qaqEBBUj.vcf' in 30.035 seconds: 408 Request Timeout