Parcourir la source

Fix SIGPIPE issue

Nick Peng il y a 6 ans
Parent
commit
9092d9f683
1 fichiers modifiés avec 3 ajouts et 4 suppressions
  1. 3 4
      src/dns_client.c

+ 3 - 4
src/dns_client.c

@@ -316,8 +316,10 @@ static void _dns_client_close_socket(struct dns_server_info *server_info)
 		return;
 		return;
 	}
 	}
 
 
+	epoll_ctl(client.epoll_fd, EPOLL_CTL_DEL, server_info->fd, NULL);
+	close(server_info->fd);
+
 	if (server_info->ssl) {
 	if (server_info->ssl) {
-		SSL_shutdown(server_info->ssl);
 		SSL_free(server_info->ssl);
 		SSL_free(server_info->ssl);
 		server_info->ssl = NULL;
 		server_info->ssl = NULL;
 	}
 	}
@@ -326,9 +328,6 @@ static void _dns_client_close_socket(struct dns_server_info *server_info)
 		SSL_CTX_free(server_info->ssl_ctx);
 		SSL_CTX_free(server_info->ssl_ctx);
 		server_info->ssl_ctx = NULL;
 		server_info->ssl_ctx = NULL;
 	}
 	}
-
-	epoll_ctl(client.epoll_fd, EPOLL_CTL_DEL, server_info->fd, NULL);
-	close(server_info->fd);
 	server_info->fd = -1;
 	server_info->fd = -1;
 	server_info->status = DNS_SERVER_STATUS_DISCONNECTED;
 	server_info->status = DNS_SERVER_STATUS_DISCONNECTED;
 }
 }