mirror of
https://github.com/nghttp2/nghttp2.git
synced 2025-12-07 02:28:53 +08:00
Test that FLAG_FIN is set if the read callback is NULL.
This commit is contained in:
@@ -138,6 +138,8 @@ int communicate(const std::string& host, uint16_t port,
|
||||
std::cerr << "Could not connect to the host" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
make_non_block(fd);
|
||||
set_tcp_nodelay(fd);
|
||||
SSL_CTX *ssl_ctx;
|
||||
ssl_ctx = SSL_CTX_new(SSLv23_client_method());
|
||||
if(!ssl_ctx) {
|
||||
@@ -153,8 +155,6 @@ int communicate(const std::string& host, uint16_t port,
|
||||
if(ssl_handshake(ssl, fd) == -1) {
|
||||
return -1;
|
||||
}
|
||||
make_non_block(fd);
|
||||
set_tcp_nodelay(fd);
|
||||
Spdylay sc(fd, ssl, callbacks);
|
||||
|
||||
nfds_t npollfds = 1;
|
||||
|
||||
@@ -476,7 +476,22 @@ int ssl_handshake(SSL *ssl, int fd)
|
||||
std::cerr << ERR_error_string(ERR_get_error(), 0) << std::endl;
|
||||
return -1;
|
||||
}
|
||||
int loop_count = 0;
|
||||
int r = SSL_connect(ssl);
|
||||
nfds_t npollfds = 1;
|
||||
pollfd pollfds[1];
|
||||
pollfds[0].fd = fd;
|
||||
|
||||
while(r == -1) {
|
||||
++loop_count;
|
||||
int nfds = poll(pollfds, npollfds, -1);
|
||||
if(nfds == -1)
|
||||
continue;
|
||||
r = SSL_connect(ssl);
|
||||
}
|
||||
std::cerr << "Loop iterated #" << loop_count << " times." << std::endl;
|
||||
//std::cerr << "Event is " << pollfds[0].events << ":" << pollfds[0].revents << std::endl;
|
||||
|
||||
if(r <= 0) {
|
||||
std::cerr << ERR_error_string(ERR_get_error(), 0) << std::endl;
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user