Changeset 2f19103 in mainline for uspace/srv/net/tcp/ucall.c


Ignore:
Timestamp:
2015-05-22T07:21:37Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
58e9dec
Parents:
bf7587b0
Message:

TCP and UDP servers can make use of inet/endpoint.h types internally.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tcp/ucall.c

    rbf7587b0 r2f19103  
    11/*
    2  * Copyright (c) 2011 Jiri Svoboda
     2 * Copyright (c) 2015 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5050/** OPEN user call
    5151 *
    52  * @param lsock         Local socket
    53  * @param fsock         Foreign socket
     52 * @param epp           Endpoint pair
    5453 * @param acpass        Active/passive
    5554 * @param oflags        Open flags
     
    6564 * establishment.
    6665 */
    67 tcp_error_t tcp_uc_open(tcp_sock_t *lsock, tcp_sock_t *fsock, acpass_t acpass,
     66tcp_error_t tcp_uc_open(inet_ep2_t *epp, acpass_t acpass,
    6867    tcp_open_flags_t oflags, tcp_conn_t **conn)
    6968{
    7069        tcp_conn_t *nconn;
    7170
    72         log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_uc_open(%p, %p, %s, %s, %p)",
    73             lsock, fsock, acpass == ap_active ? "active" : "passive",
     71        log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_uc_open(%p, %s, %s, %p)",
     72            epp, acpass == ap_active ? "active" : "passive",
    7473            oflags == tcp_open_nonblock ? "nonblock" : "none", conn);
    7574
    76         nconn = tcp_conn_new(lsock, fsock);
     75        nconn = tcp_conn_new(epp);
    7776        tcp_conn_add(nconn);
    7877        tcp_conn_lock(nconn);
     
    315314
    316315/** Segment arrived */
    317 void tcp_as_segment_arrived(tcp_sockpair_t *sp, tcp_segment_t *seg)
     316void tcp_as_segment_arrived(inet_ep2_t *epp, tcp_segment_t *seg)
    318317{
    319318        tcp_conn_t *conn;
     
    321320        log_msg(LOG_DEFAULT, LVL_DEBUG,
    322321            "tcp_as_segment_arrived(f:(%u), l:(%u))",
    323             sp->foreign.port, sp->local.port);
    324 
    325         conn = tcp_conn_find_ref(sp);
     322            epp->remote.port, epp->local.port);
     323
     324        conn = tcp_conn_find_ref(epp);
    326325        if (conn == NULL) {
    327326                log_msg(LOG_DEFAULT, LVL_WARN, "No connection found.");
    328                 tcp_unexpected_segment(sp, seg);
     327                tcp_unexpected_segment(epp, seg);
    329328                return;
    330329        }
     
    334333        if (conn->cstate == st_closed) {
    335334                log_msg(LOG_DEFAULT, LVL_WARN, "Connection is closed.");
    336                 tcp_unexpected_segment(sp, seg);
     335                tcp_unexpected_segment(epp, seg);
    337336                tcp_conn_unlock(conn);
    338337                tcp_conn_delref(conn);
     
    340339        }
    341340
    342         if (inet_addr_is_any(&conn->ident.foreign.addr))
    343                 conn->ident.foreign.addr = sp->foreign.addr;
    344        
    345         if (conn->ident.foreign.port == TCP_PORT_ANY)
    346                 conn->ident.foreign.port = sp->foreign.port;
    347        
     341        if (inet_addr_is_any(&conn->ident.remote.addr))
     342                conn->ident.remote.addr = epp->remote.addr;
     343
     344        if (conn->ident.remote.port == TCP_PORT_ANY)
     345                conn->ident.remote.port = epp->remote.port;
     346
    348347        if (inet_addr_is_any(&conn->ident.local.addr))
    349                 conn->ident.local.addr = sp->local.addr;
     348                conn->ident.local.addr = epp->local.addr;
    350349
    351350        tcp_conn_segment_arrived(conn, seg);
Note: See TracChangeset for help on using the changeset viewer.