diff --git a/.gitignore b/.gitignore index 4464995d..de287f1b 100644 --- a/.gitignore +++ b/.gitignore @@ -211,6 +211,8 @@ include/openssl/srp.h /python /build +build/ +bin/ .gmssl CMakeFiles/ CTestTestfile.cmake diff --git a/include/gmssl/error.h b/include/gmssl/error.h index c9dc3399..bccd6e42 100644 --- a/include/gmssl/error.h +++ b/include/gmssl/error.h @@ -7,40 +7,44 @@ * http://www.apache.org/licenses/LICENSE-2.0 */ - - #ifndef GMSSL_ERROR_H #define GMSSL_ERROR_H - -#include #include -#include #include +#include +#include #ifdef __cplusplus extern "C" { #endif - -#define GMSSL_FMT_BIN 1 -#define GMSSL_FMT_HEX 2 -#define GMSSL_FMT_DER 4 -#define GMSSL_FMT_PEM 8 - - +#define GMSSL_FMT_BIN 1 +#define GMSSL_FMT_HEX 2 +#define GMSSL_FMT_DER 4 +#define GMSSL_FMT_PEM 8 #define DEBUG 1 -#define error_print() \ - do { if (DEBUG) fprintf(stderr, "%s:%d:%s():\n",__FILE__, __LINE__, __func__); } while (0) +#define error_print() \ + do { \ + if (DEBUG) \ + fprintf(stderr, "%s:%d:%s():\n", __FILE__, __LINE__, __func__); \ + } while (0) -#define error_print_msg(fmt, ...) \ - do { if (DEBUG) fprintf(stderr, "%s:%d:%s(): " fmt, __FILE__, __LINE__, __func__, __VA_ARGS__); } while (0) - -#define error_puts(str) \ - do { if (DEBUG) fprintf(stderr, "%s: %d: %s: %s", __FILE__, __LINE__, __func__, str); } while (0) +#define error_print_msg(fmt, ...) \ + do { \ + if (DEBUG) \ + fprintf(stderr, "%s:%d:%s(): " fmt, __FILE__, __LINE__, __func__, \ + __VA_ARGS__); \ + } while (0) +#define error_puts(str) \ + do { \ + if (DEBUG) \ + fprintf(stderr, "%s: %d: %s: %s", __FILE__, __LINE__, __func__, \ + str); \ + } while (0) void print_der(const uint8_t *in, size_t inlen); void print_bytes(const uint8_t *in, size_t inlen); @@ -48,15 +52,13 @@ void print_nodes(const uint32_t *in, size_t inlen); #define FMT_CARRAY 0x80 - int format_print(FILE *fp, int format, int indent, const char *str, ...); -int format_bytes(FILE *fp, int format, int indent, const char *str, const uint8_t *data, size_t datalen); -int format_string(FILE *fp, int format, int indent, const char *str, const uint8_t *data, size_t datalen); - - - -//int tls_trace(int format, int indent, const char *str, ...); +int format_bytes(FILE *fp, int format, int indent, const char *str, + const uint8_t *data, size_t datalen); +int format_string(FILE *fp, int format, int indent, const char *str, + const uint8_t *data, size_t datalen); +// int tls_trace(int format, int indent, const char *str, ...); #ifdef __cplusplus } diff --git a/src/tls.c b/src/tls.c index 739b2f39..980cdcde 100644 --- a/src/tls.c +++ b/src/tls.c @@ -1450,9 +1450,16 @@ int tls_record_do_recv(uint8_t *record, size_t *recordlen, tls_socket_t sock) { len = 5; while (len) { - while ((r = tls_socket_recv(sock, record + 5 - len, len, 0)) < 0 && - errno == EAGAIN) { + while ((r = tls_socket_recv(sock, record + 5 - len, len, 0)) < 0) { + if (errno == EAGAIN) { + continue; + } else { + error_print(); + return -1; + } } + + error_print(); if (r == 0) { perror("tls_record_do_recv"); error_print(); @@ -2261,11 +2268,10 @@ int tls_do_handshake(TLS_CONNECT *conn) { else return tls12_do_accept(conn); case TLS_protocol_tls13: - if (conn->is_client) + if (conn->is_client) return tls13_do_connect(conn); - else + else return tls13_do_accept(conn); - } error_print();