]> git.meshlink.io Git - utcp/blobdiff - utcp.c
Introduce utcp_connect_ex().
[utcp] / utcp.c
diff --git a/utcp.c b/utcp.c
index 0cb68b9da7195495602c1c196c835f2cab46d7b2..8143e0e8eae20906e974d51e4635f34abd2fda87 100644 (file)
--- a/utcp.c
+++ b/utcp.c
@@ -378,11 +378,14 @@ static void stop_retransmit_timer(struct utcp_connection *c) {
        debug("timeout cleared\n");
 }
 
-struct utcp_connection *utcp_connect(struct utcp *utcp, uint16_t dst, utcp_recv_t recv, void *priv) {
+struct utcp_connection *utcp_connect_ex(struct utcp *utcp, uint16_t dst, utcp_recv_t recv, void *priv, uint32_t flags) {
        struct utcp_connection *c = allocate_connection(utcp, 0, dst);
        if(!c)
                return NULL;
 
+       assert((flags & ~0xf) == 0);
+
+       c->flags = flags;
        c->recv = recv;
        c->priv = priv;
 
@@ -407,6 +410,10 @@ struct utcp_connection *utcp_connect(struct utcp *utcp, uint16_t dst, utcp_recv_
        return c;
 }
 
+struct utcp_connection *utcp_connect(struct utcp *utcp, uint16_t dst, utcp_recv_t recv, void *priv) {
+       return utcp_connect_ex(utcp, dst, recv, priv, UTCP_TCP);
+}
+
 void utcp_accept(struct utcp_connection *c, utcp_recv_t recv, void *priv) {
        if(c->reapable || c->state != SYN_RECEIVED) {
                debug("Error: accept() called on invalid connection %p in state %s\n", c, strstate[c->state]);