10.03.2012, 04:25, "Mark Ellzey" <mtho...@strcpy.net>: > On Thu, Mar 08, 2012 at 09:39:23PM +0400, Alexey Ozeritsky wrote: > >> Hello, >> >> I cannot get https client working. >> I have tried 2 servers (apache2 and nginx). >> >> libevent 2.0.17+ssl-patches and current git version give the same result. >> >> nginx access_log: >> 127.0.0.1 - - [08/Mar/2012:21:08:34 +0400] "POST /cgi-bin/test.cgi >> HTTP/1.1" 400 0 "-" "-" >> >> apache2 error_log: >> [Thu Mar 08 21:24:34 2012] [error] [client 127.0.0.1] (70014)End of file >> found: Error reading request entity data >> >> GET request works fine >> >> Simple program attached. >> >> Thanks. > > This is your server (nginx/apache) telling you that POST is not an > accepted request type for test.cgi.
No, the following works fine: $ curl -v -k -X POST --data-binary @test https://127.0.0.1:4443/cgi-bin/test.cgi I put fprintf(stderr, " write %d %d\n", r, space[i].iov_len); next line to SSL_write in bufferevent_openssl.c and see: $ ./test new POST request write 33 33 write 17 17 write 24 24 write 27 27 write 2 2 write -1 104857600 <hang until timeout here> Then I made a hack: diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c index 5f98981..36c8625 100644 --- a/bufferevent_openssl.c +++ b/bufferevent_openssl.c @@ -682,13 +682,14 @@ do_write(struct bufferevent_openssl *bev_ssl, int atmost) if (set_wbor(bev_ssl) < 0) return -1; bev_ssl->last_write = space[i].iov_len; + blocked = 1; break; default: conn_closed(bev_ssl, BEV_EVENT_WRITING, err, r); bev_ssl->last_write = -1; + blocked = 1; break; } - blocked = 1; break; } } All works fine now. *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.