+ if (socket->remaning_data_len == 0)
+ {
+ LOG_INFO("No byte left.\n");
+ if (socket->rx_buf_conn)
+ netbuf_delete(socket->rx_buf_conn);
+ }
+ else if (socket->remaning_data_len > 0)
+ {
+ LOG_INFO("Return stored bytes.\n");
+ ASSERT(socket->rx_buf_conn);
+ netbuf_data(socket->rx_buf_conn, (void **)&_buf, &recv_data_len);
+
+ if (_buf)
+ {
+ ASSERT((recv_data_len - socket->remaning_data_len) > 0);
+ _len = MIN((size_t)(socket->remaning_data_len), len);
+ memcpy((char *)buf, &_buf[recv_data_len - socket->remaning_data_len], _len);
+
+ socket->remaning_data_len -= _len;
+ return _len;
+ }
+ else
+ {
+ LOG_ERR("No valid data to read\n");
+ socket->remaning_data_len = 0;
+ netbuf_delete(socket->rx_buf_conn);
+ return 0;
+ }
+ }
+
+ /* Try reconnecting if our socket isn't valid */