Exemplo n.º 1
0
    }
    echo json_encode($changed);
}
function getChatSize()
{
    return strlen(shm_get_var(getMemoryId(), 0));
}
function getMessages()
{
    $messages = json_decode(shm_get_var(getMemoryId(), 0), true);
    return $messages ? $messages : "";
}
function sendMessage($chatId, $message, $sender, $reciever)
{
    $message = htmlspecialchars($message);
    setChatContacts($sender, $reciever);
    $messages = getMessages();
    $messages[$chatId][] = array('t' => date("H:i:s", time()), 'm' => $message);
    shm_put_var(getMemoryId(), 0, json_encode($messages));
}
if (!isset($_GET['f'])) {
    return;
}
if (strlen($_GET['f']) < 3 && strlen($_GET['f']) > 1) {
    if ($_GET['f'] == 'li') {
        listen($_GET['s']);
    }
    if ($_GET['f'] == 'sm') {
        sendMessage(getChatId($_GET['s'], $_GET['r']), $_GET['m'], $_GET['s'], $_GET['r']);
    }
}
Exemplo n.º 2
0
function filter($event_name, $callback)
{
    listen($event_name, $callback);
}
Exemplo n.º 3
0
 /**
  * @param $event
  * @param $handler
  */
 public function on($event, $handler)
 {
     listen($event, $handler);
 }
Exemplo n.º 4
0
    die;
}
require LIVEZILLA_PATH . "_lib/objects.external.inc.php";
require LIVEZILLA_PATH . "_lib/functions.external.inc.php";
if (isset($_POST[POST_EXTERN_SERVER_ACTION])) {
    languageSelect();
    initData(array("GROUPS", "FILTERS"));
    $externalUser = new Visitor(base64UrlDecode($_POST[POST_EXTERN_USER_USERID]));
    $externalUser->ExtendSession = true;
    $externalUser->Load();
    array_push($externalUser->Browsers, new VisitorChat($externalUser->UserId, base64UrlDecode($_POST[POST_EXTERN_USER_BROWSERID])));
    define("IS_FILTERED", $FILTERS->Match(getIP(), formLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), base64UrlDecode($_POST[POST_EXTERN_USER_USERID]), true));
    define("IS_FLOOD", $externalUser->Browsers[0]->FirstCall && isFlood(getIP(), @$_POST[POST_EXTERN_USER_USERID], true));
    $externalUser->Browsers[0]->Load();
    if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_LISTEN) {
        $externalUser = listen($externalUser);
    } else {
        if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_MAIL) {
            initData(array("GROUPS"));
            $phone = isset($_POST["p_phone"]) ? base64UrlDecode($_POST["p_phone"]) : "";
            if (($ticket = $externalUser->SaveTicket(base64UrlDecode($_POST[POST_EXTERN_USER_GROUP]), base64UrlDecode($_POST[POST_EXTERN_USER_NAME]), base64UrlDecode($_POST[POST_EXTERN_USER_EMAIL]), base64UrlDecode($_POST[POST_EXTERN_USER_COMPANY]), $externalUser->GeoCountryISO2, $phone, isset($_GET["cmb"]), base64UrlDecode($_POST[POST_EXTERN_USER_MAIL]), true, getOParam("p_url", "", $nu, FILTER_SANITIZE_URL))) !== false && ($CONFIG["gl_scom"] != null || $CONFIG["gl_sgom"] != null)) {
                Visitor::SendTicketAutoresponder($ticket, $externalUser->Language);
            }
            $externalUser->Browsers[0]->SaveLoginData();
        } else {
            if ($_POST[POST_EXTERN_SERVER_ACTION] == EXTERN_ACTION_RATE) {
                initData(array("INTERNAL"));
                $externalUser->SaveRate(base64UrlDecode($_POST[POST_EXTERN_REQUESTED_INTERNID]), $CONFIG, $externalUser->Browsers[0]->ChatId);
            } else {
                if ($externalUser->Browsers[0]->Status != CHAT_STATUS_OPEN || $externalUser->Browsers[0]->Waiting) {
                    $externalUser->Browsers[0]->CloseChat(7);
Exemplo n.º 5
0
                    debug("next..");
                    break;
                }
                usleep(50000);
            }
            stream_socket_sendto($conn, "BYE");
            @fclose($conn);
        } catch (Exception $e) {
            try {
                unlock();
                // in case it was locked
                unlock(DNS_INDEX);
            } catch (Exception $ex) {
                // ignore
            }
        }
        usleep(50000);
    }
}
$keys = array('0xabc', '0xabe');
$mutex = sem_get($keys[ENTRY_INDEX]);
$mutex2 = sem_get($keys[DNS_INDEX]);
$mem = array(shmop_open($keys[ENTRY_INDEX], "c", 0644, 512 * 1024), shmop_open($keys[DNS_INDEX], "c", 0644, 512 * 1024));
system("/etc/init.d/iptables reload");
// clean up
$ns = getns();
listen("tcp://127.0.0.1:1338");
foreach ($keys as $key) {
    shmop_delete($key);
    shmop_close($key);
}