Пример #1
0
 public static function ConnectDrone()
 {
     self::$_requestStatus = HYP_IPC::task_send(self::$_tid, self::$_result, self::$_mid, self::$_data);
     $query = 'update ' . self::$_mysql_ini['prefix'] . 'online_task set status = ' . self::$_requestStatus . ' where tid=\'' . self::$_tid . '\' and status=-9 limit ' . self::$_drones_num;
     if (!self::$_db->query($query)) {
         return false;
     }
     return true;
 }
Пример #2
0
    $query .= "({$clientId},'{$a}','{$flag}'),";
}
$query = substr($query, 0, -1);
$db->query($query);
$query = 'insert into ' . $mysql_ini['prefix'] . 'online_module values ';
foreach ($module as $a) {
    $a = strtoupper($a);
    $query .= "({$clientId},'{$a}'),";
}
$query = substr($query, 0, -1);
$db->query($query);
$db->close();
$hexCID = pack("V", $clientId);
repond_breath(0, $hexCID, false);
include "{$IPC_mod_path}" . 'IPC_' . HYP_IPC_MODE . '.php';
HYP_IPC::KeepAlive();
exit;
function mylog($str)
{
    $fp = fopen('./abort.txt', 'a');
    $str = date('Y-m-d H:i:s') . " { {$str} } " . "\r\n";
    fwrite($fp, $str);
    fclose($fp);
}
function repond_breath($cmd, $src = "", $die = true)
{
    $len = strlen($src);
    $out = pack("Cx15CCx31CV", 1, 255, $cmd, 255, $len);
    echo "" . "{$out}" . "{$src}";
    ob_flush();
    flush();
Пример #3
0
        } elseif ($data and -9 == $requestStatus) {
            if (HYP_IPC_MODE === "mysql") {
                $query = 'insert into ' . $mysql_ini['prefix'] . 'data_request values (?,?)';
                $stmt = $db->prepare($query);
                $stmt->bind_param('ss', $TaskId, $data);
                if (!$stmt->execute()) {
                    $lasterror[] = $language['fail_insert_reqdata'];
                }
            }
        }
        $stmt->close();
    }
    if (!$lasterror) {
        include "{$IPC_mod_path}" . 'IPC_' . HYP_IPC_MODE . '.php';
        $cid["{$clientId}" . '_' . "{$moduleId}"]['cid'] = $clientId;
        $requestStatus = HYP_IPC::task_send($TaskId, $cid, $moduleId, $data);
        $query = 'update ' . $mysql_ini['prefix'] . 'online_task set status = ' . $requestStatus . ' where tid=\'' . $TaskId . '\' and status=-9 limit 1';
        if ($db->query($query)) {
            $requestStatus = 0;
        } else {
            $lasterror[] = $language['request_status_-9'];
        }
    }
}
set_time_limit(0);
ignore_user_abort(true);
define("STREAM_TASK_END_OVERTIME", 51);
define("STREAM_TASK_END_BROWSERBROKE", 52);
define("STREAM_TASK_END_COMPLISHED", 53);
define("STREAM_TASK_END_UNKNOWN", 54);
define("STREAM_TASK_END_READFILE", 55);
Пример #4
0
                 if ($stream_size and 0 == $result['size']) {
                     //以控制端请求长度为准
                     $query .= ',size= ' . $stream_size;
                 }
                 $query .= ' where tid=\'' . $tid . '\' and cid=' . $cid . ' limit 1';
                 $db->query($query);
                 $ret = 1;
             }
         }
     }
 } else {
     //normal
     if (1 == $result['status']) {
         $data = @file_get_contents('php://input');
         $status = 2;
         $pipeOk = HYP_IPC::task_response($tid, $cid . ':' . $status . ':', $data);
         if (!$pipeOk) {
             if (strlen($data)) {
                 $query = 'replace into ' . $mysql_ini['prefix'] . 'data_response values (?,?,?) ';
                 $stmt = $db->prepare($query);
                 $stmt->bind_param("sis", $tid, $cid, $data);
                 if (!$stmt->execute()) {
                     $status = -100;
                 }
                 $stmt->close();
             }
         }
         $query = 'update ' . $mysql_ini['prefix'] . 'online_task set status = ' . $status . ' where tid=\'' . $tid . '\' and status=1 and cid=' . $cid . ' limit 1';
         $db->query($query);
         mylog($query);
         if ('0001' . '0000000000000000000000000000' === $result['module']) {