Lin No I am not an OpenSSL developer. However I have built several server and client applications using OpenSSL.
The the following code works with IE 5.0 and the simple client program I sent you. BIO_puts(io,"HTTP/1.1 100 Continue\r\n"); BIO_puts(io,"Server: Microsoft-IIS/5.0\r\n"); BIO_puts(io,"Date: Wed, 30 Oct 2002 06:34:5 6 GMT\r\n\r\n"); /* the extra 0d 0a after the Date header is needed to tells the browser it has reached the end of the block before reading the 200 reponse code */ /* Without the \r\n the server sends an invalid response to the browser */ BIO_puts(io,"HTTP/1.1 200 OK\r\n"); BIO_puts(io,"Server: Microsoft-IIS/5.0\r\n"); BIO_puts(io,"Date: Wed,30 Oct 20 02 06:35:07 GMT\r\n"); BIO_puts(io,"Content-Length: 1863\r\n"); BIO_puts(io,"Content-Type: text/html\r\n"); BIO_puts(io,"Expires: Wed, 30 Oct 2002 06:35: 07 GMT\r\n"); BIO_puts(io,"Cache-control: private\r\n"); BIO_puts(io,"\r\n"); BIO_puts(io,"<html>\r\n"); BIO_puts(io,"<head>\r\n"); BIO_puts(io,"<title>BIO Openssl Test Server</title>\r\n"); BIO_puts(io,"</head>\r\n"); BIO_puts(io,"<body>\r\n"); BIO_puts(io,"<center><font face=Verdana>BIO OpenSSL Test Server</font></center>\r\n"); BIO_puts(io,"</body>\r\n"); BIO_puts(io,"</html>\r\n"); Browser output: <html> <head> <title>BIO Openssl Test Server</title> </head> <body> <center><font face=Verdana>BIO OpenSSL Test Server</font></center> </body> </html> Simple client output Wrote 17 chars Handshake completed successfully! Read 411 chars: HTTP/1.1 100 Continue Server: OpenSSL/1.0 Date: Wed, 30 Oct 2002 06:34:5 6 GMT HTTP/1.1 200 OK Date: Wed,30 Oct 20 02 06:35:07 GMT Content-Length: 1863 Content-Type: text/html Expires: Wed, 30 Oct 2002 06:35: 07 GMT Cache-control: private <html> <head> <title>BIO Openssl Test Server</title> </head> <body> <center><font face=Verdana>BIO OpenSSL Test Server</font></center> </body> </html> I am running this code on Windows 2000 Server with VC++ 6.0. Send me your client or server code so that I can look at it. ----- Original Message ----- From: "Lutz Jaenicke" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Wednesday, November 13, 2002 1:13 PM Subject: Re: Please help: SSL_read() hang after read http 100 continue header > On Wed, Nov 13, 2002 at 09:53:34AM -0800, Lin Ma wrote: > > I have a client program using Openssl to send request to and receive > > response from a web server. SSL_read hangs if the web server sends the > > following headers. > > > > The following is the header dump without SSL. I think the problem is the > > separator 0d 0a 0d 0a between the two block of headers. > > No. The SSL layer does not care about the data transferred, whether it > is line oriented or not. > > ... > > You can see, it is like > > HTTP/1.1 100 Continue > > Server: Microsoft-IIS/5.0 > > Date: Wed, 30 Oct 2002 06:34:56 GMT > > 0d 0a 0d 0a > > HTTP/1.1 200 OK > > Server: Microsoft-IIS/5.0 > > Date: Wed, 30 Oct 2002 06:34:56 GMT > > Content-Length: 1863 > > ..... > > > > There is separator 0d 0a 0d 0a between the two block of headers. My program > > just stuck in the separator and couldn't get the following HTTP/1.1 200 OK > > ... > > > > If I change it to non-blocking, SSL_read() doesn't hang any more, but it > > keep getting SSL_ERROR_WANT_READ error, if I keeping SSL_read, it keep > > getting SSL_ERROR_WANT_READ and doesn't return valid data. > > This means, that no data has been received or at least not enough data > to complete the TLS record. SSL_read() is waiting for (more) data. > > Use ssldump to analyze the traffic. > What platform are you working on? Windows or UNIX? Can you try your > program on another platform? > Microsoft IIS is not know to be free of errors, but it seems to work > good enough that I don't think the problem is caused by the server side. > > Best regards, > Lutz > -- > Lutz Jaenicke [EMAIL PROTECTED] > http://www.aet.TU-Cottbus.DE/personen/jaenicke/ > BTU Cottbus, Allgemeine Elektrotechnik > Universitaetsplatz 3-4, D-03044 Cottbus > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List [EMAIL PROTECTED] > Automated List Manager [EMAIL PROTECTED] ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]