Advertisement
Guest User

PHPAGI Patch

a guest
Nov 18th, 2014
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.74 KB | None | 0 0
  1. [pbx]# diff -c -b phpagi-asmanager.php-orig phpagi-asmanager.php
  2. *** phpagi-asmanager.php-orig   2011-11-29 14:01:41.000000000 -0500
  3. --- phpagi-asmanager.php        2014-02-22 00:33:19.762533912 -0500
  4. ***************
  5. *** 180,185 ****
  6. --- 180,188 ----
  7.               // store parameter in $parameters
  8.               $parameters[substr($buffer, 0, $a)] = substr($buffer, $a + 2);
  9.             }
  10. +           // FNORD
  11. +           //error_log("print_r(buffer)=" . print_r($buffer, TRUE));
  12. +           //error_log("print_r(this->socket)=" . print_r($this->socket, TRUE));
  13.             $buffer = trim(fgets($this->socket, 4096));
  14.           }
  15.  
  16. ***************
  17. *** 805,811 ****
  18.       {
  19.         $ret = false;
  20.         $e = strtolower($parameters['Event']);
  21. !       $this->log("Got event.. $e");
  22.  
  23.         $handler = '';
  24.         if(isset($this->event_handlers[$e])) $handler = $this->event_handlers[$e];
  25. --- 808,814 ----
  26.       {
  27.         $ret = false;
  28.         $e = strtolower($parameters['Event']);
  29. !       //$this->log("Got event.. " . print_r($parameters, true) . "\n");
  30.  
  31.         $handler = '';
  32.         if(isset($this->event_handlers[$e])) $handler = $this->event_handlers[$e];
  33. ***************
  34. *** 813,824 ****
  35.  
  36.         if(function_exists($handler))
  37.         {
  38. !         $this->log("Execute handler $handler");
  39.           $ret = $handler($e, $parameters, $this->server, $this->port);
  40.         }
  41.         else
  42. !         $this->log("No event handler for event '$e'");
  43.         return $ret;
  44.       }
  45.     }
  46.   ?>
  47. --- 816,893 ----
  48.  
  49.         if(function_exists($handler))
  50.         {
  51. !         //$this->log("Execute handler $handler");
  52.           $ret = $handler($e, $parameters, $this->server, $this->port);
  53.         }
  54.         else
  55. !         //$this->log("No event handler for event '$e'");
  56.         return $ret;
  57.       }
  58. +
  59. +    /**
  60. +     *
  61. +     *
  62. +     *
  63. +     *
  64. +     *
  65. +     * @param boolean
  66. +     * @return array of parameters, empty array on timeout, and false on error
  67. +     */
  68. +     function wait_response2($time_max = 0)
  69. +     {
  70. +       $time_end = time() + $time_max;
  71. +       stream_set_timeout($this->socket, 10);
  72. +       while(true)
  73. +       {
  74. +         $type = NULL;
  75. +         $parameters = array();
  76. +
  77. +         $buffer = trim(fgets($this->socket, 4096));
  78. +         while($buffer != '')
  79. +         {
  80. +           $a = strpos($buffer, ':');
  81. +           if($a)
  82. +           {
  83. +             if(!count($parameters)) // first line in a response?
  84. +             {
  85. +               $type = strtolower(substr($buffer, 0, $a));
  86. +               if(substr($buffer, $a + 2) == 'Follows')
  87. +               {
  88. +                 // A follows response means there is a miltiline field that follows.
  89. +                 $parameters['data'] = '';
  90. +                 $buff = fgets($this->socket, 4096);
  91. +                 while(substr($buff, 0, 6) != '--END ')
  92. +                 {
  93. +                   $parameters['data'] .= $buff;
  94. +                   $buff = fgets($this->socket, 4096);
  95. +                 }
  96. +               }
  97. +             }
  98. +
  99. +             // store parameter in $parameters
  100. +             $parameters[substr($buffer, 0, $a)] = substr($buffer, $a + 2);
  101. +           }
  102. +           $buffer = trim(fgets($this->socket, 4096));
  103. +         }
  104. +
  105. +         // process response
  106. +         switch($type)
  107. +         {
  108. +           case 'event':
  109. +             $this->process_event($parameters);
  110. +             break;
  111. +           case 'response':
  112. +             return $parameters;
  113. +             break;
  114. +           default:
  115. +             //$this->log('Unhandled response packet from Manager: ' . print_r($parameters, true));
  116. +             break;
  117. +         }
  118. +         if (time() > $time_end) {
  119. +             break;
  120. +         }
  121. +       }
  122. +     }
  123. +
  124.     }
  125.   ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement