Commit Graph

1423 Commits

Author SHA1 Message Date
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
9907a2101d add 'raw' to payload to allow getting to the raw xml
darcs-hash:20080830000314-84dde-c83d970dbaf046fa37b4af13a23795abcc20e33b.gz
2008-08-29 20:03:14 -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
b17bb9861c lost $sent_to in jabber_public_notice
darcs-hash:20080829200859-84dde-d1c4c5897096a06dec8be14e81499d70a79c78d2.gz
2008-08-29 16:08:59 -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
f652418863 harmonize csrf and queues
darcs-hash:20080829174012-84dde-4859ce0a34a50080f8376fa3278c3aa3e3a3046d.gz
2008-08-29 13:40:12 -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
241881238c misprint of omb as oms
darcs-hash:20080828012619-84dde-f7e993f345220d3642743e9f2567d7f8e6e4b6ce.gz
2008-08-27 21:26:19 -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
6b1f391306 $this->log to common_log in Queue_item
darcs-hash:20080828004503-84dde-c406172d750d0a5452d5cc62ecd7b27db381c575.gz
2008-08-27 20:45:03 -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
9cdb33ac0e don't clear claims immediately
darcs-hash:20080828002610-84dde-d9cb46cb08ac50b8efbdf5683baeb2de168fc4b1.gz
2008-08-27 20:26:10 -04:00
Evan Prodromou
2be3be1c29 correct presence in jabber function
darcs-hash:20080828001936-84dde-e4ec2fef30c49d1254d5358624a4391930811832.gz
2008-08-27 20:19:36 -04:00
Evan Prodromou
7887147603 change return in queue function
darcs-hash:20080828001414-d018c-fa900f60f0af20c01e8b83a74834ddf46829f4b2.gz
2008-08-27 20:14:14 -04:00
Evan Prodromou
cd5dc3246e got two lines reversed
darcs-hash:20080827211940-84dde-d5b404023a2fb6b74b6255dd91910c9ec7df3cc6.gz
2008-08-27 17:19:40 -04:00
Evan Prodromou
35ed6f473c change queue_item to use a compound primary key
Breaking up to use multiple queue handlers means we need multiple
queue items for the same notice. So, change the queue_item table to
have a compound pkey, (notice_id,transport).

