/[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.31.2.3 by jani, Mon Jun 23 22:33:56 2003 UTC revision 1.31.2.4 by kieranm, Thu Aug 21 09:59:21 2003 UTC
# Line 318  tcp_listen(struct tcp_pcb *pcb) Line 318  tcp_listen(struct tcp_pcb *pcb)
318    lpcb->callback_arg = pcb->callback_arg;    lpcb->callback_arg = pcb->callback_arg;
319    lpcb->local_port = pcb->local_port;    lpcb->local_port = pcb->local_port;
320    lpcb->state = LISTEN;    lpcb->state = LISTEN;
321      lpcb->so_options = pcb->so_options;
322      lpcb->so_options |= SOF_ACCEPTCONN;
323      lpcb->ttl = pcb->ttl;
324      lpcb->tos = pcb->tos;
325    ip_addr_set(&lpcb->local_ip, &pcb->local_ip);    ip_addr_set(&lpcb->local_ip, &pcb->local_ip);
326    memp_free(MEMP_TCP_PCB, pcb);    memp_free(MEMP_TCP_PCB, pcb);
327  #if LWIP_CALLBACK_API  #if LWIP_CALLBACK_API
# Line 520  tcp_slowtmr(void) Line 524  tcp_slowtmr(void)
524        }        }
525      }      }
526    
527       /* Check if KEEPALIVE should be sent */
528       if((pcb->so_options & SOF_KEEPALIVE) && ((pcb->state == ESTABLISHED) || (pcb->state == CLOSE_WAIT))) {
529          if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keepalive + TCP_MAXIDLE) / TCP_SLOW_INTERVAL)  {
530             LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: KEEPALIVE timeout. Aborting connection to %u.%u.%u.%u.\n",
531                                     ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip),
532                                     ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip)));
533    
534             tcp_abort(pcb);
535          }
536          else if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keepalive + pcb->keep_cnt * TCP_KEEPINTVL) / TCP_SLOW_INTERVAL) {
537             tcp_keepalive(pcb);
538             pcb->keep_cnt++;
539          }
540       }
541    
542      /* If this PCB has queued out of sequence data, but has been      /* If this PCB has queued out of sequence data, but has been
543         inactive for too long, will drop the data (it will eventually         inactive for too long, will drop the data (it will eventually
544         be retransmitted). */         be retransmitted). */
# Line 810  tcp_alloc(u8_t prio) Line 829  tcp_alloc(u8_t prio)
829      pcb->snd_buf = TCP_SND_BUF;      pcb->snd_buf = TCP_SND_BUF;
830      pcb->snd_queuelen = 0;      pcb->snd_queuelen = 0;
831      pcb->rcv_wnd = TCP_WND;      pcb->rcv_wnd = TCP_WND;
832        pcb->tos = 0;
833        pcb->ttl = TCP_TTL;
834      pcb->mss = TCP_MSS;      pcb->mss = TCP_MSS;
835      pcb->rto = 3000 / TCP_SLOW_INTERVAL;      pcb->rto = 3000 / TCP_SLOW_INTERVAL;
836      pcb->sa = 0;      pcb->sa = 0;
# Line 829  tcp_alloc(u8_t prio) Line 850  tcp_alloc(u8_t prio)
850  #if LWIP_CALLBACK_API  #if LWIP_CALLBACK_API
851      pcb->recv = tcp_recv_null;      pcb->recv = tcp_recv_null;
852  #endif /* LWIP_CALLBACK_API */    #endif /* LWIP_CALLBACK_API */  
853        
854        /* Init KEEPALIVE timer */
855        pcb->keepalive = TCP_KEEPDEFAULT;
856        pcb->keep_cnt = 0;
857    }    }
858    return pcb;    return pcb;
859  }  }

Legend:
Removed from v.1.31.2.3  
changed lines
  Added in v.1.31.2.4

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