summaryrefslogtreecommitdiff
path: root/extlib/Stomp
diff options
context:
space:
mode:
authorMarcel van der Boom <marcel@hsdev.com>2009-09-08 22:21:33 +0200
committerCraig Andrews <candrews@integralblue.com>2009-09-11 20:50:53 -0400
commitc04987018cd6c845c6da7a92d9857d8c651f7022 (patch)
tree7fda105d912998b3cf979c3f0d44edb6c6526ace /extlib/Stomp
parenta73162d3eb237046f89ab21e17a9424ac47cd66d (diff)
Several fixes to make RabbitMQ a player.
* extlib/Stomp.php -spaces for tabs (we're on PEAR, right?) - send: initialize the $properties parameter as array() instead of null this prevents unsetting $headers if $properties was not set (besides that, it's the proper way to initialize an array) - subscribe: insert FIXME's on ActiveMQ specifics - ack: make sure the content-length header is set *and* is zero. I have seen the header set to '3' there but could not find where it came from, this is at least safe. - disconnect: typo in $headers variable - readFrame: use fgets() instead of gets() so that RabbitQ, which is more protocol strict can also play * extlib/Stomp/Frame.php - spaces for tabs - add note on possibly protocol violating linefeed * extlib/Stomp/Message.php - space for tabs - add content-length header for message * lib/stompqueuemanager.php - use the notice for logging, not the frame
Diffstat (limited to 'extlib/Stomp')
-rw-r--r--extlib/Stomp/Frame.php87
-rw-r--r--extlib/Stomp/Message.php6
2 files changed, 49 insertions, 44 deletions
diff --git a/extlib/Stomp/Frame.php b/extlib/Stomp/Frame.php
index dc59c1cb7..9fd97b4f5 100644
--- a/extlib/Stomp/Frame.php
+++ b/extlib/Stomp/Frame.php
@@ -17,46 +17,46 @@
*/
/* vim: set expandtab tabstop=3 shiftwidth=3: */
-
-/**
- * Stomp Frames are messages that are sent and received on a StompConnection.
- *
- * @package Stomp
- * @author Hiram Chirino <hiram@hiramchirino.com>
- * @author Dejan Bosanac <dejan@nighttale.net>
- * @author Michael Caplan <mcaplan@labnet.net>
- * @version $Revision: 36 $
- */
-class Stomp_Frame
-{
- public $command;
- public $headers = array();
- public $body;
-
- /**
- * Constructor
- *
- * @param string $command
- * @param array $headers
- * @param string $body
- */
- public function __construct ($command = null, $headers = null, $body = null)
- {
- $this->_init($command, $headers, $body);
- }
-
- protected function _init ($command = null, $headers = null, $body = null)
- {
- $this->command = $command;
- if ($headers != null) {
- $this->headers = $headers;
- }
- $this->body = $body;
-
- if ($this->command == 'ERROR') {
- require_once 'Stomp/Exception.php';
- throw new Stomp_Exception($this->headers['message'], 0, $this->body);
- }
+
+/**
+ * Stomp Frames are messages that are sent and received on a StompConnection.
+ *
+ * @package Stomp
+ * @author Hiram Chirino <hiram@hiramchirino.com>
+ * @author Dejan Bosanac <dejan@nighttale.net>
+ * @author Michael Caplan <mcaplan@labnet.net>
+ * @version $Revision: 36 $
+ */
+class Stomp_Frame
+{
+ public $command;
+ public $headers = array();
+ public $body;
+
+ /**
+ * Constructor
+ *
+ * @param string $command
+ * @param array $headers
+ * @param string $body
+ */
+ public function __construct ($command = null, $headers = null, $body = null)
+ {
+ $this->_init($command, $headers, $body);
+ }
+
+ protected function _init ($command = null, $headers = null, $body = null)
+ {
+ $this->command = $command;
+ if ($headers != null) {
+ $this->headers = $headers;
+ }
+ $this->body = $body;
+
+ if ($this->command == 'ERROR') {
+ require_once 'Stomp/Exception.php';
+ throw new Stomp_Exception($this->headers['message'], 0, $this->body);
+ }
}
/**
@@ -74,7 +74,8 @@ class Stomp_Frame
$data .= "\n";
$data .= $this->body;
- return $data .= "\x00\n";
- }
-}
+ $data .= "\x00\n"; // Should there really be a linefeed here?
+ return $data;
+ }
+}
?> \ No newline at end of file
diff --git a/extlib/Stomp/Message.php b/extlib/Stomp/Message.php
index 6bcad3efd..055662133 100644
--- a/extlib/Stomp/Message.php
+++ b/extlib/Stomp/Message.php
@@ -29,8 +29,12 @@ require_once 'Stomp/Frame.php';
*/
class Stomp_Message extends Stomp_Frame
{
- public function __construct ($body, $headers = null)
+ public function __construct ($body, $headers = array())
{
+ if(!isset($headers['content-length'])) {
+ // TODO: log this, to see if this is correct
+ $headers['content-length'] = strlen($body);
+ }
$this->_init("SEND", $headers, $body);
}
}