Hello! I use openssl to work with apache server via https. But I see a strange situation when the second and the third calls to send() in my test-case read 0 bytes from socket. Can you provide here any help?
I use 'Fedora Core 7 x86' and openssl-0.9.8e. Thanks! Here is a test-case: #include <openssl/ssl.h> #include <openssl/err.h> #include <openssl/bio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <netinet/in.h> #include <arpa/inet.h> #include <iostream> using namespace std; #define MAX_PACKET_SIZE 10000 BIO * bio, *ssl_bio, *sbio; SSL * ssl; SSL_CTX * ctx; void send(){ char *write_buf = "GET / HTTP/1.0\n\n"; if(SSL_write(ssl, write_buf, strlen(write_buf)) <= 0){ std::cout << "Failed write" << std::endl; } char buf[MAX_PACKET_SIZE]; std::cout << "=====================" << std::endl; int p; char r[1024]; for(;;) { p = SSL_read(ssl, r, 1023); printf("read %d bytes\n", p ); if(p <= 0) break; r[p] = 0; printf("%s", r); } std::cout << std::endl << "=====================" << std::endl; /* To free it from memory, use this line */ int ssl_er = SSL_get_error(ssl, 0); printf("ssl_er=%d\n", ssl_er); } int main() { /* Initializing OpenSSL */ SSL_load_error_strings(); ERR_load_BIO_strings(); OpenSSL_add_all_algorithms(); SSL_library_init(); //mandatory and missing from some examples ctx = SSL_CTX_new(SSLv23_client_method()); if (ctx == NULL) { std::cout << "Ctx is null" << std::endl; ERR_print_errors_fp(stderr); } /*create ssl*/ ssl = SSL_new(ctx); /*create bio*/ int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); struct sockaddr_in addr; memset (&addr, '\0', sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(443); /* Server Port number */ addr.sin_addr.s_addr = inet_addr("192.168.40.27"); /* Server IP */ int err = connect(sock, (struct sockaddr*) &addr, sizeof(addr)); sbio = BIO_new_socket(sock, BIO_NOCLOSE); SSL_set_bio(ssl, sbio, sbio); err = SSL_connect(ssl); send(); send(); send(); BIO_free_all(sbio); ERR_print_errors_fp(stderr); return 0; } -- View this message in context: http://www.nabble.com/SSL_read-reads-0-bytes-after-SSL_write-SSL_read-SSL_write-tp14797166p14797166.html Sent from the OpenSSL - User mailing list archive at Nabble.com. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]