/[lwip]/lwip/src/core/tcp.c
ViewVC logotype

Diff of /lwip/src/core/tcp.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11 by likewise, Wed Jan 8 15:37:20 2003 UTC revision 1.12 by jani, Fri Jan 10 09:41:24 2003 UTC
# Line 457  tcp_slowtmr(void) Line 457  tcp_slowtmr(void)
457    if (pcb == NULL) DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs"));    if (pcb == NULL) DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs"));
458    while(pcb != NULL) {    while(pcb != NULL) {
459      DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb"));      DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb"));
460      ASSERT("tcp_timer_coarse: active pcb->state != CLOSED", pcb->state != CLOSED);      ASSERT("tcp_slowtmr: active pcb->state != CLOSED", pcb->state != CLOSED);
461      ASSERT("tcp_timer_coarse: active pcb->state != LISTEN", pcb->state != LISTEN);      ASSERT("tcp_slowtmr: active pcb->state != LISTEN", pcb->state != LISTEN);
462      ASSERT("tcp_timer_coarse: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);      ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT);
463    
464      pcb_remove = 0;      pcb_remove = 0;
465    
# Line 475  tcp_slowtmr(void) Line 475  tcp_slowtmr(void)
475        if(pcb->unacked != NULL && pcb->rtime >= pcb->rto) {        if(pcb->unacked != NULL && pcb->rtime >= pcb->rto) {
476    
477          /* Time for a retransmission. */          /* Time for a retransmission. */
478          DEBUGF(TCP_RTO_DEBUG, ("tcp_timer_coarse: rtime %ld pcb->rto %d\n",          DEBUGF(TCP_RTO_DEBUG, ("tcp_slowtmr: rtime %ld pcb->rto %d\n",
479                                 tcp_ticks - pcb->rtime, pcb->rto));                                 tcp_ticks - pcb->rtime, pcb->rto));
480    
481          /* Double retransmission time-out unless we are trying to          /* Double retransmission time-out unless we are trying to
# Line 494  tcp_slowtmr(void) Line 494  tcp_slowtmr(void)
494          }          }
495          pcb->cwnd = pcb->mss;          pcb->cwnd = pcb->mss;
496    
497          DEBUGF(TCP_CWND_DEBUG, ("tcp_rexmit_seg: cwnd %u ssthresh %u\n",          DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: cwnd %u ssthresh %u\n",
498                                  pcb->cwnd, pcb->ssthresh));                                  pcb->cwnd, pcb->ssthresh));
499        }        }
500      }      }
# Line 517  tcp_slowtmr(void) Line 517  tcp_slowtmr(void)
517         pcb->rto * TCP_OOSEQ_TIMEOUT) {         pcb->rto * TCP_OOSEQ_TIMEOUT) {
518        tcp_segs_free(pcb->ooseq);        tcp_segs_free(pcb->ooseq);
519        pcb->ooseq = NULL;        pcb->ooseq = NULL;
520        DEBUGF(TCP_CWND_DEBUG, ("tcp: dropping OOSEQ queued data\n"));        DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: dropping OOSEQ queued data\n"));
521      }      }
522  #endif /* TCP_QUEUE_OOSEQ */  #endif /* TCP_QUEUE_OOSEQ */
523    
# Line 526  tcp_slowtmr(void) Line 526  tcp_slowtmr(void)
526        if((u32_t)(tcp_ticks - pcb->tmr) >        if((u32_t)(tcp_ticks - pcb->tmr) >
527           TCP_SYN_RCVD_TIMEOUT / TCP_SLOW_INTERVAL) {           TCP_SYN_RCVD_TIMEOUT / TCP_SLOW_INTERVAL) {
528          ++pcb_remove;          ++pcb_remove;
529          DEBUGF(TCP_DEBUG, ("tcp_slottmr: removing pcb stuck in SYN-RCVD\n"));          DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in SYN-RCVD\n"));
530        }        }
531      }      }
532    
# Line 536  tcp_slowtmr(void) Line 536  tcp_slowtmr(void)
536        tcp_pcb_purge(pcb);              tcp_pcb_purge(pcb);      
537        /* Remove PCB from tcp_active_pcbs list. */        /* Remove PCB from tcp_active_pcbs list. */
538        if(prev != NULL) {        if(prev != NULL) {
539          ASSERT("tcp_timer_coarse: middle tcp != tcp_active_pcbs", pcb != tcp_active_pcbs);          ASSERT("tcp_slowtmr: middle tcp != tcp_active_pcbs", pcb != tcp_active_pcbs);
540          prev->next = pcb->next;          prev->next = pcb->next;
541        } else {        } else {
542          /* This PCB was the first. */          /* This PCB was the first. */
543          ASSERT("tcp_timer_coarse: first pcb == tcp_active_pcbs", tcp_active_pcbs == pcb);          ASSERT("tcp_slowtmr: first pcb == tcp_active_pcbs", tcp_active_pcbs == pcb);
544          tcp_active_pcbs = pcb->next;          tcp_active_pcbs = pcb->next;
545        }        }
546    
# Line 555  tcp_slowtmr(void) Line 555  tcp_slowtmr(void)
555        ++pcb->polltmr;        ++pcb->polltmr;
556        if(pcb->polltmr >= pcb->pollinterval) {        if(pcb->polltmr >= pcb->pollinterval) {
557          pcb->polltmr = 0;          pcb->polltmr = 0;
558          DEBUGF(TCP_DEBUG, ("tcp_slottmr: polling application\n"));          DEBUGF(TCP_DEBUG, ("tcp_slowtmr: polling application\n"));
559          TCP_EVENT_POLL(pcb, err);          TCP_EVENT_POLL(pcb, err);
560          if(err == ERR_OK) {          if(err == ERR_OK) {
561            tcp_output(pcb);            tcp_output(pcb);
# Line 572  tcp_slowtmr(void) Line 572  tcp_slowtmr(void)
572    prev = NULL;        prev = NULL;    
573    pcb = tcp_tw_pcbs;    pcb = tcp_tw_pcbs;
574    while(pcb != NULL) {    while(pcb != NULL) {
575      ASSERT("tcp_timer_coarse: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);      ASSERT("tcp_slowtmr: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT);
576      pcb_remove = 0;      pcb_remove = 0;
577    
578      /* Check if this PCB has stayed long enough in TIME-WAIT */      /* Check if this PCB has stayed long enough in TIME-WAIT */
# Line 587  tcp_slowtmr(void) Line 587  tcp_slowtmr(void)
587        tcp_pcb_purge(pcb);              tcp_pcb_purge(pcb);      
588        /* Remove PCB from tcp_tw_pcbs list. */        /* Remove PCB from tcp_tw_pcbs list. */
589        if(prev != NULL) {        if(prev != NULL) {
590          ASSERT("tcp_timer_coarse: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs);          ASSERT("tcp_slowtmr: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs);
591          prev->next = pcb->next;          prev->next = pcb->next;
592        } else {        } else {
593          /* This PCB was the first. */          /* This PCB was the first. */
594          ASSERT("tcp_timer_coarse: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);          ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb);
595          tcp_tw_pcbs = pcb->next;          tcp_tw_pcbs = pcb->next;
596        }        }
597        pcb2 = pcb->next;        pcb2 = pcb->next;

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26