public function toggle_index_server_action() { if (Request::isPost()) { $host = new LernmarktplatzHost(Request::option("host_id")); if ($host->isMe()) { $host['index_server'] = Request::int("active", 0); $host->store(); //distribute this info to adjacent server $data = array('data' => array('public_key' => $host['public_key'], 'url' => $host['url'], 'name' => $host['name'], 'index_server' => $host['index_server'])); foreach (LernmarktplatzHost::findAll() as $remote) { if (!$remote->isMe()) { $remote->pushDataToEndpoint("update_server_info", $data); } } /*$curl_multi_handle = curl_multi_init(); $requests = array(); foreach (LernmarktplatzHost::findAll() as $remote) { if (!$remote->isMe()) { $request = $remote->pushDataToEndpoint("update_server_info", $data, true); curl_multi_add_handle($curl_multi_handle, $request); $requests[] = $request; } } $active = null; do { $mrc = curl_multi_exec($curl_multi_handle, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($curl_multi_handle) != -1) { do { $mrc = curl_multi_exec($curl_multi_handle, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } foreach ($requests as $request) { curl_multi_remove_handle($curl_multi_handle, $request); } curl_multi_close($curl_multi_handle); */ } else { $host['allowed_as_index_server'] = Request::int("active", 0); $host->store(); } } $this->render_text(Icon::create("checkbox-" . (Request::int("active") ? "" : "un") . "checked")); }