Ignore:
File:
1 edited

Legend:

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

    ref1ddad r1ddbf81  
    8484                    tcp_iqueue_entry_t, link);
    8585
    86                 if (seq_no_seg_cmp(iqueue->conn, iqe->seg, qe->seg) >= 0)
     86                if (seq_no_seg_cmp(iqueue->conn, iqe->seg, qe->seg) < 0)
    8787                        break;
     88
     89                link = list_next(link, &iqueue->list);
    8890        }
    8991
     
    9294        else
    9395                list_append(&iqe->link, &iqueue->list);
     96}
     97
     98/** Remove segment from incoming queue.
     99 *
     100 * @param iqueue        Incoming queue
     101 * @param seg           Segment
     102 */
     103void tcp_iqueue_remove_seg(tcp_iqueue_t *iqueue, tcp_segment_t *seg)
     104{
     105        tcp_iqueue_entry_t *qe;
     106        link_t *link;
     107
     108        log_msg(LOG_DEFAULT, LVL_NOTE, "tcp_iqueue_remove_seg()");
     109
     110        link = list_first(&iqueue->list);
     111        while (link != NULL) {
     112                        log_msg(LOG_DEFAULT, LVL_NOTE, "tcp_iqueue_remove_seg() - next");
     113                qe = list_get_instance(link,
     114                    tcp_iqueue_entry_t, link);
     115
     116                if (qe->seg == seg) {
     117                        log_msg(LOG_DEFAULT, LVL_NOTE, "tcp_iqueue_remove_seg() - found, DONE");
     118                        list_remove(&qe->link);
     119                        free(qe);
     120                        return;
     121                }
     122
     123                link = list_next(link, &iqueue->list);
     124        }
     125
     126        log_msg(LOG_DEFAULT, LVL_NOTE, "tcp_iqueue_remove_seg() - not found");
     127        assert(false);
    94128}
    95129
Note: See TracChangeset for help on using the changeset viewer.