edit_server.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. /*
  3. *
  4. * OGP - Open Game Panel
  5. * Copyright (C) 2008 - 2017 The OGP Development Team
  6. *
  7. * http://www.opengamepanel.org/
  8. *
  9. * This program is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * as published by the Free Software Foundation; either version 2
  12. * of the License, or any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this program; if not, write to the Free Software
  21. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  22. *
  23. */
  24. function exec_ogp_module() {
  25. global $view;
  26. global $db;
  27. $rhost_id = @$_REQUEST['rhost_id'];
  28. $remote_server = $db->getRemoteServer($rhost_id);
  29. if ( $remote_server === FALSE )
  30. {
  31. print_failure(get_lang_f('invalid_remote_host_id',$rhost_id));
  32. $view->refresh("?m=server");
  33. return;
  34. }
  35. echo "<h2>".get_lang_f('editing_remote_server',$remote_server['remote_server_name'])."</h2>";
  36. #this allows you to define upto 4 IPs for each remote host. The IPs are for binding games to
  37. if ( isset($_REQUEST['add_ip']) )
  38. {
  39. $remote_ip = $_POST['remote_ip'];
  40. $remote_ip = preg_replace("/[^0-9\.]/", "", $remote_ip);
  41. if ( $db->addRemoteServerIp($rhost_id, $remote_ip) === FALSE )
  42. {
  43. print_failure( get_lang("could_not_add_ip") );
  44. }
  45. else
  46. {
  47. print_success(get_lang_f('ips_set_for_server',$remote_server['remote_server_name']));
  48. }
  49. $view->refresh("?m=server&amp;p=edit&amp;rhost_id=".$rhost_id."&amp;edit");
  50. }
  51. else if ( isset($_REQUEST['remove_ip']) )
  52. {
  53. $ip_id = $_POST['ip_id'];
  54. if ( $db->removeRemoteServerIps($ip_id) === FALSE )
  55. {
  56. print_failure( get_lang("could_not_remove_ip") );
  57. }
  58. else
  59. {
  60. print_success(get_lang_f('ips_set_for_server',$remote_server['remote_server_name']));
  61. }
  62. $view->refresh("?m=server&amp;p=edit&amp;rhost_id=".$rhost_id."&amp;edit");
  63. }
  64. else if ( isset($_REQUEST['edit_ip']) )
  65. {
  66. $ip_id = $_POST['ip_id'];
  67. $ip = $_POST['ip'];
  68. $ip = preg_replace("/[^0-9\.]/", "", $ip);
  69. if ( $db->editRemoteServerIps($ip_id,$ip) === FALSE )
  70. {
  71. print_failure( get_lang("could_not_edit_ip") );
  72. }
  73. else
  74. {
  75. print_success(get_lang_f('ips_set_for_server',$remote_server['remote_server_name']));
  76. }
  77. $view->refresh("?m=server&amp;p=edit&amp;rhost_id=".$rhost_id."&amp;edit");
  78. }
  79. #This removes and rhost from the list
  80. else if ( isset($_REQUEST['delete']) )
  81. {
  82. if ( !isset($_REQUEST['y'] ) )
  83. {
  84. echo "<p>". areyousure_removeagent ." <b>\"".
  85. $remote_server['remote_server_name']."\"</b> ". areyousure_removeagent2 ."</p>
  86. <p><a href='?m=server&amp;p=edit&amp;rhost_id=".$rhost_id."&amp;delete&amp;y=y'>".
  87. yes ."</a> <a href='?m=server'>".
  88. no ."</a></p>";
  89. return;
  90. }
  91. else if ( $db->removeRemoteServer($rhost_id) === FALSE )
  92. print_failure( get_lang("error_while_remove") );
  93. else
  94. print_success(get_lang_f('remote_host_removed',$remote_server['remote_server_name']));
  95. $view->refresh("?m=server");
  96. return;
  97. }
  98. else if ( isset($_REQUEST['save_settings']) )
  99. {
  100. $db->changeRemoteServerSettings($remote_server['remote_server_id'],
  101. $_REQUEST['remote_host'],
  102. $_REQUEST['remote_host_port'],
  103. $_REQUEST['remote_host_name'],
  104. $_REQUEST['ogp_user'],
  105. $_REQUEST['remote_host_ftp_ip'],
  106. $_REQUEST['remote_host_ftp_port'],
  107. $_REQUEST['remote_encryption_key'],
  108. $_REQUEST['timeout'],
  109. $_REQUEST['use_nat'],
  110. $_REQUEST['display_public_ip']);
  111. print_success(get_lang_f('remote_server_settings_changed',$remote_server['remote_server_name']));
  112. $view->refresh("?m=server&amp;p=edit&amp;rhost_id=".$rhost_id."&amp;edit");
  113. }
  114. if ( isset($_REQUEST['edit']) )
  115. {
  116. $remote_server = $db->getRemoteServer($rhost_id);
  117. $ftp_ip = empty($remote_server['ftp_ip']) ? $remote_server['agent_ip'] : $remote_server['ftp_ip'];
  118. require_once('includes/form_table_class.php');
  119. $ft = new FormTable();
  120. $ft->start_form('?m=server&amp;p=edit&amp;rhost_id='.$rhost_id.'&amp;edit');
  121. $ft->add_field_hidden('rhost_id',$remote_server['remote_server_id']);
  122. $ft->start_table();
  123. $ft->add_field('string','remote_host',$remote_server['agent_ip']);
  124. $ft->add_field('string','remote_host_port',$remote_server['agent_port']);
  125. $ft->add_field('string','remote_host_name',$remote_server['remote_server_name']);
  126. $ft->add_field('string','ogp_user',$remote_server['ogp_user']);
  127. $ft->add_field('string','remote_host_ftp_ip',$ftp_ip);
  128. $ft->add_field('string','remote_host_ftp_port',$remote_server['ftp_port']);
  129. $ft->add_field('string','remote_encryption_key',$remote_server['encryption_key']);
  130. $ft->add_field('string','timeout',$remote_server['timeout']);
  131. $ft->add_field('on_off','use_nat',$remote_server['use_nat']);
  132. $ft->add_field('string','display_public_ip',$remote_server['display_public_ip']);
  133. $ft->end_table();
  134. $ft->add_button('submit','save_settings', save_settings );
  135. $ft->end_form();
  136. echo create_back_button('server');
  137. echo "<h2>".get_lang_f('remote_ips_for',$remote_server['remote_server_name'])."</h2>";
  138. echo "<p class='info'>". hint .": ". add_more_ips ."</p>";
  139. $remote_server_ips = $db->getRemoteServerIPs($remote_server['remote_server_id']);
  140. if ( !empty($remote_server_ips) )
  141. {
  142. echo "<h1>". edit_ip ."s</h1>";
  143. include('includes/lib_remote.php');
  144. foreach ( $remote_server_ips as $ip_row )
  145. {
  146. $servers_match_ip_id = $db->getIpPorts( $ip_row['ip_id'] );
  147. $servers_running = FALSE;
  148. if($servers_match_ip_id)
  149. {
  150. foreach ( $servers_match_ip_id as $home_info )
  151. {
  152. $remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
  153. $screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME,$home_info['home_id']) === 1;
  154. if( $screen_running )
  155. {
  156. $servers_running = TRUE;
  157. break;
  158. }
  159. }
  160. }
  161. $disabled = $servers_running ? "disabled" : "";
  162. $warning = $servers_running ? "<b class='failure' >". there_are_servers_running_on_this_ip ."<b>" : "";
  163. echo "<table style='width:auto;'>
  164. <tr>
  165. <td align='left' >
  166. <form method='post' action=''>
  167. <input name='ip_id' type='hidden' value='".$ip_row['ip_id']."'/>
  168. <input name='ip' type='text' value='".$ip_row['ip']."'/>
  169. <input type='submit' name='edit_ip' value='". edit_ip ."' $disabled/>
  170. <input type='submit' name='remove_ip' value='". remove_ip ."' $disabled/> $warning
  171. </form>
  172. </td>
  173. <td style='text-align:left;'>
  174. <form method='post' action='?m=server&p=arrange_ports&rserver_id=".$rhost_id."&ip_id=".$ip_row['ip_id']."'>
  175. <input type='submit' name='arrange_ports' value='". arrange_ports ."'/>
  176. </form>
  177. </td>
  178. </tr>
  179. </table>";
  180. }
  181. }
  182. echo "<h1>". add_ip ."s</h1>";
  183. $ft = new FormTable();
  184. $ft->start_form('');
  185. $ft->add_field_hidden('rhost_id',$remote_server['remote_server_id']);
  186. $ft->start_table();
  187. $ft->add_field('string','remote_ip','');
  188. $ft->end_table();
  189. $ft->add_button('submit','add_ip', add_ip );
  190. $ft->end_form();
  191. }
  192. else
  193. {
  194. print_failure("Invalid url.");
  195. $view->refresh("?m=server");
  196. }
  197. }
  198. ?>