fix hard cabled stream_fini response when some error occurs
[brisk.git] / web / Obj / brisk.phh
index c71e15b..f8c9225 100644 (file)
@@ -140,10 +140,10 @@ $mlang_brisk = array( 'btn_backstand'=> array( 'it' => 'torna in piedi',
 $G_lng = langtolng($G_lang);
 
 $G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "4.2.1";
+$G_brisk_version = "4.5.2";
 
 /* MLANG: ALL THE INFO STRINGS IN brisk.phh */
-$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: adottato sac-a-push come motore per l\'invio dei dati in tempo reale, nuovo trasporto httpfile per explorer, tanti bug fixati, freeze su disco, fix del calcolo dei punti.',
+$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: nuova visualizzazione dello stato della connessione dati, indirizzo IP sorgente memorizzato correttamente nei log.',
                                        'Se vuoi iscriverti alla <a target="_blank" href="mailto:ml-briscola+subscribe@milug.org">Mailing List</a>, cliccala!' ),
                        'en' => array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NEWS</b>: usage of reader/writer locking instead of generic exclusive locking.',
                                        'If you want to subscribe our <a target="_blank" href="ml-briscola+subscribe@milug.org">Mailing List</a>, click it!' ) );
@@ -788,7 +788,7 @@ class Room
                             $user_cur->bantime    = $bri_user->bantime;
                         }
                         
-                        log_legal($curtime, 'xxx', $user_cur, "STAT:DESTROY_GAME", $plist);
+                        log_legal($curtime, $user_cur->ip, $user_cur, "STAT:DESTROY_GAME", $plist);
                         
                         $this->room_join_wakeup($user_cur, FALSE, 0); 
                         $table_cur->table_token = "";
@@ -825,7 +825,7 @@ class Room
                     for ($i = 0 ; $i < $table_cur->player_n ; $i++) {
                         $plist .= '|'.$this->user[$table_cur->player[$i]]->sess;
                     }
-                    log_legal($curtime, 'xxx', $user_cur, "STAT:DESTROY_GAME(RECOVERY)", $plist);
+                    log_legal($curtime, $user_cur->ip, $user_cur, "STAT:DESTROY_GAME(RECOVERY)", $plist);
                     
                     $this->room_join_wakeup($user_cur, TRUE, -2); 
                     $table_cur->table_token = "";
@@ -905,7 +905,7 @@ class Room
 
     $ret .= sprintf('stat = "%s";',  $user->stat);
     
-    $ret .= root_wellcome($user);
+    $ret .= root_welcome($user);
     if ($user->flags & USER_FLAG_DBFAILED) {
         $ret .= "gst.st = ".($user->step+1)."; ";
         $ret .= show_notify($mlang_brisk['db_failed'][$G_lang], 0, $mlang_brisk['btn_close'][$G_lang], 400, 140);
@@ -1466,6 +1466,18 @@ class Room
         else if (strcasecmp($st_str, "pulizie") == 0) {
           $st = USER_FLAG_S_MOP;
         }
+        else if (strcasecmp($st_str, "babbo") == 0) {
+          $st = USER_FLAG_S_BABBO;
+        }
+        else if (strcasecmp($st_str, "renna") == 0) {
+          $st = USER_FLAG_S_RENNA;
+        }
+        else if (strcasecmp($st_str, "pupazzo") == 0) {
+          $st = USER_FLAG_S_PUPAZ;
+        }
+        else if (strcasecmp($st_str, "vischio") == 0) {
+          $st = USER_FLAG_S_VISCH;
+        }
         else {
           /* MLANG: "Questo stato non esiste." */
           $to_user = sprintf('chatt_sub("%s", [2,"%s"],"%s");', $dt, NICKSERV, $mlang_brisk['statunkn'][$G_lang]);
@@ -1510,7 +1522,7 @@ class Room
         $to_room = $to_user;
       }
 
-      log_legal($curtime, 'xxx', $user, 
+      log_legal($curtime, $user->ip, $user,
                ($user->stat == 'room' ? 'room' : 'table '.$user->table),$msg);
       
       $user->chat_lst = "$msg";
@@ -2137,8 +2149,13 @@ class Room
       printf("NEW_SOCKET (root): %d\n", intval($new_socket));
 
       $enc = get_encoding($header);
-      if (isset($header['User-Agent']) && strstr($header['User-Agent'], "MSIE")) {
-          $transp_type = "htmlfile";
+      if (isset($header['User-Agent'])) {
+          if (strstr($header['User-Agent'], "MSIE")) {
+              $transp_type = "htmlfile";
+          }
+          else {
+              $transp_type = "xhr";
+          }
       }
       else {
           $transp_type = "iframe";
@@ -2171,8 +2188,11 @@ class Room
           do {
               if (!isset($cookie['sess'])
                   || (($user = $this->get_user($cookie['sess'], $idx)) == FALSE)) {
-                  $content = User::stream_fini($s_a_p->rndstr, TRUE);
+                  if (($transp  = gpcs_var('transp', $get, $post, $cookie)) === FALSE)
+                      $transp = "iframe";
                   
+                  $content = User::stream_fini($transp, $s_a_p->rndstr, TRUE);
+
                   $s_a_p->pgflush_try_add($enc, $new_socket, 20, $header_out, $content);
                   return TRUE;
 
@@ -2606,8 +2626,8 @@ function log_shme($log)
 
 
 
-// function log_legal($curtime, $sess, $name, $where, $mesg) 
-function log_legal($curtime, $addr, $user, $where, $mesg) 
+// function log_legal($curtime, $sess, $name, $where, $mesg)
+function log_legal($curtime, $addr, $user, $where, $mesg)
 {
 
   if (($fp = @fopen(LEGAL_PATH."/legal.log", 'a')) != FALSE) {
@@ -2657,7 +2677,7 @@ function show_notify_ex($text, $tout, $butt, $w, $h, $is_opaque, $block_time)
 }
 
 
-function root_wellcome($user)
+function root_welcome($user)
 {
   GLOBAL $root_wellarr, $G_lang;
   $ret = "";