@@ -118,6 +118,8 @@ int main(int argc, char** argv)
118118 if ((listenfd = socket (AF_INET6 , SOCK_DGRAM , 0 )) < 0 ) {
119119 printf ("Cannot create socket.\n" );
120120 cleanup = 1 ;
121+ cont = 1 ;
122+ break ;
121123 }
122124 printf ("Socket allocated\n" );
123125
@@ -135,13 +137,17 @@ int main(int argc, char** argv)
135137 printf ("Setsockopt SO_REUSEADDR failed.\n" );
136138 cleanup = 1 ;
137139 cont = 1 ;
140+ close (listenfd );
141+ break ;
138142 }
139143
140144 /*Bind Socket*/
141145 if (bind (listenfd , (struct sockaddr * )& servAddr , sizeof (servAddr )) < 0 ) {
142146 printf ("Bind failed.\n" );
143147 cleanup = 1 ;
144148 cont = 1 ;
149+ close (listenfd );
150+ break ;
145151 }
146152
147153 printf ("Awaiting client connection on port %d\n" , SERV_PORT );
@@ -151,7 +157,8 @@ int main(int argc, char** argv)
151157 (struct sockaddr * )& cliaddr , & cliLen );
152158
153159 if (bytesReceived < 0 ) {
154- printf ("No clients in que, enter idle state\n" );
160+ printf ("No clients in queue, enter idle state\n" );
161+ close (listenfd );
155162 continue ;
156163 }
157164 else if (bytesReceived > 0 ) {
@@ -160,12 +167,16 @@ int main(int argc, char** argv)
160167 printf ("Udp connect failed.\n" );
161168 cleanup = 1 ;
162169 cont = 1 ;
170+ close (listenfd );
171+ break ;
163172 }
164173 }
165174 else {
166175 printf ("Recvfrom failed.\n" );
167176 cleanup = 1 ;
168177 cont = 1 ;
178+ close (listenfd );
179+ break ;
169180 }
170181 printf ("Connected!\n" );
171182
@@ -174,6 +185,8 @@ int main(int argc, char** argv)
174185 printf ("wolfSSL_new error.\n" );
175186 cleanup = 1 ;
176187 cont = 1 ;
188+ close (listenfd );
189+ break ;
177190 }
178191
179192 /* set the session ssl to client connection port */
@@ -185,6 +198,8 @@ int main(int argc, char** argv)
185198
186199 printf ("error = %d, %s\n" , e , wolfSSL_ERR_reason_error_string (e ));
187200 printf ("SSL_accept failed.\n" );
201+ wolfSSL_free (ssl );
202+ close (listenfd );
188203 continue ;
189204 }
190205 if ((recvLen = wolfSSL_read (ssl , buff , sizeof (buff )- 1 )) > 0 ) {
@@ -215,6 +230,7 @@ int main(int argc, char** argv)
215230 wolfSSL_set_fd (ssl , 0 );
216231 wolfSSL_shutdown (ssl );
217232 wolfSSL_free (ssl );
233+ close (listenfd );
218234
219235 printf ("Client left cont to idle state\n" );
220236 cont = 0 ;
0 commit comments