Commit Graph

20 Commits

Author SHA1 Message Date
Evan Prodromou 307b9527e6 variable name conflict on reconnect
darcs-hash:20080902172039-84dde-2b1bbac407959af2a5ca0c764aa503f0cb05c785.gz
2008-09-02 13:20:39 -04:00
Evan Prodromou 65e462858e set the reconnect timeout
darcs-hash:20080902171740-84dde-ee629f4b5dbcf712cd350c37d0f1814ca1b7f237.gz
2008-09-02 13:17:40 -04:00
Evan Prodromou af8e38aeff better connection handling in scripts
darcs-hash:20080902165735-84dde-e522711214832e6f992b9897aaf8904b1d5c6a2e.gz
2008-09-02 12:57:35 -04:00
Evan Prodromou 7abcee54ea add reconnect handlers to main XMPP-handling scripts
darcs-hash:20080902165319-84dde-b6cc255f014e6c5c059905c37c258a6c7a53b39a.gz
2008-09-02 12:53:19 -04:00
Evan Prodromou d5f83d9252 switch around how XMLStream does processing
darcs-hash:20080831003210-84dde-92ccffd5b2e1d50963b18babd93c70fb1d20cdba.gz
2008-08-30 20:32:10 -04:00
Evan Prodromou ea5b129163 dnd -> available, just looks bad as dns
darcs-hash:20080902030910-84dde-01fa58c8c1ab359a077c7a5498973235954be085.gz
2008-09-01 23:09:10 -04:00
Evan Prodromou c6c3cd40f6 separate out presence from connection, send different presence types from queuehandlers
darcs-hash:20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz
2008-09-01 21:26:04 -04:00
Evan Prodromou 902ba87a8b add some sanity-check stuff for long-running daemons
darcs-hash:20080831023844-84dde-b8c9ce5f38d33c7fd8a42dc0d3640d500e653011.gz
2008-08-30 22:38:44 -04:00
Evan Prodromou ed2aeecfdd add initialization info to the queue handlers
darcs-hash:20080831020325-84dde-606d52b08146d4c226f812a9f47b5a3ec1abc743.gz
2008-08-30 22:03:25 -04:00
Evan Prodromou 0217a74f13 check the state of the queue before diving in to process it
darcs-hash:20080830095709-84dde-a64262c1b32e506cb2c43f8b4fb55ab88effc22f.gz
2008-08-30 05:57:09 -04:00
Evan Prodromou 2860313f4b eliminate loops in forwarding
darcs-hash:20080830090148-84dde-2f5711a22c7e5a868005bb3188a966c0cdde30ab.gz
2008-08-30 05:01:48 -04:00
evan 55816cf24e some fixes from on the jabber server
darcs-hash:20080830083502-5b646-d6a66157d86ca84cfa6cf6280bb2eb17bc20e02d.gz
2008-08-30 04:35:02 -04:00
Evan Prodromou 706dc53d40 strtolower jids for comparison
darcs-hash:20080830052143-84dde-81ba3f1e687605d23e9bdc2c3672ac7ae36f9b60.gz
2008-08-30 01:21:43 -04:00
Evan Prodromou 4cdd90283b forward messages from queuehandler to listener
The queuehandler sends messages to the user. If the user replies, the
messages are typically sent directly to the queuehandler (including
resource), not the default bot JID.

We add a little code for the xmppqueuehandler to periodically service
its queue of received messages. Received messages are forwarded to the
listener to deal with. We use XEP 33, 'addresses', to note the
original sender.

The xmppdaemon checks to see if the 'from' on a message is the daemon
address. If so, it looks for a XEP 33 'addresses' stanza, with an
'ofrom' address, which shows who it was originally is from.

This should let us send from one resource ID and still process
incoming messages in a different connection.

darcs-hash:20080830040717-84dde-59c75bfb107a1dd5fd531106751b4544bfd15656.gz
2008-08-30 00:07:17 -04:00
Evan Prodromou f5fe013657 many jabber queue management changes
Added a method to QueueManager to let subclasses do stuff when idle.
Needed so that XMPP queue manager can service its message queue.

Cleaned up jabber_broadcast_message quite a bit. Use custom joins
instead of loop-and-query, should fix some problems with users who are
getting messages even after turning off notification. Only build $msg
and $entry once, and use the XMPPHP function for messages with a
payload, rather than rolling our own.

darcs-hash:20080829200352-84dde-427e4ca8c81d4222a36f78e7c580b611ff0bf765.gz
2008-08-29 16:03:52 -04:00
Evan Prodromou c4d6789275 split public stream to its own queue handler
Add another queue handler for the public stream. Should further
parallelize the work of sending out messages.

darcs-hash:20080829181702-84dde-594505aa73d2380b13bd98917b70b02bac597d12.gz
2008-08-29 14:17:02 -04:00
Evan Prodromou cde3bc585f return correct values for success in handling messages
darcs-hash:20080828011002-84dde-8099da64841ab137e915249025857f34084c0f34.gz
2008-08-27 21:10:02 -04:00
Evan Prodromou 27fff6ff04 XmppQueueHandler extends QueueHandler too
darcs-hash:20080828004224-84dde-01ba0a7b9105629b1eb8a28a1a9702912e7e9da6.gz
2008-08-27 20:42:24 -04:00
Evan Prodromou 08d5107cf1 correct return values from start() in queue handlers
darcs-hash:20080828003013-84dde-7c8323ef348960f58590e872b2c4ab37107ba60a.gz
2008-08-27 20:30:13 -04:00
Evan Prodromou b9f0ea6f0e break up monolithic xmppdaemon into multiple queue handlers
Eventually, the poor xmppdaemon has become overloaded with extra
tasks. So, I've broken it up. Now, we have 5 background scripts, and
more coming:

* xmppdaemon.php - handles incoming XMPP messages only.
* xmppqueuehandler.php - sends notices from the queue out through XMPP.
* smsqueuehandler.php - sends notices from the queue out over SMS
* ombqueuehandler.php - sends notices from the queue out over OMB
* xmppconfirmhandler.php - sends confirmation requests out over XMPP.

This is in addition to maildaemon.php, which takes incoming messages.

None of these are "true" daemons -- they don't daemonize themselves
automatically. Use nohup or another tool to background them. monit can
also be useful to keep them running.

At some point, these might become fork()'ing daemons, able to handle
more than one notice at a time. For now, I'm just running multiple
instances, hoping they don't interfere.

darcs-hash:20080827205407-84dde-97884a12f5f4e54c93bc785bd280683d1ee7e749.gz
2008-08-27 16:54:07 -04:00