diff --git a/lib/client.c b/lib/client.c index cf56b03d..a9e2953d 100644 --- a/lib/client.c +++ b/lib/client.c @@ -127,7 +127,9 @@ int lws_client_socket_service(struct libwebsocket_context *context, struct libwe } if (wsi->use_ssl) { + lws_latency_pre(context, wsi); n = SSL_connect(wsi->ssl); + lws_latency(context, wsi, "SSL_connect LWS_CONNMODE_WS_CLIENT_ISSUE_HANDSHAKE", n, n > 0); if (n < 0) { n = SSL_get_error(wsi->ssl, n); @@ -165,7 +167,9 @@ int lws_client_socket_service(struct libwebsocket_context *context, struct libwe return 0; } + lws_latency_pre(context, wsi); n = SSL_get_verify_result(wsi->ssl); + lws_latency(context, wsi, "SSL_get_verify_result LWS_CONNMODE_WS_CLIENT_ISSUE_HANDSHAKE", n, n > 0); if ((n != X509_V_OK) && ( n != X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT || wsi->use_ssl != 2)) { @@ -190,12 +194,14 @@ int lws_client_socket_service(struct libwebsocket_context *context, struct libwe /* send our request to the server */ + lws_latency_pre(context, wsi); #ifdef LWS_OPENSSL_SUPPORT if (wsi->use_ssl) n = SSL_write(wsi->ssl, pkt, p - pkt); else #endif n = send(wsi->sock, pkt, p - pkt, 0); + lws_latency(context, wsi, "send or SSL_write LWS_CONNMODE_WS_CLIENT_ISSUE_HANDSHAKE", n, n >= 0); if (n < 0) { lwsl_debug("ERROR writing to client socket\n"); diff --git a/lib/output.c b/lib/output.c index 5bf04043..879d52b7 100644 --- a/lib/output.c +++ b/lib/output.c @@ -92,6 +92,7 @@ void lwsl_hexdump(void *vbuf, size_t len) int lws_issue_raw(struct libwebsocket *wsi, unsigned char *buf, size_t len) { + struct libwebsocket_context *context = wsi->protocol->owning_server; int n; #ifndef LWS_NO_EXTENSIONS int m; @@ -132,9 +133,11 @@ int lws_issue_raw(struct libwebsocket *wsi, unsigned char *buf, size_t len) lws_hexdump(buf, len); #endif + lws_latency_pre(context, wsi); #ifdef LWS_OPENSSL_SUPPORT if (wsi->ssl) { n = SSL_write(wsi->ssl, buf, len); + lws_latency(context, wsi, "SSL_write lws_issue_raw", n, n >= 0); if (n < 0) { lwsl_debug("ERROR writing to socket\n"); return -1; @@ -142,6 +145,7 @@ int lws_issue_raw(struct libwebsocket *wsi, unsigned char *buf, size_t len) } else { #endif n = send(wsi->sock, buf, len, MSG_NOSIGNAL); + lws_latency(context, wsi, "send lws_issue_raw", n, n == len); if (n != len) { lwsl_debug("ERROR writing len %d to socket %d\n", len, n); return -1; diff --git a/lib/server.c b/lib/server.c index 0a7c0ddb..381f23a4 100644 --- a/lib/server.c +++ b/lib/server.c @@ -214,8 +214,10 @@ int lws_server_socket_service(struct libwebsocket_context *context, /* listen socket got an unencrypted connection... */ clilen = sizeof(cli_addr); + lws_latency_pre(context, wsi); accept_fd = accept(pollfd->fd, (struct sockaddr *)&cli_addr, &clilen); + lws_latency(context, wsi, "unencrypted accept LWS_CONNMODE_SERVER_LISTENER", accept_fd, accept_fd >= 0); if (accept_fd < 0) { if (errno == EAGAIN || errno == EWOULDBLOCK) { lwsl_debug("accept asks to try again\n"); @@ -321,9 +323,9 @@ int lws_server_socket_service(struct libwebsocket_context *context, LWS_CALLBACK_CLEAR_MODE_POLL_FD, (void *)(long)wsi->sock, NULL, POLLOUT); - //lwsl_notice("LWS_CONNMODE_SSL_ACK_PENDING: pre\n"); + lws_latency_pre(context, wsi); n = SSL_accept(wsi->ssl); - //lwsl_notice("LWS_CONNMODE_SSL_ACK_PENDING: post %d\n", n); + lws_latency(context, wsi, "SSL_accept LWS_CONNMODE_SSL_ACK_PENDING\n", n, n == 1); if (n != 1) { m = SSL_get_error(wsi->ssl, n);