summaryrefslogtreecommitdiffstats
path: root/src/net_doh.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/net_doh.c')
-rw-r--r--src/net_doh.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/net_doh.c b/src/net_doh.c
index dafd736..2caeab8 100644
--- a/src/net_doh.c
+++ b/src/net_doh.c
@@ -100,7 +100,7 @@ struct perf__doh_socket {
bool is_ready, is_conn_ready, is_ssl_ready, is_sending, is_post_sending;
// bool have_more; TODO
- bool do_reconnect;
+ bool do_reconnect, do_connect;
perf_sockaddr_t server, local;
size_t bufsize;
@@ -254,7 +254,7 @@ static void perf__doh_reconnect(struct perf_net_socket* sock)
self->http2_code = 0;
self->http2_is_dns = false;
- perf__doh_connect(sock);
+ self->do_connect = true;
}
// static ssize_t _recv_callback(nghttp2_session *session, uint8_t *buf, size_t length, int flags, void *sock)
@@ -623,6 +623,10 @@ static int perf__doh_sockready(struct perf_net_socket* sock, int pipe_fd, int64_
perf__doh_reconnect(sock);
self->do_reconnect = false;
}
+ if (self->do_connect) {
+ perf__doh_connect(sock);
+ self->do_connect = false;
+ }
if (self->is_ready) {
// do nghttp2 I/O send to flush outstanding frames