]> git.proxmox.com Git - qemu.git/blobdiff - slirp/tcp_timer.c
rng-egd: remove redundant free
[qemu.git] / slirp / tcp_timer.c
index 9cacb0f0d452ab70ef3ec2d2ba5bf7b86b743f14..6c5bb11cc39aeebe057b80848f216ce7e6864319 100644 (file)
 
 #include <slirp.h>
 
-#ifdef LOG_ENABLED
-struct   tcpstat tcpstat;        /* tcp statistics */
-#endif
-
-u_int32_t        tcp_now;                /* for RFC 1323 timestamps */
-
 static struct tcpcb *tcp_timers(register struct tcpcb *tp, int timer);
 
 /*
  * Fast timeout routine for processing delayed acks
  */
 void
-tcp_fasttimo(void)
+tcp_fasttimo(Slirp *slirp)
 {
        register struct socket *so;
        register struct tcpcb *tp;
 
        DEBUG_CALL("tcp_fasttimo");
 
-       so = tcb.so_next;
+       so = slirp->tcb.so_next;
        if (so)
-       for (; so != &tcb; so = so->so_next)
+       for (; so != &slirp->tcb; so = so->so_next)
                if ((tp = (struct tcpcb *)so->so_tcpcb) &&
                    (tp->t_flags & TF_DELACK)) {
                        tp->t_flags &= ~TF_DELACK;
                        tp->t_flags |= TF_ACKNOW;
-                       STAT(tcpstat.tcps_delack++);
                        (void) tcp_output(tp);
                }
 }
@@ -69,7 +62,7 @@ tcp_fasttimo(void)
  * causes finite state machine actions if timers expire.
  */
 void
-tcp_slowtimo(void)
+tcp_slowtimo(Slirp *slirp)
 {
        register struct socket *ip, *ipnxt;
        register struct tcpcb *tp;
@@ -80,14 +73,16 @@ tcp_slowtimo(void)
        /*
         * Search through tcb's and update active timers.
         */
-       ip = tcb.so_next;
-       if (ip == 0)
-          return;
-       for (; ip != &tcb; ip = ipnxt) {
+       ip = slirp->tcb.so_next;
+        if (ip == NULL) {
+            return;
+        }
+       for (; ip != &slirp->tcb; ip = ipnxt) {
                ipnxt = ip->so_next;
                tp = sototcpcb(ip);
-               if (tp == 0)
-                       continue;
+                if (tp == NULL) {
+                        continue;
+                }
                for (i = 0; i < TCPT_NTIMERS; i++) {
                        if (tp->t_timer[i] && --tp->t_timer[i] == 0) {
                                tcp_timers(tp,i);
@@ -101,8 +96,8 @@ tcp_slowtimo(void)
 tpgone:
                ;
        }
-       tcp_iss += TCP_ISSINCR/PR_SLOWHZ;               /* increment iss */
-       tcp_now++;                                      /* for timestamps */
+       slirp->tcp_iss += TCP_ISSINCR/PR_SLOWHZ;        /* increment iss */
+       slirp->tcp_now++;                               /* for timestamps */
 }
 
 /*
@@ -180,7 +175,6 @@ tcp_timers(register struct tcpcb *tp, int timer)
                                 * We tried our best, now the connection must die!
                                 */
                                tp->t_rxtshift = TCP_MAXRXTSHIFT;
-                               STAT(tcpstat.tcps_timeoutdrop++);
                                tp = tcp_drop(tp, tp->t_softerror);
                                /* tp->t_softerror : ETIMEDOUT); */ /* XXX */
                                return (tp); /* XXX */
@@ -192,7 +186,6 @@ tcp_timers(register struct tcpcb *tp, int timer)
                         */
                        tp->t_rxtshift = 6;
                }
-               STAT(tcpstat.tcps_rexmttimeo++);
                rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift];
                TCPT_RANGESET(tp->t_rxtcur, rexmt,
                    (short)tp->t_rttmin, TCPTV_REXMTMAX); /* XXX */
@@ -254,7 +247,6 @@ tcp_timers(register struct tcpcb *tp, int timer)
         * Force a byte to be output, if possible.
         */
        case TCPT_PERSIST:
-               STAT(tcpstat.tcps_persisttimeo++);
                tcp_setpersist(tp);
                tp->t_force = 1;
                (void) tcp_output(tp);
@@ -266,7 +258,6 @@ tcp_timers(register struct tcpcb *tp, int timer)
         * or drop connection if idle for too long.
         */
        case TCPT_KEEP:
-               STAT(tcpstat.tcps_keeptimeo++);
                if (tp->t_state < TCPS_ESTABLISHED)
                        goto dropit;
 
@@ -285,7 +276,6 @@ tcp_timers(register struct tcpcb *tp, int timer)
                         * by the protocol spec, this requires the
                         * correspondent TCP to respond.
                         */
-                       STAT(tcpstat.tcps_keepprobe++);
                        tcp_respond(tp, &tp->t_template, (struct mbuf *)NULL,
                            tp->rcv_nxt, tp->snd_una - 1, 0);
                        tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL;
@@ -294,7 +284,6 @@ tcp_timers(register struct tcpcb *tp, int timer)
                break;
 
        dropit:
-               STAT(tcpstat.tcps_keepdrops++);
                tp = tcp_drop(tp, 0);
                break;
        }