X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fsac-a-push.phh;h=6d754927c487f52151692752d9a0cb987797a100;hb=ecf6a45e748c8b5c9fa731dbe364a7eb53cd59a7;hp=ef65115b5bc627f9d72ba5e8a566c9d2126c2872;hpb=90a3af6cf232fa9b77270f38eb8d766b3bb3ac23;p=brisk.git diff --git a/web/Obj/sac-a-push.phh b/web/Obj/sac-a-push.phh index ef65115..6d75492 100644 --- a/web/Obj/sac-a-push.phh +++ b/web/Obj/sac-a-push.phh @@ -156,6 +156,8 @@ function spu_process_info($stream_info, &$method, &$header, &$get, &$post, &$coo printf("A COUNT: [%s] %d\n", $a[0], count($a)); for ($i = 0 ; $i < count($a) ; $i++) { $b = explode('=', $a[$i]); + if ($b[0] == "") + continue; $get[$b[0]] = urldecode($b[1]); } } @@ -603,7 +605,7 @@ class Sac_a_push { foreach ($this->socks as $k => $sock) { $id = intval($sock); if (isset($this->s2u[$id])) { - if ($this->s2u[$id]->sess == '') { + if ($this->s2u[$id]->the_end) { if ($this->s2u[$id]->rd_socket_get() != NULL) { $this->s2u[$id]->rd_socket_set(NULL); } @@ -614,6 +616,7 @@ class Sac_a_push { } } } + $this->app->users_cleanup(); } function run() @@ -874,6 +877,13 @@ class Sac_a_push { $id = intval($sock); if (isset($this->s2u[$id])) { $user = $this->s2u[$id]; + + if ($user->rd_toflush) { + if (fflush($sock) == FALSE) + continue; + else + $user->rd_toflush = FALSE; + } $response = $user->rd_cache_get(); $do_ping = FALSE; if (($this->curtime - $user->lacc) > (EXPIRE_TIME_RD / 3)) { @@ -911,7 +921,10 @@ class Sac_a_push { else { $user->rd_cache_set(""); } - fflush($sock); + if (fflush($sock) == FALSE) { + $user->rd_toflush = TRUE; + continue; + } $user->rd_kalive_reset($this->curtime); }