A fork of the original interface for OS/2. Features a correctly-implemented recv (but retains the old behavior via recv2).

Dependencies:   BufferedSerial

Dependents:   weather_clock weather_clock

Revision:
13:41098c907200
Parent:
12:c5f0eac67a8a
Child:
16:3f0efaa57a12
--- a/Socket/UDPSocket.cpp	Wed Oct 08 19:57:58 2014 +0000
+++ b/Socket/UDPSocket.cpp	Sun Nov 30 21:14:09 2014 +0000
@@ -31,44 +31,12 @@
 
 int UDPSocket::init(void)
 {
-    wifi->setProtocol(UDP);
-    wifi->exit();
     return 0;
 }
 
 // Server initialization
 int UDPSocket::bind(int port)
 {
-    char cmd[17];
-    
-    // set local port
-    sprintf(cmd, "set i l %d\n\r", port);
-    if (!wifi->sendCommand(cmd, "AOK")){
-        pc.printf("bind to port failed\r\n");
-        return -1;}
-        
-    // save
-    //if (!wifi->sendCommand("save\n\r", "Stor"))
-        //return -1;
-    
-    // reboot
-    //wifi->reboot();
-    
-    // set udp protocol
-    //wifi->setProtocol(UDP);
-    /*
-    // connect the network
-    if (wifi->isDHCP()) {
-        if (!wifi->sendCommand("join\n\r", "DHCP=ON", NULL, 10000))
-            return -1;
-    } else {
-        if (!wifi->sendCommand("join\n\r", "Associated", NULL, 10000))
-            return -1;
-    }
-    */    
-    // exit
-    wifi->exit();
-    wifi->flush();
     return 0;
 }
 
@@ -133,57 +101,10 @@
 
 bool UDPSocket::confEndpoint(Endpoint & ep)
 {
-    char * host;
-    char cmd[30];
-    if (!endpoint_configured) {
-        host = ep.get_address();
-        if (host[0] != '\0') {
-            // set host
-            sprintf(cmd, "set i h %s\r\n", host);
-            if (!wifi->sendCommand(cmd, "AOK"))
-                return false;
-                
-            // set remote port
-            sprintf(cmd, "set i r %d\r\n", ep.get_port());
-            if (!wifi->sendCommand(cmd, "AOK"))
-                return false;
-                
-            wifi->exit();
-            endpoint_configured = true;
-            return true;
-        }
-    }
     return true;
 }
 
 bool UDPSocket::readEndpoint(Endpoint & ep)
 {
-    char recv[256];
-    int begin = 0;
-    int end = 0;
-    string str;
-    string addr;
-    int port;
-    if (!endpoint_read) {
-        if (!wifi->sendCommand("get ip\r\n", NULL, recv))
-            return false;
-        wifi->exit();
-        str = recv;
-        begin = str.find("HOST=");
-        end = str.find("PROTO=");
-        if (begin != string::npos && end != string::npos) {
-            str = str.substr(begin + 5, end - begin - 5);
-            int pos = str.find(":");
-            if (pos != string::npos) {
-                addr = str.substr(0, pos);
-                port = atoi(str.substr(pos + 1).c_str());
-                ep.set_address(addr.c_str(), port);
-                endpoint_read = true;
-                wifi->flush();
-                return true;
-            }
-        }
-        wifi->flush();
-    }
     return false;
 }