}
// GET params management
$get_vars = explode('?', $req[1], 2);
- $path = $get_vars[0];
+ $path = $get_vars[0];
if (count($get_vars) > 1) {
$a = explode('&', $get_vars[1]);
printf("A COUNT: [%s] %d\n", $a[0], count($a));
}
// POST params management
if ($req[0] == 'POST') {
+ $conttype_all = explode(";", $header['Content-Type']);
+ $header['Content-Type'] = $conttype_all[0];
+ // $path_all[1-] other things like charset and so on
+
if ($header['Content-Type'] != 'application/x-www-form-urlencoded'
|| !isset($header['Content-Length'])) {
return FALSE;
}
- $post_len = mb_strlen($line, "latin1");
+ $post_len = mb_strlen($line, "ASCII");
$a = explode('&', $line);
for ($i = 0 ; $i < count($a) ; $i++) {
$b = explode('=', $a[$i]);
var $unix_socket;
var $socks;
var $s2u;
- var $pages_flush;
+ var $pending_pages;
var $list;
var $in;
$thiz->debug = $debug;
$thiz->socks = array();
$thiz->s2u = array();
- $thiz->pages_flush = array();
+ $thiz->pending_pages = array();
// create a couple of sockets for control management
if (($sockpair = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM,
unset($this->socks[$id]);
}
- function pgflush_try_add($enc, &$new_socket, $tout, $header_out, $content)
+ function pendpage_try_addflush($enc, &$new_socket, $tout, $header_out, $content)
{
- $pgflush = new PageFlush($new_socket, $enc, $this->curtime, $tout, $header_out, $content);
+ $pgflush = PendingPage::pendingpage_flushing($new_socket, $enc, $this->curtime, $tout, $header_out, $content);
if ($pgflush->try_flush($this->curtime) == FALSE) {
// Add $pgflush to the pgflush array
function pgflush_add($pgflush)
{
- array_push($this->pages_flush, $pgflush);
+ array_push($this->pending_pages, $pgflush);
}
function garbage_manager($force)
while ($this->main_loop) {
$this->curtime = time();
- printf("IN LOOP: Current opened: %d pages_flush: %d - ", count($this->socks), count($this->pages_flush));
+ printf("IN LOOP: Current opened: %d pending_pages: %d - ", count($this->socks), count($this->pending_pages));
/* Prepare the read array */
/* // when we manage it ... */
stream_set_blocking($new_socket, $this->blocking_mode); // Set the stream to non-blocking
printf("RECEIVED HEADER:\n%s", $stream_info);
$path = spu_process_info($stream_info, $method, $header, $get, $post, $cookie);
+ $addr = stream_socket_get_name($new_socket, TRUE);
printf("PATH: [%s]\n", $path);
printf("M: %s\nHEADER:\n", $method);
+ if ($method == "POST") {
+ // ADD PUSH INTO FD ARRAY AS WAITING DATA
+ // Passing all infos from spu_process_info as arguments:
+ //
+ // MAYBE: $stream_info,
+ // $method, $header, $get, $post, $cookie
+ // $s_a_p (this), $new_socket, substr($path, SITE_PREFIX_LEN),
+ // $addr
+ }
print_r($header);
printf("GET:\n");
print_r($get);
print_r($post);
printf("COOKIE:\n");
print_r($cookie);
- $addr = stream_socket_get_name($new_socket, TRUE);
$header_out = array();
- $subs = SITE_PREFIX."briskin5/";
- $subs_l = strlen($subs);
+ // TODO: MOVE DOWN request_mgr to factorize new_sockets and POST closed
$rret = FALSE;
if (!strncmp($path, SITE_PREFIX, SITE_PREFIX_LEN)) {
$rret = $this->app->request_mgr($this, $header, $header_out, $new_socket, substr($path, SITE_PREFIX_LEN), $addr, $get, $post, $cookie);
$buf = fread($sock, 512);
// if socket is closed
if ($buf == FALSE || strlen($buf) == 0) {
+ // close socket case
if ($buf == FALSE) {
printf("ERROR READING\n");
}
}
}
}
+ // TODO: MOVE HERE request_mgr to factorize new_sockets and POST closed
+ // $rret = $this->app->request_mgr
}
}
$this->garbage_manager(FALSE);
/* manage unfinished pages */
- foreach ($this->pages_flush as $k => $pgflush) {
+ foreach ($this->pending_pages as $k => $pgflush) {
+ // TODO: try_flush if exists in the class
if ($pgflush->try_flush($this->curtime) == TRUE) {
- unset($this->pages_flush[$k]);
+ unset($this->pending_pages[$k]);
}
}