diff --git a/.gitignore b/.gitignore index 1e6909bdf..959e35261 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ examples/client/client examples/echoclient/echoclient examples/echoserver/echoserver examples/server/server +server_ready snifftest output mcapi/test diff --git a/IDE/MDK5-ARM/Projects/CyaSSL-Full/server.c b/IDE/MDK5-ARM/Projects/CyaSSL-Full/server.c index 440dd1d03..7dfdeb999 100644 --- a/IDE/MDK5-ARM/Projects/CyaSSL-Full/server.c +++ b/IDE/MDK5-ARM/Projects/CyaSSL-Full/server.c @@ -475,7 +475,8 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) SetupPkCallbacks(ctx, ssl); #endif - tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS); + tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS, + 0); if (!doDTLS) CloseSocket(sockfd); diff --git a/IDE/MDK5-ARM/Projects/SimpleServer/server.c b/IDE/MDK5-ARM/Projects/SimpleServer/server.c index 43a5ad7fb..f2bbc12f7 100644 --- a/IDE/MDK5-ARM/Projects/SimpleServer/server.c +++ b/IDE/MDK5-ARM/Projects/SimpleServer/server.c @@ -475,7 +475,8 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) SetupPkCallbacks(ctx, ssl); #endif - tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS); + tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS, + 0); if (!doDTLS) CloseSocket(sockfd); diff --git a/cyassl/test.h b/cyassl/test.h index 244466e40..25a5bc508 100644 --- a/cyassl/test.h +++ b/cyassl/test.h @@ -698,7 +698,7 @@ static INLINE void udp_accept(SOCKET_T* sockfd, SOCKET_T* clientfd, static INLINE void tcp_accept(SOCKET_T* sockfd, SOCKET_T* clientfd, func_args* args, word16 port, int useAnyAddr, - int udp) + int udp, int ready_file) { SOCKADDR_IN_T client; socklen_t client_len = sizeof(client); @@ -727,6 +727,17 @@ static INLINE void tcp_accept(SOCKET_T* sockfd, SOCKET_T* clientfd, ready->port = port; #endif + if (ready_file) { +#ifndef NO_FILESYSTEM + FILE* srf = fopen("./server_ready", "w+"); + + if (srf) { + fputs("ready", srf); + fclose(srf); + } +#endif + } + *clientfd = accept(*sockfd, (struct sockaddr*)&client, (ACCEPT_THIRD_T)&client_len); #ifdef USE_WINDOWS_API diff --git a/examples/server/server.c b/examples/server/server.c index 128d1a02e..6217dbb82 100644 --- a/examples/server/server.c +++ b/examples/server/server.c @@ -131,6 +131,7 @@ static void Usage(void) printf("-u Use UDP DTLS," " add -v 2 for DTLSv1 (default), -v 3 for DTLSv1.2\n"); printf("-f Fewer packets/group messages\n"); + printf("-r Create server ready file, for external monitor\n"); printf("-N Use Non-blocking sockets\n"); printf("-S Use Host Name Indication\n"); #ifdef HAVE_OCSP @@ -166,6 +167,7 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) int trackMemory = 0; int fewerPackets = 0; int pkCallbacks = 0; + int serverReadyFile = 0; char* cipherList = NULL; const char* verifyCert = cliCert; const char* ourCert = svrCert; @@ -196,7 +198,7 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) fdOpenSession(Task_self()); #endif - while ((ch = mygetopt(argc, argv, "?dbstnNufPp:v:l:A:c:k:S:oO:")) != -1) { + while ((ch = mygetopt(argc, argv, "?dbstnNufrPp:v:l:A:c:k:S:oO:")) != -1) { switch (ch) { case '?' : Usage(); @@ -232,6 +234,10 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) fewerPackets = 1; break; + case 'r' : + serverReadyFile = 1; + break; + case 'P' : #ifdef HAVE_PK_CALLBACKS pkCallbacks = 1; @@ -482,7 +488,8 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args) SetupPkCallbacks(ctx, ssl); #endif - tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS); + tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS, + serverReadyFile); if (!doDTLS) CloseSocket(sockfd); diff --git a/tests/api.c b/tests/api.c index eff33c45f..adb4797d8 100644 --- a/tests/api.c +++ b/tests/api.c @@ -351,7 +351,7 @@ static THREAD_RETURN CYASSL_THREAD test_server_nofail(void* args) } ssl = CyaSSL_new(ctx); - tcp_accept(&sockfd, &clientfd, (func_args*)args, port, 0, 0); + tcp_accept(&sockfd, &clientfd, (func_args*)args, port, 0, 0, 0); CloseSocket(sockfd); CyaSSL_set_fd(ssl, clientfd); @@ -551,7 +551,7 @@ static THREAD_RETURN CYASSL_THREAD run_cyassl_server(void* args) ssl = CyaSSL_new(ctx); - tcp_accept(&sfd, &cfd, (func_args*)args, port, 0, 0); + tcp_accept(&sfd, &cfd, (func_args*)args, port, 0, 0, 0); CloseSocket(sfd); CyaSSL_set_fd(ssl, cfd);