]> git.meshlink.io Git - utcp/blobdiff - utcp_priv.h
Turn magic numbers into #defines.
[utcp] / utcp_priv.h
index 184e3386bf00e8c3a3addabd1c39bd9086f5d40a..3a119f16cf60a878e327e0b9ebe49efe3aff2f62 100644 (file)
 #define FIN 4
 #define RST 8
 
+#define NSACKS 4
 #define DEFAULT_SNDBUFSIZE 4096
 #define DEFAULT_MAXSNDBUFSIZE 131072
+#define DEFAULT_RCVBUFSIZE 0
+#define DEFAULT_MAXRCVBUFSIZE 131072
+
+#define DEFAULT_MTU 1000
+
+#define DEFAULT_USER_TIMEOUT 60 // s
 
 struct hdr {
        uint16_t src; // Source port
@@ -71,6 +78,18 @@ static const char *strstate[] __attribute__((unused)) = {
        [TIME_WAIT] = "TIME_WAIT"
 };
 
+struct buffer {
+       char *data;
+       uint32_t used;
+       uint32_t size;
+       uint32_t maxsize;
+};
+
+struct sack {
+       uint32_t offset;
+       uint32_t len;
+};
+
 struct utcp_connection {
        void *priv;
        struct utcp *utcp;
@@ -80,6 +99,7 @@ struct utcp_connection {
        // Callbacks
 
        utcp_recv_t recv;
+       utcp_poll_t poll;
 
        // TCP State
 
@@ -110,12 +130,11 @@ struct utcp_connection {
        struct timeval conn_timeout;
        struct timeval rtrx_timeout;
 
-       // Send buffer
+       // Buffers
 
-       char *sndbuf;
-       uint32_t sndbufused;
-       uint32_t sndbufsize;
-       uint32_t maxsndbufsize;
+       struct buffer sndbuf;
+       struct buffer rcvbuf;
+       struct sack sacks[NSACKS];
 
        // Per-socket options