call_sogo_ctrl.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. session_start();
  3. $AuthUsers = array("admin");
  4. if (!isset($_SESSION['mailcow_cc_role']) OR !in_array($_SESSION['mailcow_cc_role'], $AuthUsers)) {
  5. echo "Not allowed." . PHP_EOL;
  6. exit();
  7. }
  8. if ($_GET['ACTION'] == "start") {
  9. $request = xmlrpc_encode_request("supervisor.startProcess", 'reconf-domains', array('encoding'=>'utf-8'));
  10. $context = stream_context_create(array('http' => array(
  11. 'method' => "POST",
  12. 'header' => "Content-Length: " . strlen($request),
  13. 'content' => $request
  14. )));
  15. $file = @file_get_contents("http://sogo:9191/RPC2", false, $context) or die("Cannot connect to $remote_server:$listener_port");
  16. $response = xmlrpc_decode($file);
  17. if (isset($response['faultString'])) {
  18. echo '<b><span class="pull-right text-warning">' . $response['faultString'] . '</span></b>';
  19. }
  20. else {
  21. echo '<b><span class="pull-right text-success">OK</span></b>';
  22. }
  23. }
  24. elseif ($_GET['ACTION'] == "stop") {
  25. $request = xmlrpc_encode_request("supervisor.stopProcess", 'sogo', array('encoding'=>'utf-8'));
  26. $context = stream_context_create(array('http' => array(
  27. 'method' => "POST",
  28. 'header' => "Content-Length: " . strlen($request),
  29. 'content' => $request
  30. )));
  31. $file = @file_get_contents("http://sogo:9191/RPC2", false, $context) or die("Cannot connect to $remote_server:$listener_port");
  32. $response = xmlrpc_decode($file);
  33. if (isset($response['faultString'])) {
  34. echo '<b><span class="pull-right text-warning">' . $response['faultString'] . '</span></b>';
  35. }
  36. else {
  37. sleep(4);
  38. $request = xmlrpc_encode_request("supervisor.stopProcess", 'reconf-domains', array('encoding'=>'utf-8'));
  39. $context = stream_context_create(array('http' => array(
  40. 'method' => "POST",
  41. 'header' => "Content-Length: " . strlen($request),
  42. 'content' => $request
  43. )));
  44. $file = @file_get_contents("http://sogo:9191/RPC2", false, $context) or die("Cannot connect to $remote_server:$listener_port");
  45. $response = xmlrpc_decode($file);
  46. if (isset($response['faultString'])) {
  47. echo '<b><span class="pull-right text-warning">' . $response['faultString'] . '</span></b>';
  48. }
  49. else {
  50. echo '<b><span class="pull-right text-success">OK</span></b>';
  51. }
  52. }
  53. }
  54. ?>