darcs-hash:20080827211239-84dde-db118799bfd43be62fb02380829c64813c9334f8.gz
2008-08-27 17:12:39 -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
adeb19f1f7 clean up username entered at login
darcs-hash:20080829225258-84dde-6fee5f0beea62f023c13436b8d7044241bc0d01a.gz
2008-08-29 18:52:58 -04:00
Zach Copley
9fb08ec45e CSRF protection in remotesubscribe
darcs-hash:20080829054038-7b5ce-d0503a8eb7f89a9d2de4aadd4550f4342b943b09.gz
2008-08-29 01:40:38 -04:00
Zach Copley
a034e13bf0 CSRF protection in emailsettings
darcs-hash:20080829053337-7b5ce-6d94638c57d185e5d44e02ad458593a3f4de36d9.gz
2008-08-29 01:33:37 -04:00
Evan Prodromou
2dc50d7e37 CSRF protection in user registration
darcs-hash:20080829054017-84dde-c9268e5c815934dcbca2451dd6c9016f2ac4a03a.gz
2008-08-29 01:40:17 -04:00
Zach Copley
47726844a0 CSRF protection in recoverpassword
darcs-hash:20080829052824-7b5ce-39a8fd299b7a85793ad7a19fe00c93813ca882b6.gz
2008-08-29 01:28:24 -04:00
Evan Prodromou
98e941753b session token in userauthorization form
darcs-hash:20080829052847-84dde-a64918a75f8300ec8fb230202881691066147652.gz
2008-08-29 01:28:47 -04:00
Evan Prodromou
63438008e0 csrf protection in userauthorization
darcs-hash:20080829052732-84dde-0ebb7e32236b480cc3aa2eb7a4bb2b41ff6177d6.gz
2008-08-29 01:27:32 -04:00
Evan Prodromou
9b741c4f9a better client error on CSRF problem with subscribe/unsubscribe
darcs-hash:20080829051628-84dde-2a339a35c422afb9ec04f757771764ed43b2c28b.gz
2008-08-29 01:16:28 -04:00
Evan Prodromou
4272da4e9e CSRF protection for subscription/unsubscription
darcs-hash:20080829051104-84dde-9bd23c28c2c8a720046060a33ff3e5f246c47116.gz
2008-08-29 01:11:04 -04:00
Zach Copley
2e239e3fbb CSRF protection in imsettings.php
darcs-hash:20080829035707-7b5ce-69a9ff98390ff8b9671ede948d78fdb37371aac6.gz
2008-08-28 23:57:07 -04:00
Zach Copley
6be7cbc5cd CSRF protection in smssettings.php
darcs-hash:20080829035118-7b5ce-57613e88b29617ea422c7f7003e81ef885e3debb.gz
2008-08-28 23:51:18 -04:00
Evan Prodromou
6afb7f576e add csrf protection to profile settings
darcs-hash:20080829043909-84dde-c70a633c93ab89560bc300817bda66eebf6176cf.gz
2008-08-29 00:39:09 -04:00
Evan Prodromou
9a65f45c45 CSRF protection in openidsettings
darcs-hash:20080829042908-84dde-1d1a22dfd3d89c5521aeb9069dc64c5f6dad3a27.gz
2008-08-29 00:29:08 -04:00
Evan Prodromou
d0a466bdb7 swap around some stuff to show the form correctly on a CSRF error in openidlogin
darcs-hash:20080829040925-84dde-7195734eeb3df6439c099c1139caf77e2c2ea3c1.gz
2008-08-29 00:09:25 -04:00
Evan Prodromou
42a6492152 CSRF protection for OpenID form
darcs-hash:20080829035934-84dde-cf36fd802bed76fdf15ac39b838494a414d5cc1e.gz
2008-08-28 23:59:34 -04:00
Evan Prodromou
d6dd35a66a add a token for CSRF avoidance
darcs-hash:20080829034854-84dde-a636b446dc254aaa77ac65f63be01e49c192bf32.gz
2008-08-28 23:48:54 -04:00
Evan Prodromou
93e67c7133 show error in delete notice
darcs-hash:20080829025559-84dde-bd29b5e6750a1ff72bd39e8e76bde325b0313fb8.gz
2008-08-28 22:55:59 -04:00
Evan Prodromou
dd55916d56 CSRF protection in deletenotice
darcs-hash:20080829025127-84dde-b3e2eb64b7dd8302037f471f6dba6949e2e15ecc.gz
2008-08-28 22:51:27 -04:00
Evan Prodromou
d3c86d0016 add CSRF protection to avatar
darcs-hash:20080829023919-84dde-38e4bf6bddc120a221af5f856d9f88b7a532096b.gz
2008-08-28 22:39:19 -04:00
Evan Prodromou
d146355875 return after failed token
darcs-hash:20080829023731-84dde-8920bbaf1e1f171829d0acff3f89ec987deb6368.gz
2008-08-28 22:37:31 -04:00
Evan Prodromou
1df845db78 fix random function name
darcs-hash:20080829021854-84dde-818492a31c07dd0921c2a693095ca7ac901b6d35.gz
2008-08-28 22:18:54 -04:00
Evan Prodromou
54bee1b999 code for session token
darcs-hash:20080829015304-84dde-1c93203bdfbd4c1696cdd3c07212ff16a9f727dd.gz
2008-08-28 21:53:04 -04:00
Evan Prodromou
ff566a149d add session token check to password change
darcs-hash:20080829014515-84dde-bce51f66ba0b3b4347a55a70b2b266b72c242304.gz
2008-08-28 21:45:15 -04:00
Evan Prodromou
cf3902d8ac get language before setting it.
darcs-hash:20080828005323-84dde-8f69e1e6115faa544c22436539148dac53ed6f65.gz
2008-08-27 20:53:23 -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