Your message dated Mon, 10 Mar 2014 15:40:35 +0000
with message-id <[email protected]>
and subject line Bug#710672: fixed in pywebdav 0.9.8-8
has caused the Debian Bug report #710672,
regarding python-webdav: Unsolicited use of persistent connections causes 
HTTP/1.0 clients to hang
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
710672: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710672
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: python-webdav
Version: 0.9.8-3
Severity: normal

Dear Maintainer,

pywebdav uses persistent connections even for HTTP/1.0 GET requests
without a Connection: Keep-Alive header. This causes the client to
hang waiting for the connection to close. RFC2616 explicitly states
HTTP/1.1 servers must not assume HTTP/1.0 clients to support
persistent connections:

=== Begin RFC2616 excerpt ===
8.1.2.1 Negotiation
[...]
   Clients and servers SHOULD NOT assume that a persistent connection is
   maintained for HTTP versions less than 1.1 unless it is explicitly
   signaled. [...]
=== End RFC2616 excerpt ===


In addition, both a Connection: close and a Connection: Keep-Alive
header are sent and Date is sent twice:

=== Begin tcpflow dump ===
127.000.000.001.50660-127.000.000.001.08009: GET / HTTP/1.0
User-Agent: w3m/0.5.3+cvs-1.1055
Accept: text/html, text/*;q=0.5, image/*, */*
Accept-Encoding: Xgzip, compress, bzip, bzip2, deflate
Accept-Language: en;q=1.0
Host: localhost:8009
Pragma: no-cache
Cache-control: no-cache


127.000.000.001.08009-127.000.000.001.50660: HTTP/1.0 200 OK

127.000.000.001.08009-127.000.000.001.50660: Server: DAV/0.9.8 Python/2.7.3

127.000.000.001.08009-127.000.000.001.50660: Date: Sat, 01 Jun 2013 10:11:00 GMT

127.000.000.001.08009-127.000.000.001.50660: Connection: close

127.000.000.001.08009-127.000.000.001.50660: Accept-Ranges: bytes

127.000.000.001.08009-127.000.000.001.50660: Date: Sat, 01 Jun 2013 10:11:00 GMT

127.000.000.001.08009-127.000.000.001.50660: DAV: 1

127.000.000.001.08009-127.000.000.001.50660: Last-Modified: Sat, 01 Jun 2013 
10:11:00 GMT

127.000.000.001.08009-127.000.000.001.50660: Connection: Keep-Alive

127.000.000.001.08009-127.000.000.001.50660: Keep-Alive: timeout=15, max=86

127.000.000.001.08009-127.000.000.001.50660: Content-Length: 253

127.000.000.001.08009-127.000.000.001.50660: Content-Type: text/html; 
charset=utf-8

127.000.000.001.08009-127.000.000.001.50660: 

127.000.000.001.08009-127.000.000.001.50660: <html>
<head><title>Journal listing</title></head>
<body>
<table>
<tr><th>Name</th></tr>
<tr><td><a href="by-id/">by-id/</a></td></tr>
<tr><td><a href="by-tags/">by-tags/</a></td></tr>
<tr><td><a href="by-title/">by-title/</a></td></tr>
</table>
</html>
=== End tcpflow dump ===


A quick patch for these issues:

=== Begin ===
--- WebDAVServer.py.old 2013-06-01 14:23:19.105319133 +0200
+++ WebDAVServer.py     2013-06-01 14:23:35.457092427 +0200
@@ -62,9 +62,9 @@
         log.debug("Use send_body method")
 
         self.send_response(code, message=msg)
-        self.send_header("Connection", "close")
+        if 'Connection' not in headers:
+            self.send_header("Connection", "close")
         self.send_header("Accept-Ranges", "bytes")
-        self.send_header('Date', rfc1123_date())
 
         self._send_dav_version()
 
@@ -255,8 +255,9 @@
             self.send_body(data, status_code, None, None, content_type,
                            headers)
         else:
-            headers['Keep-Alive'] = 'timeout=15, max=86'
-            headers['Connection'] = 'Keep-Alive'
+            if self.request_version == 'HTTP/1.1':
+                headers['Keep-Alive'] = 'timeout=15, max=86'
+                headers['Connection'] = 'Keep-Alive'
             self.send_body_chunks_if_http11(data, status_code, None, None,
                                             content_type, headers)
=== End ===


-- System Information:
Debian Release: 7.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable'), (100, 
'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.8-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-webdav depends on:
ii  python                2.7.3-4
ii  python-pkg-resources  0.6.24-1

