I think you want $bytes_out >= $size, actually... I'm not sure what you are sending out for that last extra byte... :-) You could consider just timing out any zombies. You could use "ignore_user_abort" and hope to "finish" most of the downloads, as far as PHP is concerned, but I don't think ignore_user_abort is 100% guaranteed, and there's always the chance of a PHP or Apache connection crashing... You could also re-think the problem to check, say, load on the server, or some sort of bandwidth meter that you could manage, rather than N slots. So somebody on a dog-slow dialup downloading would not "count" as much as somebody sucking down your entire bandwidth on a T-1. By shaping it by the bytes/sec being spewed out by PHP, zombie connections will naturally stop updating the meter, so won't count. On Sun, December 31, 2006 9:12 am, Aras wrote: > First of all, Happy New Year for everyone in the list. I wish 2007 > brings > all us happiness, health and peace. > > I want to read your advises at a point i am stuck within, i have an > application that serves downloads to clients. For some reason i am > limiting > total open slot for some group of users (not related to my technical > question). > > Example; > > // CHECKS SLOT HERE > > else { // IF THERE ANY AVAILABLE SLOTS SEND THE FILE > > // INCREMENT SLOT NUMBER BY 1 > > $fp = fopen($pathside,"r"); > > if ($fp) { > > while (!feof($fp)) { > echo fread($fp, 334); > > $bytes_out += 334; > ob_flush(); > > if ($bytes_out > $size) { > > // DECREASE SLOT NUMBER BY 1, BECAUSE THIS DOWNLOAD IS FINISHED > > } > > } > > } > > } > > > Slots are recorded and checked from a simple mysql table. Everything > works > in this scenario. There is no problem if a person starts a download > and > finishes it, his slots get empty upon doing so. Yet if he cancelles > the > transfer, he will never reach my control structure to empty the slot. > And > slots will be full of zombies. > > I have thought of updating a mysql field for alive-connections in the > while > loop, but it will definitely add some load on my server. Updating a > system > file is not secure and good way. > > What other ways can you recommend to me for the situtation? > > > Aras Koktas > manager@xxxxxxxxxx > Business Excellence Development > Phi.dot Internet Systems > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- Some people have a "gift" link here. Know what I want? I want you to buy a CD from some starving artist. http://cdbaby.com/browse/from/lynch Yeah, I get a buck. So? -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php