@@ -190,7 +190,7 @@ int tls_smp_server_task() {
190190#endif /* WOLFSSL_TLS13 */
191191
192192 /* Initialize the server address struct with zeros */
193- memset (& servAddr , 0 , sizeof (servAddr ));
193+ XMEMSET (& servAddr , 0 , sizeof (servAddr ));
194194
195195 /* Fill in the server address */
196196 servAddr .sin_family = AF_INET ; /* using IPv4 */
@@ -280,13 +280,14 @@ int tls_smp_server_task() {
280280 * a non-negative integer, the socket file descriptor.
281281 */
282282 sockfd = socket (AF_INET , SOCK_STREAM , 0 );
283- if (sockfd > 0 ) {
283+ if (sockfd >= 0 ) {
284284 WOLFSSL_MSG ("socket creation successful\n" );
285285 }
286286 else {
287- // TODO show errno
287+ char err_msg [128 ];
288+ XSNPRINTF (err_msg , sizeof (err_msg ), "ERROR: failed to create a socket (errno = %d).\n" , errno );
289+ WOLFSSL_ERROR_MSG (err_msg );
288290 ret = WOLFSSL_FAILURE ;
289- WOLFSSL_ERROR_MSG ("ERROR: failed to create a socket.\n" );
290291 }
291292 }
292293 else {
@@ -348,9 +349,10 @@ int tls_smp_server_task() {
348349 WOLFSSL_MSG ("setsockopt re-use addr successful\n" );
349350 }
350351 else {
351- // TODO show errno
352+ char err_msg [128 ];
353+ XSNPRINTF (err_msg , sizeof (err_msg ), "ERROR: failed to setsockopt addr on socket (errno = %d).\n" , errno );
354+ WOLFSSL_ERROR_MSG (err_msg );
352355 ret = WOLFSSL_FAILURE ;
353- WOLFSSL_ERROR_MSG ("ERROR: failed to setsockopt addr on socket.\n" );
354356 }
355357 }
356358 else {
@@ -370,10 +372,9 @@ int tls_smp_server_task() {
370372 WOLFSSL_MSG ("setsockopt re-use port successful\n" );
371373 }
372374 else {
373- // TODO show errno
374- // ret = WOLFSSL_FAILURE;
375- // TODO what's up with the error?
376- WOLFSSL_ERROR_MSG ("ERROR: failed to setsockopt port on socket. >> IGNORED << \n" );
375+ char err_msg [128 ];
376+ XSNPRINTF (err_msg , sizeof (err_msg ), "ERROR: failed to setsockopt port on socket (errno = %d). >> IGNORED << \n" , errno );
377+ WOLFSSL_ERROR_MSG (err_msg );
377378 }
378379 }
379380 else {
@@ -738,21 +739,19 @@ int tls_smp_server_task() {
738739 /* Accept client connections */
739740 if ((mConnd = accept (sockfd , (struct sockaddr * )& clientAddr , & size ))
740741 == -1 ) {
741- // fprintf(stderr, "ERROR: failed to accept the connection\n\n");
742- ret = -1 ;
743- // TODO goto exit;
744- WOLFSSL_ERROR_MSG ("ERROR: failed socket accept\n" );
745- ret = WOLFSSL_FAILURE ;
742+ WOLFSSL_ERROR_MSG ("ERROR: failed socket accept\n" );
743+ ret = WOLFSSL_FAILURE ;
744+ continue ;
746745 }
747746
748747 /* Create a WOLFSSL object */
749748 if ((ssl = wolfSSL_new (ctx )) == NULL ) {
750- // fprintf(stderr, "ERROR: failed to create WOLFSSL object\n");
751- ret = -1 ;
752- //TODO goto exit;
753- WOLFSSL_ERROR_MSG ("ERROR: filed wolfSSL_new during loop\n" );
749+ WOLFSSL_ERROR_MSG ("ERROR: failed wolfSSL_new during loop\n" );
754750 ret = WOLFSSL_FAILURE ;
755- }
751+ close (mConnd );
752+ mConnd = SOCKET_INVALID ;
753+ continue ;
754+ }
756755
757756 /* Attach wolfSSL to the socket */
758757 wolfSSL_set_fd (ssl , mConnd );
@@ -771,45 +770,42 @@ int tls_smp_server_task() {
771770 if ((ret = wolfSSL_accept (ssl )) != WOLFSSL_SUCCESS ) {
772771 WOLFSSL_ERROR_MSG ("ERROR: wolfSSL_accept\n" );
773772 ret = WOLFSSL_FAILURE ;
774- // fprintf(stderr,
775- // "wolfSSL_accept error = %d\n",
776- // wolfSSL_get_error(ssl, ret));
777- // TODO goto exit;
778773 }
779774 else {
780775 WOLFSSL_MSG ("Client connected successfully\n" );
781776 }
782777
783-
784778#ifdef HAVE_SECRET_CALLBACK
785- wolfSSL_FreeArrays (ssl );
779+ if (ret == WOLFSSL_SUCCESS ) {
780+ wolfSSL_FreeArrays (ssl );
781+ }
786782#endif
787783
788784 /* Read the client data into our buff array */
789- memset (buff , 0 , sizeof (buff ));
790- if ((ret = wolfSSL_read (ssl , buff , sizeof (buff ) - 1 )) < 0 ) {
791- // fprintf(stderr, "ERROR: failed to read\n");
792- //TODO goto exit;
785+ if (ret == WOLFSSL_SUCCESS ) {
786+ XMEMSET (buff , 0 , sizeof (buff ));
787+ if (wolfSSL_read (ssl , buff , sizeof (buff ) - 1 ) <= 0 ) {
788+ WOLFSSL_ERROR_MSG ("ERROR: failed to read\n" );
789+ ret = WOLFSSL_FAILURE ;
790+ }
793791 }
794792
795- /* Print to stdout any data the client sends */
796- // printf("Client: %s\n", buff);
797-
798- /* Check for server shutdown command */
799- if (strncmp (buff , "shutdown" , 8 ) == 0 ) {
800- // printf("Shutdown command issued!\n");
801- mShutdown = 1 ;
802- }
793+ if (ret == WOLFSSL_SUCCESS ) {
794+ /* Check for server shutdown command */
795+ if (XSTRNCMP (buff , "shutdown" , 8 ) == 0 ) {
796+ mShutdown = 1 ;
797+ }
803798
804- /* Write our reply into buff */
805- memset (buff , 0 , sizeof (buff ));
806- memcpy (buff , reply , strlen (reply ));
807- len = strnlen (buff , sizeof ( buff ) );
799+ /* Write our reply into buff */
800+ XMEMSET (buff , 0 , sizeof (buff ));
801+ XMEMCPY (buff , reply , XSTRLEN (reply ));
802+ len = XSTRLEN (buff );
808803
809- /* Reply back to the client */
810- if ((ret = wolfSSL_write (ssl , buff , len )) != len ) {
811- // fprintf(stderr, "ERROR: failed to write\n");
812- // TODO goto exit;
804+ /* Reply back to the client */
805+ if (wolfSSL_write (ssl , buff , len ) != len ) {
806+ WOLFSSL_ERROR_MSG ("ERROR: failed to write\n" );
807+ ret = WOLFSSL_FAILURE ;
808+ }
813809 }
814810
815811 /* Cleanup after this connection */
@@ -967,7 +963,7 @@ int set_time() {
967963 int i = 0 ;
968964 for (i = 0 ; i < NTP_SERVER_COUNT ; i ++ ) {
969965 const char * thisServer = ntpServerList [i ];
970- if (strncmp (thisServer , "\x00" , 1 )) {
966+ if (XSTRNCMP (thisServer , "\x00" , 1 )) {
971967 /* just in case we run out of NTP servers */
972968 break ;
973969 }
0 commit comments