enhanced POST management
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Tue, 5 Feb 2013 17:37:38 +0000 (18:37 +0100)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Tue, 5 Feb 2013 17:37:38 +0000 (18:37 +0100)
web/Obj/sac-a-push.phh

index d39740c..fe8ec42 100644 (file)
@@ -132,11 +132,15 @@ function spu_process_info($stream_info, $method, &$header, &$get, &$post, &$cook
             }
             // 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]);
@@ -589,8 +593,18 @@ class Sac_a_push {
                             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);
@@ -598,11 +612,9 @@ class Sac_a_push {
                             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);
@@ -621,6 +633,7 @@ class Sac_a_push {
                         $buf = fread($sock, 512);
                         // if socket is closed
                         if ($buf == FALSE || strlen($buf) == 0) {
+                            // close socket case
                             if ($buf == FALSE) {
                                 printf("ERROR READING\n");
                             }
@@ -678,6 +691,8 @@ class Sac_a_push {
                             }
                         }
                     }
+                    // TODO: MOVE HERE request_mgr to factorize new_sockets and POST closed
+                    // $rret = $this->app->request_mgr
                 }
             }