isAdmin( $_SESSION['user_id'] ); if($isAdmin) $home_info = $db->getGameHome($home_id); else $home_info = $db->getUserGameHome($_SESSION['user_id'],$home_id); if ( $home_info === FALSE || preg_match("/u/",$home_info['access_rights']) != 1 ) { print_failure( get_lang("no_rights") ); echo "
<< ". back ."
"; return; } $home_id = $home_info['home_id']; $game_type = $home_info['game_key']; echo "

Updating game server ".htmlentities($home_info['home_name'])."

"; $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$home_info['home_cfg_file']); if ( $server_xml->installer != "steamcmd" ) { print_failure( get_lang("xml_steam_error") ); return; } $remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'], $home_info['timeout']); $host_stat = $remote->status_chk(); if( $host_stat === 0 ) { print_failure( get_lang("agent_offline") ); $view->refresh("?m=gamemanager&p=update&update=".$_GET['update']."&home_id=$home_id&mod_id=$mod_id",5); return; } else { if ( $remote->is_screen_running(OGP_SCREEN_TYPE_HOME,$home_id) == 1 ) { print_failure( get_lang("server_running_cant_update") ); return; } $log_txt = ''; $update_active = $remote->get_log(OGP_SCREEN_TYPE_UPDATE, // Note exec location should not be added here as the log is in root where steam is executed. $home_id,clean_path($home_info['home_path']), $log_txt); $modkey = $home_info['mods'][$mod_id]['mod_key']; $mod_xml = xml_get_mod($server_xml, $modkey); if (!$mod_xml) { print_failure(get_lang_f('mod_key_not_found_from_xml',$modkey)); return; } // Start update. else if ($_GET['update'] == 'update' && $update_active != 1) { $installer_name = $modkey; if ( isset( $mod_xml->installer_name ) ) { $installer_name = $mod_xml->installer_name; } $precmd = $home_info['mods'][$mod_id]['precmd'] == "" ? ( $home_info['mods'][$mod_id]['def_precmd'] == "" ? $server_xml->pre_install : $home_info['mods'][$mod_id]['def_precmd'] ) : $home_info['mods'][$mod_id]['precmd']; $postcmd = $home_info['mods'][$mod_id]['postcmd'] == "" ? ( $home_info['mods'][$mod_id]['def_postcmd'] == "" ? $server_xml->post_install : $home_info['mods'][$mod_id]['def_precmd'] ) : $home_info['mods'][$mod_id]['postcmd']; $exec_folder_path = clean_path($home_info['home_path'] . "/" . $server_xml->exe_location ); $exec_path = clean_path($exec_folder_path . "/" . $server_xml->server_exec_name ); if( isset( $_REQUEST['master_server_home_id'] ) ) { $ms_home_id = $_REQUEST['master_server_home_id']; if ($db->getMasterServer($home_info['remote_server_id'], $home_info['home_cfg_id']) == $ms_home_id) { if ($ms_home_id !== $home_id) { $ms_info = $db->getGameHome($ms_home_id); $steam_out = $remote->masterServerUpdate( $home_id,$home_info['home_path'],$ms_home_id,$ms_info['home_path'],$exec_folder_path,$exec_path,$precmd,$postcmd ); } else { print_failure(get_lang('cannot_update_from_own_self')); $view->refresh('?m=gamemanager&p=game_monitor', 2); return; } } else { $db->logger(get_lang_f('update_attempt_from_nonmaster_server', $_SESSION['users_login'], $home_id, $ms_home_id)); print_failure(get_lang('attempting_nonmaster_update')); $view->refresh('?m=gamemanager&p=game_monitor', 2); return; } } else { if( preg_match("/win32/", $server_xml->game_key) OR preg_match("/win64/", $server_xml->game_key) ) $cfg_os = "windows"; elseif( preg_match("/linux/", $server_xml->game_key) ) $cfg_os = "linux"; $settings = $db->getSettings(); // Some games like L4D2 require anonymous login if($mod_xml->installer_login){ $login = $mod_xml->installer_login; $pass = ''; }else{ $login = $settings['steam_user']; $pass = $settings['steam_pass']; } $modname = ( $installer_name == '90' ) ? $modkey : ''; $betaname = isset($mod_xml->betaname) ? $mod_xml->betaname : ''; $betapwd = isset($mod_xml->betapwd) ? $mod_xml->betapwd : ''; // Additional files to lock if(isset($server_xml->lock_files) && !empty($server_xml->lock_files)){ $lockFiles = trim($server_xml->lock_files); }else{ $lockFiles = ""; } $steam_out = $remote->steam_cmd( $home_id,$home_info['home_path'],$installer_name,$modname, $betaname,$betapwd,$login,$pass,$settings['steam_guard'], $exec_folder_path,$exec_path,$precmd,$postcmd,$cfg_os,$lockFiles); } if( $steam_out === 0 ) { print_failure( get_lang("failed_to_start_steam_update") ); return; } else if ( $steam_out === 1 ) { print_success( get_lang("update_started") ); } } // Refresh update page. else { if ( isset( $_POST['stop_update_x'] ) ) { $remote->stop_update($home_id); print_success("Update stopped."); $view->refresh("?m=gamemanager&p=update&update=refresh&home_id=$home_id&mod_id=$mod_id", 2); return; } $update_complete = false; if ( $update_active == 1 ) { echo "

". update_in_progress ."

\n"; echo "
". stop_update ."
"; } else { $view->refresh("{CURRENT_PAGE}", 60); print_success( get_lang("update_completed") ); echo "
<< ". back ."
"; $update_complete = true; } if (empty($log_txt)) $log_txt = not_available; echo "
".$log_txt."
\n"; if ( $update_complete ) return; } echo "

"; echo refresh_steam_status ."

"; $view->refresh("?m=gamemanager&p=update&update=refresh&home_id=$home_id&mod_id=$mod_id",5); return; } } ?>