} 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']); } }
function filter($event_name, $callback) { listen($event_name, $callback); }
/** * @param $event * @param $handler */ public function on($event, $handler) { listen($event, $handler); }
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);
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); }