python-webdav recommends no packages.

python-webdav suggests no packages.

-- no debconf information

--- End Message ---
--- Begin Message ---
Source: pywebdav
Source-Version: 0.9.8-8

We believe that the bug you reported is fixed in the latest version of
pywebdav, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Mathias Behrle <[email protected]> (supplier of updated pywebdav package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Mon, 10 Mar 2014 15:17:30 +0100
Source: pywebdav
Binary: python-webdav
Architecture: source all
Version: 0.9.8-8
Distribution: unstable
Urgency: medium
Maintainer: Debian Tryton Maintainers <[email protected]>
Changed-By: Mathias Behrle <[email protected]>
Description: 
 python-webdav - WebDAV server implementation in Python
Closes: 710672 710690
Changes: 
 pywebdav (0.9.8-8) unstable; urgency=medium
 .
   * Removing debian/source/options, we are building with dpkg defaults.
   * Updating year in debian copyright.
   * Removing PYBUILD_DESTDIR_python2 from rules, it is no more needed.
   * Adding pgp verification for uscan.
   * Adding gbp.conf for usage with git-buildpackage.
   * Adding 01-recursive-properties.patch (Closes: #710690).
     Thanks to Sascha Silbe for providing the patch, no feedback from
     maintainers so far.
   * Adding 02-RFC2616-keep-alive.patch (Closes: #710672).
     Thanks to Sascha Silbe for providing the patch, no feedback from
     maintainers so far.
Checksums-Sha1: 
 1072c5af9acd4f9ea134ad5b3e0cae19bf6fe031 1943 pywebdav_0.9.8-8.dsc
 36f7dcb0ea70bead2d327ac92a972939d44f47e2 13800 pywebdav_0.9.8-8.debian.tar.xz
 bb77df99c001379459a806de7691a4beb99f5481 44858 python-webdav_0.9.8-8_all.deb
Checksums-Sha256: 
 8ced6a4f3e536f5c020b5ecd2cf6b60d1bfafcefc05f9672d4edf1cf22f26394 1943 
pywebdav_0.9.8-8.dsc
 6709cfe8525b37eb8cffbb9af1d9d3733ba3f40b9630dcbc4bea3b183c90885b 13800 
pywebdav_0.9.8-8.debian.tar.xz
 ca823b80d11868f4493d692118e862f584bb054d91a5d3e61ef0e552479e2903 44858 
python-webdav_0.9.8-8_all.deb
Files: 
 6e53e67fdd9734261209209331705dc3 1943 python optional pywebdav_0.9.8-8.dsc
 a6179ca6f77c22e088dd5c91a99a0cca 13800 python optional 
pywebdav_0.9.8-8.debian.tar.xz
 e867daa7d98e9951e6991972aff29df3 44858 python optional 
python-webdav_0.9.8-8_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJTHcpiAAoJENbQm+SEBbv2r1oP/RDergyjSLIear9LdCchSGsQ
TsyMMDwN/UZ624SFtfOrW0+dXNhsJFl6j53cSk8ytp87vKYgEzeLq1xjQcIa3Rhp
j1sKsA6TRiucjwOEzow//4nBkgIYiq5aru9RJx4a0sQ35lHrZWq7CUzsWN1haDCr
uAlG5W6Z39hOK/Se+vWFEZwFvoSw8uhTseTS39/w9H84NycHFX1e1W5LaOT5erEH
TgnZQUm2TXf8LWWYlsK4netT8clx8mnrR6IAByOh9HGIT1gjMI20qLj5NDje1HYU
xvhZWzW10WZVBjVbfbvXIM7hCrEBJqIiEtzoqQ6Taba9obYPjitISL7qb7e1n2ot
h7x+dqX3qBy7Oz6r6mk6IYf1bEvS9DHBfdeQT/fPoGVzXoqHo4RLlvvSFmkdQGpl
biuGAGWc92qLLJ8oKKfn0N4YQcix9JNRxIVhoAapwjUl7+YiS1dMwYlS4g8ge++K
c0EgFeLXh++niFUs99HWV9Wcqej6jQZLo2+niabt2cnKAtuZFyGM364zkZ+jdr5P
rBCZ/u1UaXh9PzDaXzjAJ2iJmNTL/OWUYfKU5/yZnYR312pDY/hbQZ5wqLBbixpI
K1ozVNVbnKWGtUqHn3NQzjv1bEH2mxg87dyxuMpsigsmA1eTHDPybailI/JEN1Wa
aQTWJTBy9gkMJJVwdAgK
=9vIO
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to