Changeset 32aea9f4 in mainline for uspace/srv/net/tl/tcp/iqueue.c


Ignore:
Timestamp:
2011-10-23T02:23:46Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f343a16
Parents:
8c7a054
Message:

Sort incoming segments by sequence order.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/tcp/iqueue.c

    r8c7a054 r32aea9f4  
    6565{
    6666        tcp_iqueue_entry_t *iqe;
     67        tcp_iqueue_entry_t *qe;
     68        link_t *link;
    6769        log_msg(LVL_DEBUG, "tcp_iqueue_insert_seg()");
    6870
     
    7577        iqe->seg = seg;
    7678
    77         /* XXX Sort by sequence number */
    78         list_append(&iqe->link, &iqueue->list);
     79        /* Sort by sequence number */
     80
     81        link = list_first(&iqueue->list);
     82        while (link != NULL) {
     83                qe = list_get_instance(link,
     84                    tcp_iqueue_entry_t, link);
     85
     86                if (seq_no_seg_cmp(iqueue->conn, iqe->seg, qe->seg) >= 0)
     87                        break;
     88        }
     89
     90        if (link != NULL)
     91                list_insert_before(&iqe->link, &qe->link);
     92        else
     93                list_append(&iqe->link, &iqueue->list);
    7994}
    8095
Note: See TracChangeset for help on using the changeset viewer.