[Zope] M2Crypto+Zope+WebDAV - Unexpected eof

Ng Pheng Siong ngps@post1.com
Thu, 12 Apr 2001 10:47:14 +0800


On Tue, Apr 10, 2001 at 05:53:38PM +0200, oliver.erlewein@sqs.de wrote:
> I'm experiencing Problems with Zope 2.3.1 (WinNT 4) in conjunction with
> M2Crypto 0.06 snap4 (ZServerSSL) when accessing my Zopeserver via WebDAV
> with https.
>  
> 2001-04-10T15:14:36 INFO(0) ZServer recv: closing channel <zhttps_channel
> connec
> ted 172.20.16.42:2320 at 1b85c20 channel#: 150 requests:1> unexpected eof

Hi Oliver,

Can you check if the file ZServer/medusa/https_server.py looks like this,
around line 38:

            elif result == '':
                self.socket.set_shutdown(SSL.SSL_SENT_SHUTDOWN|SSL.SSL_RECEIVED_SHUTDOWN)
                self.socket.close()
                return ''
            else:
                self.server.bytes_in.increment(len(result))
                return result
        

Due to a packaging error (boo hiss), the crucial line "self.socket.close()" 
above is missing. Without that, ZServerSSL drives the CPU to 100% when a
broken HTTP/1.1 client comes a-calling. 


Here's Cadaver talking to ZServerSSL on Zope 2.3.0:

    $ cadaver https://nova:9443/
    Looking up hostname... Connecting to server... connected.
    Using secure connection: TLSv1
    Connecting to server... connected.
    Using secure connection: TLSv1
    dav:/> ls
    Listing collection `/': (reconnecting...done) succeeded.
    Coll:  Control_Panel                           0  Jan 20 21:39
    Coll:  QuickStart                              0  Jan 20 21:39
    Coll:  test                                    0  Mar 19 15:56
           acl_users                               0  Dec 30  1998
           index_html                             92  Jan 20 21:39
           standard_error_message               1365  Jan 20 21:39
           standard_html_footer                   53  Jan 20 21:39
           standard_html_header                   80  Jan 20 21:39
    dav:/> cd test
    Connecting to server... connected.
    Using secure connection: TLSv1
    dav:/test/> ls
    Listing collection `/test/': (reconnecting...done) succeeded.
    Coll:  guarded                                 0  Feb 21 16:27
    Coll:  zsmime                                  0  Mar 19 16:23
           index_html                            140  Feb 18 13:50
    dav:/test/> cd zsmime
    Connecting to server... connected.
    Using secure connection: TLSv1
    dav:/test/zsmime/> ls
    Listing collection `/test/zsmime/': (reconnecting...done) succeeded.
           recip                                1058  Mar 19 15:57
           signer                               1937  Mar 19 15:56
           smime                                 109  Mar 19 16:21
           smime_sender                          433  Mar 19 17:06
    dav:/test/zsmime/> put /tmp/put.txt
    Uploading /tmp/put.txt to `/test/zsmime/put.txt': (reconnecting...done)
    Progress: [=============================>] 100.0% of 7 bytes
    Authentication required for Zope on server `nova':
    Username: ngps
    Password: 
    Progress: [=============================>] 100.0% of 7 bytes succeeded.
    dav:/test/zsmime/> ls
    Listing collection `/test/zsmime/': succeeded.
           put.txt                                 7  Apr 12 03:02
           recip                                1058  Mar 19 15:57
           signer                               1937  Mar 19 15:56
           smime                                 109  Mar 19 16:21
           smime_sender                          433  Mar 19 17:06
    dav:/test/zsmime/> bye 
    Connection to `nova' closed.
    $ 


Cadaver is a command-line WebDAV client. I can't remember the url, but
it's listed under "software" at www.webdav.org.

Cheers.

-- 
Ng Pheng Siong <ngps@post1.com> * http://www.post1.com/home/ngps