From 0405ba1ccfa5630ce16802e2d74bc799972fb613 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Fri, 16 Oct 2015 18:02:07 -0400 Subject: [PATCH] Misc changes --- ext/bin/lwip/liblwip.so | Bin 342016 -> 342016 bytes ext/lwip/src/core/tcp.c | 116 +++++++++++++++++------------------ ext/lwip/src/core/tcp_in.c | 54 ++++++++-------- ext/lwip/src/core/tcp_out.c | 40 ++++++------ ext/lwipopts.h | 4 +- netcon/Intercept.c | 11 ++++ netcon/NetconEthernetTap.cpp | 13 +++- netcon/libintercept.so.1.0 | Bin 45880 -> 45992 bytes netcon/liblwip.so | Bin 0 -> 342016 bytes 9 files changed, 128 insertions(+), 110 deletions(-) create mode 100755 netcon/liblwip.so diff --git a/ext/bin/lwip/liblwip.so b/ext/bin/lwip/liblwip.so index c315404a8f86e51a6fe8b94a856dd512dc5dc56b..aba90d8e98a904888d0beaf1e07412aca6d223e3 100755 GIT binary patch delta 8316 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 Ohlmq{Jh929Ch^~;AK114 delta 8316 zcmZ`<3tSY{{+~0utDx-8N-PSmroZ!J?ZZPP{Y0hXFxZy{wq@sX+EwX!U4+EwoNoS9j?_um~qo$vg8A9b$~zn1B%X`cYR?b6o}u~w$l8QlQhyBQCxVzo?v?LQ;1S{8EL zk@jlYTQuM}5f94rse!o+$_D-^@Bnk#st?HC9|l%56U*g|TZf3^9@)G7`7c|FTV?Oe zmv$P(%`#0LAIhNL_&MfHvQSz@wvc(Ii<@Ncx$$0uxL&4ak9ybkb09txRuDaxh4I?U=YmroX&4 zE_977PEe)8xNg5dSLE7H{kq zSIP9)8-p1{y&1}&`^m}{>6QbjUH1m{F2Z1I@BX4zr=zLPJXiG3Px5LOkb>!scA|t5%AQM@v)#$V2;P! z6L;?VJcFqfyRk8SVojdg6b0eQDQS_*5kGexHbzcq^2eqYt-4CB50E}<;eR~S_P4C>n=7Oc$ibZ!aPt^9~Ug}FLkQe4uOkq*H`W4 zJrHho{+Y`3L1BkLiov-}>tH2LOOJ$w^;iICD7xR+h@~8ido~$Ep_nx-x*yEM(|K+O zyWy#4`Lxt_Fna1l+~;^4;aqgP{@f=#bp*_8$rslWeSJ5rec)1_yJD$KrJ^_y(7h;y zL0-|AAo%3(Sz-f-nxg&U5Fih$d>rFFGh&VPQ}#4AX1TLtjbJ6PZj(v#1=J7Id;##? zS;&0X&?3u>SWEpAdVdxy!l{KsrsAx4EBpgJ&H9qx^RnHMixT20c6v&9u_!7;xw{3iZl49nS#!7}GYaV{p% z6&*d7=N=E>xhLQTy%%g{y$^$?(3Q%hAGmspb7cCx>ly1DS$Nv*j9rd-y=$62NA?bw zGnGg#UV-r*tKgv%Z=|`kB4G2pJh4=!W_LdZ&%66}EJeaSrg#RfjgV)#hs2J`@z~md zd3r&9tkGi%E|tC2?hqoq&5H@#%!>KP+jt!2FEy0@R_vYT*(~C`^2RKj)~rQo@r+`2 zB+MO3H2$p7dr$3c-Z*_e&_vN?`dvap~ zBe2tH4}A=&4Pfdr+|CTF(2WC78J!S8YL1!zSEG(V5;G z%SIbW8ST3wGup~u*?rr13XS!vc*>#HPJ>60nyie&((IqTn^sg3lItC}s=ZiTI(vt@6!&VqMrJn`lxG#+yoi!?Jbk>-xu?<;Ez%DQ^eFcdZ*b65JLd9V` z7kHJ<9gf+ms<$ph&5iY8WsQyXkE`NWAg*|atL(eR3&KB6=J6{ zOZR`67%~vp|>_V-<3(0v(NW~Xd0;Jem9N2|39MFv1p7;k1o=qBmL2{(rDv1(IkyVpYBS!)8|h2Cw98}bXBw&5tX&k3DOv=t@65-;Q*p*Um@dR5o2m z%#v9FjhF;hz(0YIEeEMCEx7&I)4YHUe4ScH3m4Dk>@h$4F=zkE*{}TUKF;ppY#nCQ4=eMT}MnP@L53^`Kc7mKJ8vi(1mHLFc*X>{6BWra1&b?x)FYz zr0TN$x{(Pq^IAw-zu?jUp7C+NU_b(W<59s!svy=ccrt;mdsI-Y3PSvXP6@Q;QNgpS zz~~o5BrLuDND0xZ|Ce}uEG-jg7YJahv+`qqUgLLu!SC^O+@pens^DwC;2-gH@%6Og zj_6TxN|<|3vkcQBn3A&qZ|xFCId{3%apP~QZY&Ib?0I@-I5u!`7AW@kJB~5a^)$>( zCw@xH9(WIYiKA8xG_pYU()2jCX>sr9aWy=S<>v{n;Re%t4lHc^go_uYlfB73 zj-6_#>nB*{^h$jwiKV~Qzl?TtLm1kr4IR*~Y6xo+i{q+_b?5AlgSjD%pU#fOvGhbk zSOlDWRk?pE`f7L?4RZdg!^b!AMb?fc-bx`c-r=`qhyhXfL1KY@b`-tvLwqre9^|c{ zCvC%VCpmw{sPOIowx52H(;cv+py&JPiJWe$($r5+;j~Sq|LUh_aN45MoBgyaN*;-v z%~gJfpI^x3f=c`Rw8H6jDqZEL*KxYNN+0vnA4GZUeoQB%tvB?iBO(d&*4^1Cwuljo zLJ9xpoqu<0qF8NI9)^)PWn>HqZ)PVgEa}|g4yeR5=BCT)C_~>S&?D-X>6cCLwS%g zWeZ6v)_&3W+!}lVlc}n2o=&E+fLBWJqy`$6>ts5sbNm{7-=G(rTmuc6s45rhWF-rq zq>?*zGRXq6Kqa?WeQiG=D_UVH_EeB`jPl0{a*n_}zK?VQ+}%g!fStLYga_!uaID7H z4e9kgFW^j&^5J0;H&Gj+qa!OW>o-2c8l7Co#@71;Cr{|)iB=%{e9Ot>I(eUweO2Y> zI{9=k$fulqVXA_Z9!E$frgr8L5*SMED0456!Np0-&=0QF9R#5)L=ZZWq2zHP=|zp+ z0(zH9i^XsbA=yImEY0bKGkMV?M$&rCH~`OeHO#bRUvZgHNZR{|&S>L_0%i!xh&nQg z)cN+*kqQH;_Pu$9^cBNDTCEo44HbmR5nOAyLxu`THA>A@?2FUNk5@@3x!`N|9oZ9( zA?<%ivSLHc>Tbz?2Vvy3i|8ZJAeen29mJZJ#H?IP5o3ti*DO`sV1@ZXFEKMzTiZ_W zg(2k6TQJ>$hRar^v6mR__a)=!FY;QMf%$5zzQ;2~?+AacFCyWb{yEQ;Y4$x>AJ2UYr+ zA(hI&$Ba{LS2gCo-!tfbpz_dWj8z`MPmU=CA;vy|q3oL-SAkL;V$2ND%|wkR!k|RO zW-}I&P-UUb_&VT$3X?*O&X6veY;co&uwra&e7nVW8gsXW@~08TFy)=2h5+Br*2a6{ z`1ROZ>>|Qo{dR|+8mixZq)|oz>$g_74*7+H_1g>oA=Is(f|Vuv4Pi=)w#H!P$p~Yh zZG%7b`KI2Kw?Bhua)fbW$O^xIl;5x1jxgG7@A*BW{hnZ@+F}gz4Q^|^7J+riNH<=e zg{=|eGj;|%!@#1{6;75L!y&l^NYnOY!8vudR%;k2 z7%plqojTm)dT3T0d(nqQ8NQciTd|jCJIcVK{Hj8S3gcj;nOebpn;BS?uT&tF+)7np zbfq!8t)(k3VP>6L$z}~v$t;UPRbe#)v+|<~k^8tcK!s@xEXw;ToKnHCpOf-_UTrS3 z%t{d~J>8d=)O6Q1L^_Oar>g%O1G91+VQsb9pqEvBrG|W>l+*)U*k6TL4nVIBr|T6} zKT<>Jds>to5TC{(Et|*Jri0)BU=Yt$Z9>id@;u6?P7gsM0)nrSc zz{G54U{;PIOfPP>rd!dZKVVj@Rb1bxs%g|WG{M6rAqvTd0_Wz2D&u_-J+J<>X+On$ zr&iKkLsW7=D^jO&n_L&o$`6kOzodBzn-o#njOf(DCKsl&*Jr%q7XbRuDm206CgB>3 zvX}|Y$~Gp{%E@7$eYnPH$SYN@sKS2%^he~3Cb-=s)T;`(uJ#e5p*rsa4;#ZHwYn#0 zo{}a77MZ??PnZ>ljfDYvHJ3F1ttQ?3^$7ioeCcqHI#3mXq&($z3T7EXpVq z=BrQ+(5K}_y;|ul4N)ojCpEnPwg7!s$_=V8T|)@RXk*c-UQMo97Ui`^f}hen1Dg~N zwdvNWAx$o9xdRB+r(n3|8T%iKUuyWs+Mnd(9CVT|_^Yb5f`LUjs#?Et@O7v)_HTjX z^z{qI=|JV?br$JsbHi8`oN*^m9o;`Q)Q_)V?L5&Bs7lSQ((v!TYxj)Vty-PM_ZKdF zMc{mSOc)oWJkiqB51&=DRXE<#G!<6wAX6$}auD}bz$(^0eF%>i1oqZpJ?LLlMvZ5C zjPd&Slc@2xH2#d%5Brr5yYApWroXK5F^t5;eimYUmBt6_0R~jS9G?gIip-`o5~i(> z?!Te=1+#M8f>D^2`zj24c0Ln|zJoe{ki~+GRJk81&)7%iT&g$!6H`R&% E1|>aAhyVZp diff --git a/ext/lwip/src/core/tcp.c b/ext/lwip/src/core/tcp.c index b710d2e2a..105b68e74 100644 --- a/ext/lwip/src/core/tcp.c +++ b/ext/lwip/src/core/tcp.c @@ -10,9 +10,9 @@ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, @@ -21,21 +21,21 @@ * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. + * derived from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. - * + * * Author: Adam Dunkels * */ @@ -72,17 +72,17 @@ #endif /* LWIP_TCP_KEEPALIVE */ const char * const tcp_state_str[] = { - "CLOSED", - "LISTEN", - "SYN_SENT", - "SYN_RCVD", - "ESTABLISHED", - "FIN_WAIT_1", - "FIN_WAIT_2", - "CLOSE_WAIT", - "CLOSING", - "LAST_ACK", - "TIME_WAIT" + "CLOSED", + "LISTEN", + "SYN_SENT", + "SYN_RCVD", + "ESTABLISHED", + "FIN_WAIT_1", + "FIN_WAIT_2", + "CLOSE_WAIT", + "CLOSING", + "LAST_ACK", + "TIME_WAIT" }; /* last local TCP port */ @@ -118,7 +118,7 @@ struct tcp_pcb *tcp_tmp_pcb; u8_t tcp_active_pcbs_changed; -/** Timer counter to handle calling slow-timer from tcp_tmr() */ +/** Timer counter to handle calling slow-timer from tcp_tmr() */ static u8_t tcp_timer; static u8_t tcp_timer_ctr; static u16_t tcp_new_port(void); @@ -202,7 +202,7 @@ tcp_close_shutdown(struct tcp_pcb *pcb, u8_t rst_on_unacked_data) * however, it is in this state once allocated and as yet unused * and the user needs some way to free it should the need arise. * Calling tcp_close() with a pcb that has already been closed, (i.e. twice) - * or for a pcb that has been used and then entered the CLOSED state + * or for a pcb that has been used and then entered the CLOSED state * is erroneous, but this should never happen as the pcb has in those cases * been freed, and so any remaining handles are bogus. */ err = ERR_OK; @@ -357,7 +357,7 @@ void tcp_abandon(struct tcp_pcb *pcb, int reset) { u32_t seqno, ackno; -#if LWIP_CALLBACK_API +#if LWIP_CALLBACK_API tcp_err_fn errf; #endif /* LWIP_CALLBACK_API */ void *errf_arg; @@ -385,7 +385,7 @@ tcp_abandon(struct tcp_pcb *pcb, int reset) if (pcb->unsent != NULL) { tcp_segs_free(pcb->unsent); } -#if TCP_QUEUE_OOSEQ +#if TCP_QUEUE_OOSEQ if (pcb->ooseq != NULL) { tcp_segs_free(pcb->ooseq); } @@ -570,7 +570,7 @@ tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog) return (struct tcp_pcb *)lpcb; } -/** +/** * Update the state that tracks the available window space to advertise. * * Returns how much extra window would be advertised if we sent an @@ -649,7 +649,7 @@ tcp_new_port(void) u8_t i; u16_t n = 0; struct tcp_pcb *pcb; - + again: if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) { tcp_port = TCP_LOCAL_PORT_RANGE_START; @@ -757,7 +757,7 @@ tcp_connect(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port, pcb->ssthresh = pcb->mss * 10; #if LWIP_CALLBACK_API pcb->connected = connected; -#else /* LWIP_CALLBACK_API */ +#else /* LWIP_CALLBACK_API */ LWIP_UNUSED_ARG(connected); #endif /* LWIP_CALLBACK_API */ @@ -870,7 +870,7 @@ tcp_slowtmr_start: LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: cwnd %"U16_F " ssthresh %"U16_F"\n", pcb->cwnd, pcb->ssthresh)); - + /* The following needs to be called AFTER cwnd is set to one mss - STJ */ tcp_rexmit_rto(pcb); @@ -901,11 +901,11 @@ tcp_slowtmr_start: LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: KEEPALIVE timeout. Aborting connection to %"U16_F".%"U16_F".%"U16_F".%"U16_F".\n", ip4_addr1_16(&pcb->remote_ip), ip4_addr2_16(&pcb->remote_ip), ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip))); - + ++pcb_remove; ++pcb_reset; } - else if((u32_t)(tcp_ticks - pcb->tmr) > + else if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keep_idle + pcb->keep_cnt_sent * TCP_KEEP_INTVL(pcb)) / TCP_SLOW_INTERVAL) { @@ -998,7 +998,7 @@ tcp_slowtmr_start: } } - + /* Steps through all of the TIME-WAIT PCBs. */ prev = NULL; pcb = tcp_tw_pcbs; @@ -1010,7 +1010,7 @@ tcp_slowtmr_start: if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) { ++pcb_remove; } - + /* If the PCB should be removed, do it. */ @@ -1172,7 +1172,7 @@ tcp_setprio(struct tcp_pcb *pcb, u8_t prio) * * @param seg the old tcp_seg * @return a copy of seg - */ + */ struct tcp_seg * tcp_seg_copy(struct tcp_seg *seg) { @@ -1182,7 +1182,7 @@ tcp_seg_copy(struct tcp_seg *seg) if (cseg == NULL) { return NULL; } - SMEMCPY((u8_t *)cseg, (const u8_t *)seg, sizeof(struct tcp_seg)); + SMEMCPY((u8_t *)cseg, (const u8_t *)seg, sizeof(struct tcp_seg)); pbuf_ref(cseg->p); return cseg; } @@ -1222,7 +1222,7 @@ tcp_kill_prio(u8_t prio) mprio = TCP_PRIO_MAX; - + /* We kill the oldest active connection that has lower priority than prio. */ inactivity = 0; inactive = NULL; @@ -1279,7 +1279,7 @@ tcp_alloc(u8_t prio) { struct tcp_pcb *pcb; u32_t iss; - + pcb = (struct tcp_pcb *)memp_malloc(MEMP_TCP_PCB); if (pcb == NULL) { /* Try killing oldest connection in TIME-WAIT. */ @@ -1324,7 +1324,7 @@ tcp_alloc(u8_t prio) pcb->snd_wl2 = iss; pcb->snd_nxt = iss; pcb->lastack = iss; - pcb->snd_lbb = iss; + pcb->snd_lbb = iss; pcb->tmr = tcp_ticks; pcb->last_timer = tcp_timer_ctr; @@ -1332,11 +1332,11 @@ tcp_alloc(u8_t prio) #if LWIP_CALLBACK_API pcb->recv = tcp_recv_null; -#endif /* LWIP_CALLBACK_API */ - +#endif /* LWIP_CALLBACK_API */ + /* Init KEEPALIVE timer */ pcb->keep_idle = TCP_KEEPIDLE_DEFAULT; - + #if LWIP_TCP_KEEPALIVE pcb->keep_intvl = TCP_KEEPINTVL_DEFAULT; pcb->keep_cnt = TCP_KEEPCNT_DEFAULT; @@ -1371,7 +1371,7 @@ tcp_new(void) * * @param pcb tcp_pcb to set the callback argument * @param arg void pointer argument to pass to callback functions - */ + */ void tcp_arg(struct tcp_pcb *pcb, void *arg) { @@ -1387,7 +1387,7 @@ tcp_arg(struct tcp_pcb *pcb, void *arg) * * @param pcb tcp_pcb to set the recv callback * @param recv callback function to call for this pcb when data is received - */ + */ void tcp_recv(struct tcp_pcb *pcb, tcp_recv_fn recv) { @@ -1401,7 +1401,7 @@ tcp_recv(struct tcp_pcb *pcb, tcp_recv_fn recv) * * @param pcb tcp_pcb to set the sent callback * @param sent callback function to call for this pcb when data is successfully sent - */ + */ void tcp_sent(struct tcp_pcb *pcb, tcp_sent_fn sent) { @@ -1416,7 +1416,7 @@ tcp_sent(struct tcp_pcb *pcb, tcp_sent_fn sent) * @param pcb tcp_pcb to set the err callback * @param err callback function to call for this pcb when a fatal error * has occured on the connection - */ + */ void tcp_err(struct tcp_pcb *pcb, tcp_err_fn err) { @@ -1431,7 +1431,7 @@ tcp_err(struct tcp_pcb *pcb, tcp_err_fn err) * @param pcb tcp_pcb to set the accept callback * @param accept callback function to call for this pcb when LISTENing * connection has been connected to another host - */ + */ void tcp_accept(struct tcp_pcb *pcb, tcp_accept_fn accept) { @@ -1447,16 +1447,16 @@ tcp_accept(struct tcp_pcb *pcb, tcp_accept_fn accept) * from TCP. The interval is specified in terms of the TCP coarse * timer interval, which is called twice a second. * - */ + */ void tcp_poll(struct tcp_pcb *pcb, tcp_poll_fn poll, u8_t interval) { LWIP_ASSERT("invalid socket state for poll", pcb->state != LISTEN); #if LWIP_CALLBACK_API pcb->poll = poll; -#else /* LWIP_CALLBACK_API */ +#else /* LWIP_CALLBACK_API */ LWIP_UNUSED_ARG(poll); -#endif /* LWIP_CALLBACK_API */ +#endif /* LWIP_CALLBACK_API */ pcb->pollinterval = interval; } @@ -1540,7 +1540,7 @@ tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb) TCP_RMV(pcblist, pcb); tcp_pcb_purge(pcb); - + /* if there is an outstanding delayed ACKs, send it */ if (pcb->state != TIME_WAIT && pcb->state != LISTEN && @@ -1571,7 +1571,7 @@ u32_t tcp_next_iss(void) { static u32_t iss = 6510; - + iss += tcp_ticks; /* XXX */ return iss; } @@ -1703,21 +1703,21 @@ tcp_debug_print_pcbs(void) pcb->local_port, pcb->remote_port, pcb->snd_nxt, pcb->rcv_nxt)); tcp_debug_print_state(pcb->state); - } + } LWIP_DEBUGF(TCP_DEBUG, ("Listen PCB states:\n")); for(pcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; pcb != NULL; pcb = pcb->next) { LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", pcb->local_port, pcb->remote_port, pcb->snd_nxt, pcb->rcv_nxt)); tcp_debug_print_state(pcb->state); - } + } LWIP_DEBUGF(TCP_DEBUG, ("TIME-WAIT PCB states:\n")); for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", pcb->local_port, pcb->remote_port, pcb->snd_nxt, pcb->rcv_nxt)); tcp_debug_print_state(pcb->state); - } + } } /** diff --git a/ext/lwip/src/core/tcp_in.c b/ext/lwip/src/core/tcp_in.c index 4ec971ac0..051869ff9 100644 --- a/ext/lwip/src/core/tcp_in.c +++ b/ext/lwip/src/core/tcp_in.c @@ -6,7 +6,7 @@ * * These functions are generally called in the order (ip_input() ->) * tcp_input() -> * tcp_process() -> tcp_receive() (-> application). - * + * */ /* @@ -166,7 +166,7 @@ tcp_input(struct pbuf *p, struct netif *inp) for an active connection. */ prev = NULL; - + for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED); LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT); @@ -253,7 +253,7 @@ tcp_input(struct pbuf *p, struct netif *inp) /* put this listening pcb at the head of the listening list */ tcp_listen_pcbs.listen_pcbs = lpcb; } - + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for LISTENing connection.\n")); tcp_listen_input(lpcb); pbuf_free(p); @@ -588,7 +588,7 @@ tcp_process(struct tcp_pcb *pcb) acceptable = 1; } } else { - if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, + if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt+pcb->rcv_wnd)) { acceptable = 1; } @@ -609,12 +609,12 @@ tcp_process(struct tcp_pcb *pcb) } } - if ((flags & TCP_SYN) && (pcb->state != SYN_SENT && pcb->state != SYN_RCVD)) { + if ((flags & TCP_SYN) && (pcb->state != SYN_SENT && pcb->state != SYN_RCVD)) { /* Cope with new connection attempt after remote end crashed */ tcp_ack_now(pcb); return ERR_OK; } - + if ((pcb->flags & TF_RXCLOSED) == 0) { /* Update the PCB (in)activity timer unless rx is closed (see tcp_shutdown) */ pcb->tmr = tcp_ticks; @@ -892,7 +892,7 @@ tcp_receive(struct tcp_pcb *pcb) #if TCP_WND_DEBUG } else { if (pcb->snd_wnd != tcphdr->wnd) { - LWIP_DEBUGF(TCP_WND_DEBUG, + LWIP_DEBUGF(TCP_WND_DEBUG, ("tcp_receive: no window update lastack %"U32_F" ackno %" U32_F" wl1 %"U32_F" seqno %"U32_F" wl2 %"U32_F"\n", pcb->lastack, ackno, pcb->snd_wl1, seqno, pcb->snd_wl2)); @@ -902,17 +902,17 @@ tcp_receive(struct tcp_pcb *pcb) /* (From Stevens TCP/IP Illustrated Vol II, p970.) Its only a * duplicate ack if: - * 1) It doesn't ACK new data - * 2) length of received packet is zero (i.e. no payload) - * 3) the advertised window hasn't changed + * 1) It doesn't ACK new data + * 2) length of received packet is zero (i.e. no payload) + * 3) the advertised window hasn't changed * 4) There is outstanding unacknowledged data (retransmission timer running) * 5) The ACK is == biggest ACK sequence number so far seen (snd_una) - * - * If it passes all five, should process as a dupack: - * a) dupacks < 3: do nothing - * b) dupacks == 3: fast retransmit - * c) dupacks > 3: increase cwnd - * + * + * If it passes all five, should process as a dupack: + * a) dupacks < 3: do nothing + * b) dupacks == 3: fast retransmit + * c) dupacks > 3: increase cwnd + * * If it only passes 1-3, should reset dupack counter (and add to * stats, which we don't do in lwIP) * @@ -1053,7 +1053,7 @@ tcp_receive(struct tcp_pcb *pcb) ->unsent list after a retransmission, so these segments may in fact have been sent once. */ while (pcb->unsent != NULL && - TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) + + TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) + TCP_TCPLEN(pcb->unsent), pcb->snd_nxt)) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unsent\n", ntohl(pcb->unsent->tcphdr->seqno), ntohl(pcb->unsent->tcphdr->seqno) + @@ -1065,7 +1065,7 @@ tcp_receive(struct tcp_pcb *pcb) if (pcb->unsent == NULL) { pcb->unsent_oversize = 0; } -#endif /* TCP_OVERSIZE */ +#endif /* TCP_OVERSIZE */ LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen)); LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p))); /* Prevent ACK for FIN to generate a sent event */ @@ -1211,7 +1211,7 @@ tcp_receive(struct tcp_pcb *pcb) /* The sequence number must be within the window (above rcv_nxt and below rcv_nxt + rcv_wnd) in order to be further processed. */ - if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, + if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd - 1)){ if (pcb->rcv_nxt == seqno) { /* The incoming segment is the next in sequence. We check if @@ -1220,12 +1220,12 @@ tcp_receive(struct tcp_pcb *pcb) tcplen = TCP_TCPLEN(&inseg); if (tcplen > pcb->rcv_wnd) { - LWIP_DEBUGF(TCP_INPUT_DEBUG, + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: other end overran receive window" "seqno %"U32_F" len %"U16_F" right edge %"U32_F"\n", seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd)); if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { - /* Must remove the FIN from the header as we're trimming + /* Must remove the FIN from the header as we're trimming * that byte of sequence-space from the packet */ TCPH_FLAGS_SET(inseg.tcphdr, TCPH_FLAGS(inseg.tcphdr) &~ TCP_FIN); } @@ -1245,7 +1245,7 @@ tcp_receive(struct tcp_pcb *pcb) - inseq overlaps with ooseq */ if (pcb->ooseq != NULL) { if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { - LWIP_DEBUGF(TCP_INPUT_DEBUG, + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: received in-order FIN, binning ooseq queue\n")); /* Received in-order FIN means anything that was received * out of order must now have been received in-order, so @@ -1352,7 +1352,7 @@ tcp_receive(struct tcp_pcb *pcb) recv_flags |= TF_GOT_FIN; if (pcb->state == ESTABLISHED) { /* force passive close or we can move to active close */ pcb->state = CLOSE_WAIT; - } + } } pcb->ooseq = cseg->next; @@ -1465,12 +1465,12 @@ tcp_receive(struct tcp_pcb *pcb) } /* check if the remote side overruns our receive window */ if ((u32_t)tcplen + seqno > pcb->rcv_nxt + (u32_t)pcb->rcv_wnd) { - LWIP_DEBUGF(TCP_INPUT_DEBUG, + LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: other end overran receive window" "seqno %"U32_F" len %"U16_F" right edge %"U32_F"\n", seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd)); if (TCPH_FLAGS(next->next->tcphdr) & TCP_FIN) { - /* Must remove the FIN from the header as we're trimming + /* Must remove the FIN from the header as we're trimming * that byte of sequence-space from the packet */ TCPH_FLAGS_SET(next->next->tcphdr, TCPH_FLAGS(next->next->tcphdr) &~ TCP_FIN); } @@ -1531,7 +1531,7 @@ tcp_receive(struct tcp_pcb *pcb) } /** - * Parses the options contained in the incoming segment. + * Parses the options contained in the incoming segment. * * Called from tcp_listen_input() and tcp_process(). * Currently, only the MSS option is supported! @@ -1588,7 +1588,7 @@ tcp_parseopt(struct tcp_pcb *pcb) return; } /* TCP timestamp option with valid length */ - tsval = (opts[c+2]) | (opts[c+3] << 8) | + tsval = (opts[c+2]) | (opts[c+3] << 8) | (opts[c+4] << 16) | (opts[c+5] << 24); if (flags & TCP_SYN) { pcb->ts_recent = ntohl(tsval); diff --git a/ext/lwip/src/core/tcp_out.c b/ext/lwip/src/core/tcp_out.c index ee19fe06f..94395e25d 100644 --- a/ext/lwip/src/core/tcp_out.c +++ b/ext/lwip/src/core/tcp_out.c @@ -197,7 +197,7 @@ tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno, /* wnd and chksum are set in tcp_output */ seg->tcphdr->urgp = 0; return seg; -} +} /** * Allocate a PBUF_RAM pbuf, perhaps with extra space at the end. @@ -212,7 +212,7 @@ tcp_create_segment(struct tcp_pcb *pcb, struct pbuf *p, u8_t flags, u32_t seqno, * @param pcb The TCP connection that willo enqueue the pbuf. * @param apiflags API flags given to tcp_write. * @param first_seg true when this pbuf will be used in the first enqueued segment. - * @param + * @param */ #if TCP_OVERSIZE static struct pbuf * @@ -379,7 +379,7 @@ tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags) LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n", (void *)pcb, arg, len, (u16_t)apiflags)); - LWIP_ERROR("tcp_write: arg == NULL (programmer violates API)", + LWIP_ERROR("tcp_write: arg == NULL (programmer violates API)", arg != NULL, return ERR_ARG;); err = tcp_write_checks(pcb, len); @@ -857,7 +857,7 @@ tcp_send_empty_ack(struct tcp_pcb *pcb) return ERR_BUF; } tcphdr = (struct tcp_hdr *)p->payload; - LWIP_DEBUGF(TCP_OUTPUT_DEBUG, + LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt)); /* remove ACK flags from the PCB, as we send an empty ACK now */ pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW); @@ -869,7 +869,7 @@ tcp_send_empty_ack(struct tcp_pcb *pcb) if (pcb->flags & TF_TIMESTAMP) { tcp_build_timestamp_option(pcb, (u32_t *)(tcphdr + 1)); } -#endif +#endif #if CHECKSUM_GEN_TCP tcphdr->chksum = inet_chksum_pseudo(p, &(pcb->local_ip), &(pcb->remote_ip), @@ -950,7 +950,7 @@ tcp_output(struct tcp_pcb *pcb) ", seg == NULL, ack %"U32_F"\n", pcb->snd_wnd, pcb->cwnd, wnd, pcb->lastack)); } else { - LWIP_DEBUGF(TCP_CWND_DEBUG, + LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"U16_F", cwnd %"U16_F", wnd %"U32_F ", effwnd %"U32_F", seq %"U32_F", ack %"U32_F"\n", pcb->snd_wnd, pcb->cwnd, wnd, @@ -961,7 +961,7 @@ tcp_output(struct tcp_pcb *pcb) /* data available and window allows it to be sent? */ while (seg != NULL && ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) { - LWIP_ASSERT("RST not expected here!", + LWIP_ASSERT("RST not expected here!", (TCPH_FLAGS(seg->tcphdr) & TCP_RST) == 0); /* Stop sending if the nagle algorithm would prevent it * Don't stop: @@ -1086,7 +1086,7 @@ tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb) } #endif - /* Set retransmission timer running if it is not currently enabled + /* Set retransmission timer running if it is not currently enabled This must be set before checking the route. */ if (pcb->rtime == -1) { pcb->rtime = 0; @@ -1317,12 +1317,12 @@ tcp_rexmit(struct tcp_pcb *pcb) * * @param pcb the tcp_pcb for which to retransmit the first unacked segment */ -void +void tcp_rexmit_fast(struct tcp_pcb *pcb) { if (pcb->unacked != NULL && !(pcb->flags & TF_INFR)) { /* This is fast retransmit. Retransmit the first unacked segment. */ - LWIP_DEBUGF(TCP_FR_DEBUG, + LWIP_DEBUGF(TCP_FR_DEBUG, ("tcp_receive: dupacks %"U16_F" (%"U32_F "), fast retransmit %"U32_F"\n", (u16_t)pcb->dupacks, pcb->lastack, @@ -1336,19 +1336,19 @@ tcp_rexmit_fast(struct tcp_pcb *pcb) } else { pcb->ssthresh = pcb->cwnd / 2; } - + /* The minimum value for ssthresh should be 2 MSS */ if (pcb->ssthresh < 2*pcb->mss) { - LWIP_DEBUGF(TCP_FR_DEBUG, + LWIP_DEBUGF(TCP_FR_DEBUG, ("tcp_receive: The minimum value for ssthresh %"U16_F " should be min 2 mss %"U16_F"...\n", pcb->ssthresh, 2*pcb->mss)); pcb->ssthresh = 2*pcb->mss; } - + pcb->cwnd = pcb->ssthresh + 3 * pcb->mss; pcb->flags |= TF_INFR; - } + } } @@ -1370,12 +1370,12 @@ tcp_keepalive(struct tcp_pcb *pcb) ip4_addr1_16(&pcb->remote_ip), ip4_addr2_16(&pcb->remote_ip), ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip))); - LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: tcp_ticks %"U32_F" pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", + LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: tcp_ticks %"U32_F" pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", tcp_ticks, pcb->tmr, pcb->keep_cnt_sent)); - + p = tcp_output_alloc_header(pcb, 0, 0, htonl(pcb->snd_nxt - 1)); if(p == NULL) { - LWIP_DEBUGF(TCP_DEBUG, + LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: could not allocate memory for pbuf\n")); return; } @@ -1419,15 +1419,15 @@ tcp_zero_window_probe(struct tcp_pcb *pcb) u16_t len; u8_t is_fin; - LWIP_DEBUGF(TCP_DEBUG, + LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: sending ZERO WINDOW probe to %" U16_F".%"U16_F".%"U16_F".%"U16_F"\n", ip4_addr1_16(&pcb->remote_ip), ip4_addr2_16(&pcb->remote_ip), ip4_addr3_16(&pcb->remote_ip), ip4_addr4_16(&pcb->remote_ip))); - LWIP_DEBUGF(TCP_DEBUG, + LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: tcp_ticks %"U32_F - " pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", + " pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", tcp_ticks, pcb->tmr, pcb->keep_cnt_sent)); seg = pcb->unacked; diff --git a/ext/lwipopts.h b/ext/lwipopts.h index 7e7eab6c6..dd743cc38 100644 --- a/ext/lwipopts.h +++ b/ext/lwipopts.h @@ -116,7 +116,7 @@ #define MEM_SIZE 1024 * 1024 * 64 #define TCP_SND_BUF 1024 * 63 - +#define TCP_SND_QUEUELEN 1024 /*------------------------------------------------------------------------------ -------------------------- Internal Memory Pool Sizes -------------------------- ------------------------------------------------------------------------------*/ @@ -157,7 +157,7 @@ * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. * (requires the LWIP_TCP option) */ -#define MEMP_NUM_TCP_SEG 128 +#define MEMP_NUM_TCP_SEG 1024 /** * MEMP_NUM_REASSDATA: the number of simultaneously IP packets queued for diff --git a/netcon/Intercept.c b/netcon/Intercept.c index aed7d1855..c53c10156 100755 --- a/netcon/Intercept.c +++ b/netcon/Intercept.c @@ -494,6 +494,13 @@ int connect(CONNECT_SIG) return err; } + //int flags = fcntl(__fd, F_GETFD); + //dwr("connect(): socket flags = %d\n", flags); + + if(sock_type && O_NONBLOCK) { + dwr("connect(): O_NONBLOCK\n"); + } + /* assemble and route command */ int err; char cmd[BUF_SZ]; @@ -507,6 +514,10 @@ int connect(CONNECT_SIG) memcpy(&cmd[1], &rpc_st, sizeof(struct connect_st)); pthread_mutex_lock(&lock); send_command(fdret_sock, cmd); + if(sock_type && O_NONBLOCK) { + //pthread_mutex_unlock(&lock); + //return EINPROGRESS; + } err = get_retval(); pthread_mutex_unlock(&lock); return err; diff --git a/netcon/NetconEthernetTap.cpp b/netcon/NetconEthernetTap.cpp index 462e366da..003e0b66e 100644 --- a/netcon/NetconEthernetTap.cpp +++ b/netcon/NetconEthernetTap.cpp @@ -318,6 +318,8 @@ void NetconEthernetTap::threadMain() fprintf(stderr, "_threadMain()\n"); uint64_t prev_tcp_time = 0; uint64_t prev_etharp_time = 0; +fprintf(stderr, "- TCP_SND_QUEUELEN = %d\n", TCP_SND_QUEUELEN); +fprintf(stderr, "- TCP_MAXRTX = %d\n", TCP_MAXRTX); /* fprintf(stderr, "- MEM_SIZE = %dM\n", MEM_SIZE / (1024*1024)); @@ -327,7 +329,7 @@ void NetconEthernetTap::threadMain() fprintf(stderr, "- MEMP_NUM_TCP_PCB_LISTEN = %d\n", MEMP_NUM_TCP_PCB_LISTEN); fprintf(stderr, "- MEMP_NUM_TCP_SEG = %d\n", MEMP_NUM_TCP_SEG); fprintf(stderr, "- PBUF_POOL_SIZE = %d\n", PBUF_POOL_SIZE); - fprintf(stderr, "- TCP_SND_QUEUELEN = %d\n", TCP_SND_QUEUELEN); + fprintf(stderr, "- IP_REASSEMBLY = %d\n", IP_REASSEMBLY); fprintf(stderr, "- TCP_WND = %d\n", TCP_WND); fprintf(stderr, "- TCP_MSS = %d\n", TCP_MSS); @@ -376,9 +378,13 @@ void NetconEthernetTap::phyOnFileDescriptorActivity(PhySocket *sock,void **uptr, { if(readable) { TcpConnection *conn = (TcpConnection*)*uptr; - Mutex::Lock _l(lwipstack->_lock); if(conn->dataSock) // Sometimes a connection may be closed via nc_recved, check first + { + //Mutex::Lock _l(lwipstack->_lock); + //lwipstack->_lock.lock(); handle_write(conn); + //lwipstack->_lock.unlock(); + } } else { fprintf(stderr, "phyOnFileDescriptorActivity(): PhySocket not readable\n"); @@ -1144,8 +1150,9 @@ void NetconEthernetTap::handle_write(TcpConnection *conn) // NOTE: this assumes that lwipstack->_lock is locked, either // because we are in a callback or have locked it manually. int err = lwipstack->_tcp_write(conn->pcb, &conn->buf, r, TCP_WRITE_FLAG_COPY); + lwipstack->_tcp_output(conn->pcb); if(err != ERR_OK) { - fprintf(stderr, "handle_write(): error while writing to PCB\n"); + fprintf(stderr, "handle_write(): error while writing to PCB, (err = %d)\n", err); return; } else { diff --git a/netcon/libintercept.so.1.0 b/netcon/libintercept.so.1.0 index bb203d647b4f6fa34da84a048d294c60dffe99d7..fa9cdf28402396459447d85e57defff480bb8223 100755 GIT binary patch delta 9500 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