ThingPlug Test

Dependents:   WizFi310_ThingPlug_Test WizFi310_ThingPlug_Test_P

Fork of WizFi310Interface by WIZnet

Revision:
5:72212beb817c
Parent:
4:176b6f3addd6
--- a/WizFi310Interface.cpp	Mon Apr 17 06:44:26 2017 +0000
+++ b/WizFi310Interface.cpp	Mon Jun 26 00:17:10 2017 +0000
@@ -125,6 +125,7 @@
     
     struct wizfi310_socket *socket = new struct wizfi310_socket;
     if (!socket) {
+        delete socket;
         return NSAPI_ERROR_NO_SOCKET;
     }
     
@@ -186,6 +187,7 @@
     struct wizfi310_socket *socket = (struct wizfi310_socket *)handle;
 
     WizFi310::Protocol proto = (socket->proto == NSAPI_UDP) ? WizFi310::PROTO_UDP : WizFi310::PROTO_TCP;
+    
     if((cid = _wizfi310.open(proto, addr.get_ip_address(), addr.get_port())) == -1 )
     {
         return NSAPI_ERROR_DEVICE_ERROR;
@@ -205,16 +207,15 @@
     
 int WizFi310Interface::socket_accept(void **handle, void *server)
 {
-    struct wizfi310_socket *socket = (struct wizfi310_socket *)server;
     struct wizfi310_socket *new_socket = new struct wizfi310_socket;
-
+    
     if( !new_socket )
     {
         return NSAPI_ERROR_NO_SOCKET;
     }
 
     memset(new_socket, 0, sizeof(new_socket));
-
+    
     for(int cid=0; cid<WIZFI310_SOCKET_COUNT; cid++)
     {
         if( _wizfi310.accept(cid) != -1 )
@@ -224,10 +225,12 @@
             new_socket->connected = true;
 
             *handle = new_socket;
+            
+            
             return 0;
         }
     }
-
+    delete new_socket;
     return NSAPI_ERROR_WOULD_BLOCK;
 }