]> err.no Git - varnish/commitdiff
Fix timestamps in shm tag StatSess for sessions with no requests.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Tue, 12 Sep 2006 20:17:35 +0000 (20:17 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Tue, 12 Sep 2006 20:17:35 +0000 (20:17 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@974 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_center.c

index fbc970b52a4f62d69bcbe888b20902261ee98544..5e5c1ada51615eab5d514865b5fd2ef5620a5c53 100644 (file)
@@ -245,27 +245,24 @@ cnt_first(struct sess *sp)
        SES_RefSrcAddr(sp);
        for (;;) {
                i = http_RecvSome(sp->fd, sp->http);
-               switch (i) {
-               case -1:
+               if (i == -1)    
                        continue;
-               case 0:
+               if (i == 0) {
                        sp->step = STP_RECV;
                        return (0);
-               case 1:
+               }
+               if (i == 1)
                        vca_close_session(sp, "overflow");
-                       SES_Charge(sp);
-                       vca_return_session(sp);
-                       sp->step = STP_DONE;
-                       return (1);
-               case 2:
+               else if (i == 2)
                        vca_close_session(sp, "no request");
-                       SES_Charge(sp);
-                       vca_return_session(sp);
-                       sp->step = STP_DONE;
-                       return (1);
-               default:
+               else
                        INCOMPL();
-               }
+               clock_gettime(CLOCK_REALTIME, &sp->t_end);
+               sp->wrk->idle = sp->t_end.tv_sec;
+               SES_Charge(sp);
+               vca_return_session(sp);
+               sp->step = STP_DONE;
+               return (1);
        }
 }