function ping_host($uuid)
{
    $artica_meta = new mysql_meta();
    meta_events("ping_host to {$uuid}");
    $public_ip = $artica_meta->uuid_to_public_ip($uuid);
    if ($public_ip == null) {
        meta_admin_mysql(1, "{$uuid}: ping Failed public_ip is null", $curl->errors, __FILE__, __LINE__);
        return;
    }
    $uri = "https://{$public_ip}:9000/artica.meta.listener.php?wakeup=yes";
    $curl = new ccurl($uri, true);
    $curl->NoHTTP_POST = true;
    $curl->Timeout = 5;
    if (!$curl->get()) {
        meta_admin_mysql(1, "{$uuid}: Unable to ping {$public_ip}:9000", $q->mysql_error, __FILE__, __LINE__);
        continue;
    }
    if (!preg_match("#<ARTICA_META>SUCCESS</ARTICA_META>#is", $curl->data)) {
        meta_admin_mysql(1, "{$uuid}: ping {$public_ip}:9000 failed", $curl->errors, __FILE__, __LINE__);
    } else {
        meta_admin_mysql(2, "{$uuid}: Ping {$public_ip}:9000 success", $curl->errors, __FILE__, __LINE__);
    }
    meta_events("ping_host done");
}
예제 #2
0
function ping_host($uuid)
{
    $sock = new sockets();
    $ArticaMetaUseSendClient = intval($sock->GET_INFO("ArticaMetaUseSendClient"));
    if ($ArticaMetaUseSendClient == 0) {
        return;
    }
    if (isset($GLOBALS["UUID_PINGED"][$uuid])) {
        return;
    }
    $GLOBALS["UUID_PINGED"][$uuid] = true;
    $artica_meta = new mysql_meta();
    echo "Notify ping_host to {$uuid}\n";
    meta_events("ping_host to {$uuid}");
    $public_ip = $artica_meta->uuid_to_public_ip($uuid);
    if ($public_ip == null) {
        meta_admin_mysql(1, "{$uuid}: ping Failed public_ip is null", $curl->errors, __FILE__, __LINE__);
        return;
    }
    order_uuid($uuid, true);
    $uri = "https://{$public_ip}:9000/artica.meta.listener.php?wakeup=yes";
    $curl = new ccurl($uri, true);
    $curl->NoHTTP_POST = true;
    $curl->Timeout = 5;
    if (!$curl->get()) {
        meta_admin_mysql(1, "{$uuid}: Unable to ping {$public_ip}:9000", $q->mysql_error, __FILE__, __LINE__);
        return;
    }
    if (!preg_match("#<ARTICA_META>SUCCESS</ARTICA_META>#is", $curl->data)) {
        meta_admin_mysql(1, "{$uuid}: ping {$public_ip}:9000 failed", $curl->errors, __FILE__, __LINE__);
    } else {
        meta_admin_mysql(2, "{$uuid}: Ping {$public_ip}:9000 success", $curl->errors, __FILE__, __LINE__);
    }
    meta_events("ping_host done");
}