return NULL;
}
+/*
+ * Read data from socket.
+ *
+ * The read return the bytes that had been received if they are less than we request too.
+ * Otherwise if the byte that we want read are less that the received bytes, we return only
+ * the requested bytes. To get the remaning bytes we need to make an others read, until the
+ * buffer is empty.
+ * When there are not any more bytes, a new read takes data from remote socket.
+ */
static size_t tcpsocket_read(KFile *fd, void *buf, size_t len)
{
TcpSocket *socket = TCPSOCKET_CAST(fd);
typedef struct TcpSocket
{
- KFile fd;
- struct netconn *sock;
- struct netbuf *rx_buf_conn;
- size_t remaning_data_len;
+ KFile fd; ///< KFile context.
+ struct netconn *sock; ///< Current sockect connection pointer.
+ struct netbuf *rx_buf_conn; ///< Current received buffer from socket.
+ size_t remaning_data_len; ///< Number of bytes to read from the received buffer.
- struct ip_addr *local_addr;
- struct ip_addr *remote_addr;
- uint16_t port;
+ struct ip_addr *local_addr; ///< Device Ip.
+ struct ip_addr *remote_addr; ///< Ip address which we want to connect.
+ uint16_t port; ///< Number port to connect.
- int error;
+ int error; ///< Error status.
} TcpSocket;
#define KFT_TCPSOCKET MAKE_ID('T', 'S', 'C', 'K')