Merge "Fix compiler warnings" into connectivity-abstraction
[platform/upstream/iotivity.git] / resource / csdk / connectivity / lib / extlibs / arduino_linux_ethernet_socket_cpp.patch
1 --- /usr/share/arduino/libraries/Ethernet/utility/socket.cpp    2014-06-13 15:35:45.257740458 -0700
2 +++ /oc/usr/share/arduino/libraries/Ethernet/utility/socket.cpp 2014-08-10 17:20:30.273142691 -0700
3 @@ -248,6 +248,7 @@
4  {
5    uint8_t head[8];
6    uint16_t data_len=0;
7 +  uint16_t data_copied=0;
8    uint16_t ptr=0;
9  
10    if ( len > 0 )
11 @@ -268,10 +269,6 @@
12        data_len = head[6];
13        data_len = (data_len << 8) + head[7];
14  
15 -      W5100.read_data(s, (uint8_t *)ptr, buf, data_len); // data copy.
16 -      ptr += data_len;
17 -
18 -      W5100.writeSnRX_RD(s, ptr);
19        break;
20  
21      case SnMR::IPRAW :
22 @@ -285,10 +282,6 @@
23        data_len = head[4];
24        data_len = (data_len << 8) + head[5];
25  
26 -      W5100.read_data(s, (uint8_t *)ptr, buf, data_len); // data copy.
27 -      ptr += data_len;
28 -
29 -      W5100.writeSnRX_RD(s, ptr);
30        break;
31  
32      case SnMR::MACRAW:
33 @@ -297,17 +290,22 @@
34        data_len = head[0];
35        data_len = (data_len<<8) + head[1] - 2;
36  
37 -      W5100.read_data(s,(uint8_t*) ptr,buf,data_len);
38 -      ptr += data_len;
39 -      W5100.writeSnRX_RD(s, ptr);
40        break;
41  
42      default :
43        break;
44      }
45 +
46 +    if (data_len > 0)
47 +    {
48 +        data_copied = (data_len <= len) ? data_len : len;// only copy the len bytes, rest of is discarded.
49 +        W5100.read_data(s, (uint8_t *)ptr, buf, data_copied); // data copy.
50 +        ptr += data_len;
51 +        W5100.writeSnRX_RD(s, ptr);
52 +    }
53      W5100.execCmdSn(s, Sock_RECV);
54    }
55 -  return data_len;
56 +  return data_copied;
57  }
58  
59