Commit Graph

819 Commits

Author SHA1 Message Date
Evan Prodromou
b2653f007a remove custom xmppdaemon error handler
darcs-hash:20080830162128-84dde-430fae5f1a0be77db2860c4e6e1c68b961b0944d.gz
2008-08-30 12:21:28 -04:00
CiaranG
bfb22a9932 XMPP daemon updates including help, sub and subsub commands, plus subscribe/unsubcribe logic broken out into standalone module for sharing
darcs-hash:20080816083422-f6e2c-fb8b4e0581719bd8c3f433e661ec9742e1b84cbc.gz
2008-08-16 04:34:22 -04:00
CiaranG
a0b6ebdd2d Bounce oversized XMPP messages back to user (Ticket #112)
darcs-hash:20080814083856-f6e2c-0e56895260fb96dedaa6a663db7e906fee2f7b05.gz
2008-08-14 04:38:56 -04:00
Evan Prodromou
e84439d5c5 duplicate confirmation to avoid where clause
darcs-hash:20080913164333-84dde-ef4f3363e045aabd52173ea9be34b2f59f64d084.gz
2008-09-13 12:43:33 -04:00
Evan Prodromou
ed57778b92 LOG_ERROR -> LOG_ERR
darcs-hash:20080913161107-84dde-30b694455d509a7ec2d12e8418f54ce695aa0993.gz
2008-09-13 12:11:07 -04:00
Evan Prodromou
0c71340c9f free and unset DB_DataObjects after we're done with them
darcs-hash:20080906015501-84dde-e787962b9805759224389dd42a211dfa21da3473.gz
2008-09-05 21:55:01 -04:00
Evan Prodromou
64fa9034f5 better logging for confirm handler update
darcs-hash:20080904203502-84dde-b95f4c3564a0ccc8dbfec8da7e2ff5b8c57e1ed2.gz
2008-09-04 16:35:02 -04:00
Evan Prodromou
fd7e30c83e require xmppqueuehandler in jabberqueuehandler
darcs-hash:20080904194456-84dde-16fa43e8158134dcc91b4ecbe04ebf10ad85605a.gz
2008-09-04 15:44:56 -04:00
Evan Prodromou
12b7829f66 change xmppqueuedaemon to jabberqueuedaemon in startdaemons
darcs-hash:20080904194346-84dde-93705711bbaab5ac10195a9ef1c855115e545b26.gz
2008-09-04 15:43:46 -04:00
Evan Prodromou
bd83350c89 abstract XMPP-related queue handling to a common superclass
darcs-hash:20080904194035-84dde-480b3605862d26eff6a2cac6eec02775628287e4.gz
2008-09-04 15:40:35 -04:00
Evan Prodromou
660c7e89cd make confirmhandler a subclass of queuehandler
darcs-hash:20080904193118-84dde-a33d0db712c51177c3f5a5f36483e873aca81532.gz
2008-09-04 15:31:18 -04:00
Evan Prodromou
febfde227d better feedback when starting daemons
darcs-hash:20080904192851-84dde-91b7e3bd9cadb760224fee14418fc37c44e2b7c7.gz
2008-09-04 15:28:51 -04:00
Evan Prodromou
c8be6fc095 new format for startdaemons; not sure how to do stopdaemons so punting
darcs-hash:20080904192220-84dde-e852271817361bd00fd89c31c7e4b684edf5f029.gz
2008-09-04 15:22:20 -04:00
Evan Prodromou
aed0fff4ea scripts daemonize themselves
darcs-hash:20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz
2008-09-04 14:40:31 -04:00
CiaranG
c69504d423 Fix typo in presence message (x3)
darcs-hash:20080904081542-f6e2c-33b65962d067d142cbdca727625a1b6cc0b30ba4.gz
2008-09-04 04:15:42 -04:00
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
4173b5ce51 public queue handler and xmpp confirm handler service their message queues
darcs-hash:20080830172217-84dde-b5501719421b84ea1ee8346cf8a5ad170fd1db88.gz
2008-08-30 13:22:17 -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 Prodromou
1cf81a57e4 check for self in forwards, too
darcs-hash:20080830085607-84dde-83e95d40d4d8a64a6bc223a0e91fec53022422c6.gz
2008-08-30 04:56:07 -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
336812b845 sms handler was handling omb wrongly
darcs-hash:20080830071007-84dde-7e7e52c858e3dd33d0efd02abe86e2eaa7111e4b.gz
2008-08-30 03:10:07 -04:00
Evan Prodromou
48535515e0 require mail for sms, not omb
darcs-hash:20080830070309-84dde-14a3492cb8132f6a8008d482caa753df2c79ff46.gz
2008-08-30 03:03:09 -04:00
Evan Prodromou
136f9a4016 don't clear old claims
darcs-hash:20080830070135-84dde-dc0cfc8e23c31c33617aa167f7c97d443b10539d.gz
2008-08-30 03:01:35 -04:00
Evan Prodromou
755f192df0 correctly use attrs array rather than nonexistent attunction
darcs-hash:20080830062744-84dde-98c6419f4b66a570e9ef9de34d8d07e40aa1177d.gz
2008-08-30 02:27:44 -04:00
Evan Prodromou
c3adc854da log fetch
darcs-hash:20080830062246-84dde-823ceafa203aa034c52e0df55c21f241e35363fa.gz
2008-08-30 02:22:46 -04:00
Evan Prodromou
f76b4c8d72 debug xml input
darcs-hash:20080830060732-84dde-54d5d4c4a8747215bd5b224e4216f9fc1eb349a6.gz
2008-08-30 02:07:32 -04:00
Evan Prodromou
c3f4789735 better debugging output for forwarded messages
darcs-hash:20080830055938-84dde-d0c6b241502b674f974f75f6c22b13f9dca8134c.gz
2008-08-30 01:59:38 -04:00
Evan Prodromou
4e3b69014e get address from addresses
darcs-hash:20080830055640-84dde-2cd151d876f6586d827ecfc38e1b72d1cfb4950d.gz
2008-08-30 01:56:40 -04:00
Evan Prodromou
047db53726 better logging in ombqueuehandler
darcs-hash:20080830055416-84dde-fad0303b1d4b7265e7f01faf90e088e409c7d8b3.gz
2008-08-30 01:54:16 -04:00
Evan Prodromou
a586bbed24 typo preventing detection of addresses
darcs-hash:20080830052810-84dde-e90c46cc8d9a48a91098efd123c45108ce2903b6.gz
2008-08-30 01:28:10 -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
9ad8f2766c strip script ending from end of xmppdaemon
darcs-hash:20080829202613-84dde-58f58a315ea0093c5b029b01492fd71d2fed014c.gz
2008-08-29 16:26:13 -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
a0f726fb6c a little more robust confirm handler
darcs-hash:20080829182349-84dde-a6d4056d6fa2ecb4c5ed07f3a3a40576315ec4d9.gz
2008-08-29 14:23:49 -04:00
Evan Prodromou
c9782862d4 fix name of instantiated class
darcs-hash:20080829182112-84dde-c29ccd959e19e18cc2ceac1ba701f351f914c26b.gz
2008-08-29 14:21:12 -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
00c4fb2157 add a script to stop daemons, too
darcs-hash:20080828135011-84dde-40b44db4416cf83b8929bb0ed77741ed0f177f14.gz
2008-08-28 09:50:11 -04:00
Evan Prodromou
c9cf958d63 add a bash script to start all the daemons
darcs-hash:20080828134856-84dde-271585ac7d76f8f0d615e9f641dfbc25c61bfb28.gz
2008-08-28 09:48:56 -04:00
Evan Prodromou
dbf28603fa return results of broadcasting by sms
darcs-hash:20080828012635-84dde-166baf7800333ee79a6bad2e5427ac7623c7614f.gz
2008-08-27 21:26:35 -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
972e03b158 extend QueueHandler
darcs-hash:20080828003829-84dde-dc44674785f853ebf37861e5e91fb0e0366258e9.gz
2008-08-27 20:38:29 -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
f59ead93ee remove unimplemented methods from XmppDaemon
darcs-hash:20080827210429-84dde-90c22dbee16f74f53464dcd538a6dbcf49db4f28.gz
2008-08-27 17:04:29 -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
Evan Prodromou
f3dc863d8f don't do too many broadcasts or confirms before checking the message queue
darcs-hash:20080827142336-84dde-2bec2149d86900fd0291f8c00f85aa756842bbe1.gz
2008-08-27 10:23:36 -04:00
Evan Prodromou
9bdc7f8ec7 add back in a session start handler
darcs-hash:20080827135422-84dde-857d6e980e18803186d080a60eea60f1362bb348.gz
2008-08-27 09:54:22 -04:00
CiaranG
b6d67b06d4 XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551)
darcs-hash:20080826200057-f6e2c-fb9a88251d034824218d20b3fefcde96ddaef827.gz
2008-08-26 16:00:57 -04:00
Evan Prodromou
28ed510854 don't show unknown (debug) errors
darcs-hash:20080827132346-84dde-c5499ac960fbb28bced28ff9355846f7183fcb5c.gz
2008-08-27 09:23:46 -04:00
Evan Prodromou
108b1e7bfd fixup whitespace
darcs-hash:20080827131603-84dde-7be64f28840a29c5833bc625aaf6cb8f07b891e5.gz
2008-08-27 09:16:03 -04:00
Evan Prodromou
cba4b50e44 use common_sql_now() instead of DB_DataObject_Cast
darcs-hash:20080825182338-84dde-ec0edef9469b294b7e23945f1bc7d810da988ed7.gz
2008-08-25 14:23:38 -04:00
Evan Prodromou
55b6e17ee1 use mb_strlen instead of strlen in xmpp daemon
darcs-hash:20080825173105-84dde-ea607521c78694fe558514b423f1c6dc0e70241e.gz
2008-08-25 13:31:05 -04:00
CiaranG
92645bbc57 XMPP sub/unsub and help commands
darcs-hash:20080822191032-f6e2c-a3a7efbbaad1ec7c48ef132a8ba34fc8b8651969.gz
2008-08-22 15:10:32 -04:00
CiaranG
ce3cdb20c0 Define xmpp daemon claim timeout time
darcs-hash:20080822185955-f6e2c-569bc9d304e904fd26e3cc976e8246e3eb7f93bd.gz
2008-08-22 14:59:55 -04:00
CiaranG
ebe35f56ae Fix bug in xmpp on/off (ticket #528)
darcs-hash:20080819071321-f6e2c-a7ee326669eba917fff8dd37c85c13db46c93f19.gz
2008-08-19 03:13:21 -04:00
CiaranG
5022a9efb9 XMPP bounce message when too long (ticket #112)
darcs-hash:20080818213031-f6e2c-760cbb6f91485bbb8b29156c06a16e9ad6cd0acf.gz
2008-08-18 17:30:31 -04:00
Evan Prodromou
d135039c1d set internal encoding in XMPP daemon
darcs-hash:20080818033049-84dde-eb6098e0ae84d081418536ceb6964a65bcbf4953.gz
2008-08-17 23:30:49 -04:00
Evan Prodromou
c9d9ecffd4 use mb_substr for xmpp daemon check
darcs-hash:20080818025549-84dde-0277e3c0b58a6d223f892376cfc9f5aa9df9714b.gz
2008-08-17 22:55:49 -04:00
Evan Prodromou
808b40dc53 move command-line scripts to their own dir
darcs-hash:20080813154603-84dde-fc1cf32ab5617c11b6cbe9ad084dac32b0db315a.gz
2008-08-13 11:46:03 -04:00