Fri, 15 Feb 2019 18:04:05 +0100 |
Goffi |
storage (pgsql): fixed filtering in getItemsPublishers
|
Fri, 15 Feb 2019 16:31:38 +0100 |
Goffi |
backend: fixed items returned on publishing:
|
Fri, 15 Feb 2019 15:56:30 +0100 |
Goffi |
backend: allow admins to retract any item
|
Tue, 12 Feb 2019 21:10:00 +0100 |
Goffi |
backend: admins can delete node, change schema, change config or delete items even if they are not owner of a node
|
Wed, 06 Feb 2019 09:26:46 +0100 |
Goffi |
0.3.0a1 release
|
Wed, 16 Jan 2019 09:17:43 +0100 |
Goffi |
use the new install() function of sat_tmp
|
Wed, 16 Jan 2019 08:42:33 +0100 |
Goffi |
dates update
|
Sun, 13 Jan 2019 18:56:19 +0100 |
Goffi |
CHANGELOG: update
|
Sun, 13 Jan 2019 18:56:19 +0100 |
Goffi |
pubsub_admin: Pubsub Admin experimental protocol first draft:
|
Sun, 13 Jan 2019 18:56:19 +0100 |
Goffi |
backend: items ids are returned in payload if not specified on publish
|
Sun, 13 Jan 2019 18:56:17 +0100 |
Goffi |
administrators entities:
|
Sat, 12 Jan 2019 16:43:46 +0100 |
Goffi |
mam: set "complete" attribute when suitable
|
Sat, 12 Jan 2019 16:41:45 +0100 |
Goffi |
storage (pgsql): don't specify table name in ORDER BY clause as it can cause troubles in some requests.
|
Thu, 10 Jan 2019 08:42:49 +0100 |
Goffi |
backend: send a BadRequest if RSM max is negative
|
Sun, 06 Jan 2019 17:30:04 +0100 |
Goffi |
version + CHANGELOG update
|
Sun, 06 Jan 2019 17:29:50 +0100 |
Goffi |
implemented Order-By ProtoXEP (MAM + PubSub)
|
Thu, 03 Jan 2019 20:31:03 +0100 |
Goffi |
storage: changed items order:
|
Sun, 04 Mar 2018 21:06:23 +0100 |
W. Martin Borgert |
fix paths in setup.py (sat_pubsub -> src)
|
Wed, 27 Jun 2018 07:49:03 +0200 |
Goffi |
misc: removed now unused sat_pubsub.tac
|
Wed, 27 Jun 2018 07:18:22 +0200 |
Goffi |
README: added contribution links
|
Fri, 02 Mar 2018 13:02:40 +0100 |
Goffi |
fixes in setyp.py according to recent changed
|
Fri, 02 Mar 2018 12:59:38 +0100 |
Goffi |
config file + cleaning:
|
Fri, 26 Jan 2018 11:16:18 +0100 |
Goffi |
date update
|
Sat, 04 Nov 2017 21:31:32 +0100 |
Goffi |
backend, storage(pgsql): creation/update date + serial ids:
|
Sat, 04 Nov 2017 21:17:12 +0100 |
Goffi |
storage (pgsql): getDefaultConfiguration now returns a shallow copy of default conf dict, to avoid modification.
|
Fri, 03 Nov 2017 14:36:19 +0100 |
Goffi |
misc: date update (yes it's a bit late :p )
|
Fri, 03 Nov 2017 13:59:54 +0100 |
Arnaud Joset |
completed docstrings + use short notation for sets
|
Fri, 03 Nov 2017 13:59:15 +0100 |
Arnaud Joset |
added missing #publish-options in disco features
|
Fri, 03 Nov 2017 13:57:28 +0100 |
Arnaud Joset |
replaced sat.tmp by the new independent module sat_tmp
|
Fri, 27 Oct 2017 18:27:18 +0200 |
Goffi |
schema: allow free FORM_TYPE as this is used for items validation, and should not be in schema namespace
|
Fri, 13 Oct 2017 20:57:47 +0200 |
Goffi |
psql (schema): fixed bad semi-colon
|
Wed, 11 Oct 2017 19:15:14 +0200 |
Goffi |
psql (schema): fixed forgotten comma
|
Wed, 11 Oct 2017 19:14:29 +0200 |
Goffi |
fixed bad inlineCallbacks in checkNodeAffiliations
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
handle single node on subscriptions request
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
pgsql: fixed bad data filling in getItemsData:
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
backend: fixed subscription, PEP was not handled correctly
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
backend: added "presence" access_model:
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
backend: enforce schema on get/publish and notifications
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
schema: node schema implementation
|
Fri, 08 Sep 2017 08:02:05 +0200 |
Goffi |
pgsql: cast items.data to text when needed + db schema version bump.
|
Fri, 08 Sep 2017 08:02:04 +0200 |
Goffi |
sql (PostgreSQL): schema update:
|
Sun, 27 Aug 2017 20:33:39 +0200 |
Goffi |
backend: check nodes/items permission on disco#items:
|
Sun, 27 Aug 2017 20:26:38 +0200 |
Goffi |
privilege: added isSubscribedFrom method to check if an entity has presence subscription from an other entity.
|
Thu, 24 Aug 2017 01:35:43 +0200 |
Goffi |
pgsql: fixed _getItems call
|
Thu, 24 Aug 2017 01:17:28 +0200 |
Goffi |
implemented disco items:
|
Sun, 20 Aug 2017 22:55:28 +0200 |
Goffi |
raise NotImplementedError if memory backend is used
|
Sun, 20 Aug 2017 22:54:58 +0200 |
Goffi |
pgsql: check schema version and exit with a message asking to upgrade if it's not the current one
|
Sun, 20 Aug 2017 18:41:21 +0200 |
Goffi |
backend, psql: implemented notifications for auto subscribers in PEP:
|
Sun, 20 Aug 2017 12:35:04 +0200 |
Goffi |
privilege: fixed addition of owner to publishers in onPresence
|
Sun, 20 Aug 2017 11:56:04 +0200 |
Goffi |
backend, pgsql: implemented subscriptionsGet and subscriptionsSet
|
Sun, 20 Aug 2017 11:16:51 +0200 |
Goffi |
backend (notifications): use inline callbacks in _notifyPublish + added PEP data in _prepareNotify
|
Sun, 20 Aug 2017 10:59:47 +0200 |
Goffi |
backend (notifications): avoid useless database request in getNotifications
|
Sat, 12 Aug 2017 18:29:32 +0200 |
Goffi |
privilege: added presence and +notify initial support:
|
Sat, 12 Aug 2017 18:11:36 +0200 |
Goffi |
storage (pgsql): added getLastItems method, to get last items from a series of nodes and entities (needed for PEP compliance).
|
Sat, 12 Aug 2017 18:10:14 +0200 |
Goffi |
fixed parseItemConfig (was iterating on children instead of elements)
|
Sun, 25 Jun 2017 23:12:43 +0200 |
Goffi |
mam: fixed call to getItemsData where requestor was missing
|
Sat, 03 Jun 2017 16:12:46 +0200 |
Goffi |
delegation: use same disco for all pubsub namespaces
|
Sat, 03 Jun 2017 15:31:07 +0200 |
Goffi |
fixed getOwners call in _prepareNotify
|
Mon, 03 Apr 2017 00:24:34 +0200 |
Goffi |
pgsql: node creation now return error.NodeExists in case of unique violation, and InvalidConfigurationOption else
|
Sun, 26 Mar 2017 20:58:48 +0200 |
Goffi |
affiliations XMPP handling:
|
Sun, 26 Mar 2017 20:52:32 +0200 |
Goffi |
backend, pgsql storage: better items/notification handling, various fixes:
|
Sun, 26 Mar 2017 20:33:18 +0200 |
Goffi |
PostGreSQL: schema update:
|
Fri, 03 Mar 2017 08:35:34 +0100 |
Goffi |
fixed database config : None values can't be used anymore
|
Wed, 09 Mar 2016 10:41:38 +0100 |
Goffi |
updated INSTALL file
|
Fri, 04 Mar 2016 11:26:07 +0100 |
souliane |
update INSTALL file, we don't use remote roster anymore
|
Fri, 08 Jan 2016 20:47:52 +0100 |
Goffi |
mam: removed requestor in favor of mam_request.sender and recipient + fixed bad use of requestor instead of recipient in getItemsData
|
Fri, 08 Jan 2016 17:27:44 +0100 |
Goffi |
pgsql storage: getItemsIndex raise NodeNotFound in this make sense
|
Thu, 07 Jan 2016 16:20:43 +0100 |
Goffi |
mam: added filtering by category
|
Tue, 05 Jan 2016 23:13:13 +0100 |
Goffi |
mam: various improvments:
|
Tue, 05 Jan 2016 22:16:37 +0100 |
Goffi |
privilege: better handling of main message 'to' attribute (i.e. privileged entity's server)
|
Sun, 03 Jan 2016 18:33:23 +0100 |
Goffi |
added getItemsData to get list of ItemData instead of only the list of domish.Element
|
Sun, 03 Jan 2016 18:33:22 +0100 |
Goffi |
pgsql storage: use item_id instead of date to order and select items
|
Sun, 03 Jan 2016 18:33:22 +0100 |
Goffi |
RSM improvments/refactoring:
|
Sun, 03 Jan 2016 18:33:22 +0100 |
Goffi |
new container module, with an ItemData container:
|
Sun, 03 Jan 2016 18:33:22 +0100 |
Goffi |
mam: minor improvments (module import and some checks)
|
Sun, 03 Jan 2016 18:33:22 +0100 |
Goffi |
backend (rsm): replaced setattr use by methods for better performances
|
Sun, 03 Jan 2016 18:33:22 +0100 |
Goffi |
backend (getItems): minor refactoring of extenstion callback loop, as it is used only for RSM and it is not efficient. Need to be moved in an other module
|
Sun, 03 Jan 2016 18:33:20 +0100 |
Goffi |
removed reference to sat.tmp.delay as it is not used anymore
|
Sun, 03 Jan 2016 18:29:40 +0100 |
Goffi |
fixed copyright put in docstring instead of comments
|
Sun, 03 Jan 2016 18:28:34 +0100 |
Goffi |
copyright update
|
Mon, 21 Dec 2015 13:44:21 +0100 |
Goffi |
delegation: fixed bad security check which was rejecting all delegations from external servers:
|
Mon, 21 Dec 2015 13:41:15 +0100 |
Goffi |
Re-implemented feature which allows an entity to retract an item from somebody else node (i.e. a node from which he is neither owner or publisher) if he is the publisher of the item.
|
Fri, 18 Dec 2015 13:01:02 +0100 |
Goffi |
fixed publisher check on item publishing
|
Mon, 07 Dec 2015 19:20:47 +0100 |
Goffi |
tags harmonisation
|
Mon, 07 Dec 2015 19:20:27 +0100 |
Goffi |
Added tag 0.2.0 for changeset 642dffb9d6f1
|
Mon, 07 Dec 2015 19:15:04 +0100 |
Goffi |
fixed version change and CHANGELOG update
0.2.0
|
Thu, 26 Nov 2015 14:59:24 +0100 |
souliane |
log the owner JID when roster request failed
|
Tue, 01 Dec 2015 23:32:32 +0100 |
Goffi |
sat_pubsub_update_0_1.sql now also updates comment nodes
|
Wed, 25 Nov 2015 22:48:59 +0100 |
Goffi |
fixed item_data issues after introduction of ItemData namedtuple
|
Wed, 25 Nov 2015 18:33:38 +0100 |
Goffi |
categories are now stored in a dedicated table if item contain an atom entry:
|
Wed, 25 Nov 2015 16:00:08 +0100 |
Goffi |
cleaner parseItemConfig
|
Wed, 25 Nov 2015 15:58:42 +0100 |
Goffi |
item publisher is enforced
|
Tue, 24 Nov 2015 17:02:35 +0100 |
Goffi |
fixed _getNodeGroups call
|
Thu, 10 Sep 2015 15:03:12 +0200 |
souliane |
fixes behavior when maxItems is 0
|
Thu, 10 Sep 2015 15:02:03 +0200 |
souliane |
backend: fixes RSM for "unrestricted" mode
|
Thu, 20 Aug 2015 14:06:49 +0200 |
Goffi |
fixed bad queries in pubsub.sql file
|
Sun, 16 Aug 2015 01:32:42 +0200 |
Goffi |
PEP implementation, draft (huge patch sorry):
|
Sun, 16 Aug 2015 01:15:13 +0200 |
Goffi |
privilege: added methods to send privileged messages and notifications
|
Sun, 16 Aug 2015 01:13:23 +0200 |
Goffi |
delegation: delegated stanza are tracked
|
Mon, 04 May 2015 18:40:47 +0200 |
Goffi |
delegation: iq forwarded management:
|
Mon, 04 May 2015 18:33:01 +0200 |
Goffi |
backend: fixed a crash when there is no RSM in request
|
Sat, 18 Apr 2015 00:15:01 +0200 |
Goffi |
mod delegation: extensions management (XEP-0128)
|
Fri, 17 Apr 2015 21:09:37 +0200 |
Goffi |
namespace delegation: disco nesting management
|
Thu, 16 Apr 2015 21:06:19 +0200 |
Goffi |
implementation of XEP-0355 (Namespace Delegation) to use SàT Pubsub as PEP service, first draft
|
Mon, 13 Apr 2015 17:29:18 +0200 |
Goffi |
updated old docstring (privilege is actually a new (2015) module not derivated from idavoll)
|
Tue, 31 Mar 2015 17:31:56 +0200 |
Goffi |
replaced former roster dirty hack by a XEP-0356 first draft implementation, only roster get is implemented so far
|
Tue, 31 Mar 2015 17:30:27 +0200 |
Goffi |
CHANGELOG update
|
Mon, 30 Mar 2015 10:45:13 +0200 |
Goffi |
2015 copyright dates update
|
Thu, 15 Jan 2015 22:00:49 +0100 |
souliane |
actually retrieve the MAM messages
|
Wed, 14 Jan 2015 10:43:27 +0100 |
souliane |
fixes the imports from sat.tmp
|
Fri, 09 Jan 2015 10:57:10 +0100 |
souliane |
MAM (XEP-0313) support: first draft
|
Fri, 09 Jan 2015 10:56:38 +0100 |
souliane |
fix RSM support regarding last tmp.wokkel changes
|
Mon, 13 Oct 2014 14:53:42 +0200 |
souliane |
implements RSM (XEP-0059)
|
Mon, 15 Dec 2014 13:14:53 +0100 |
souliane |
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
|
Mon, 13 Oct 2014 15:59:25 +0200 |
souliane |
import changes from idavoll changeset 233 (24be3a11ddbc), by Ralph Meijer and based on a patch by Nuno Santos
|
Thu, 01 Aug 2013 16:22:14 -0700 |
Christopher Zorn |
Fix getPageWithFactory
|
Mon, 07 Oct 2013 12:14:54 +0200 |
Ralph Meijer |
Fix checking for malformed XMPP URI in DeleteResource.
|
Sun, 20 Jan 2013 13:38:41 +0100 |
Ralph Meijer |
Use twisted.web instead of web2, initial tests.
|
Tue, 09 Sep 2014 08:09:26 +0200 |
Goffi |
SàT PubSub 0.1.1 released
|
Wed, 13 Aug 2014 17:30:37 +0200 |
Goffi |
pgsql_backend unicode fix: parseXml was expecting str and getting unicode
0.1.1
|
Wed, 13 Aug 2014 17:01:29 +0200 |
Goffi |
fixed unicode handling with psycopg2
|
Wed, 13 Aug 2014 17:01:08 +0200 |
Goffi |
misc: description in setup.py
|
Thu, 12 Jun 2014 16:48:35 +0200 |
souliane |
fix unicodes issues in twisted plugin
|
Wed, 26 Feb 2014 14:54:03 +0100 |
Goffi |
SàT PubSub 0.1.0 released
|
Sat, 22 Feb 2014 08:05:03 +0100 |
souliane |
fix the backend and storage tests
0.1.0
|
Sat, 22 Feb 2014 08:04:09 +0100 |
souliane |
fix the method signatures of iidavoll.ILeafNode and memory_storage.LeafNode according to pgsql_storage.LeafNode
|
Sat, 22 Feb 2014 06:10:24 +0100 |
souliane |
packaging for release
|
Fri, 21 Feb 2014 16:10:11 +0100 |
souliane |
added the constant FLAG_RETRACT_ALLOW_PUBLISHER to allow a publisher to retract an item he has published in a node of "open" publish model.
|
Fri, 06 Dec 2013 00:37:08 +0100 |
souliane |
fixed node auto-create feature
|
Mon, 17 Jun 2013 01:14:31 +0200 |
Goffi |
fixed notifications (a key was missing in data in some cases)
|
Mon, 06 May 2013 00:26:37 +0200 |
Goffi |
publish model management
|
Mon, 06 May 2013 00:11:44 +0200 |
Goffi |
node "roster" access model management
|
Sun, 28 Apr 2013 19:29:58 +0200 |
Goffi |
removed notifications when no items are allowed for an entity
|
Sun, 28 Apr 2013 19:29:13 +0200 |
Goffi |
fixed access check (getItems/notifications)
|
Wed, 17 Apr 2013 22:28:41 +0200 |
Goffi |
Fixed getItems for roster access items when the subscriber is not owner of the node.
|
Mon, 08 Apr 2013 23:08:45 +0200 |
Goffi |
copyright update
|
Mon, 25 Feb 2013 23:43:19 +0100 |
Goffi |
minimum required wokkel version is now 0.7.1
|
Mon, 25 Feb 2013 23:31:38 +0100 |
Goffi |
update to fix broken RemoteRoster after Wokkel 0.7.1 changes
|
Thu, 01 Nov 2012 19:28:43 +0100 |
Goffi |
full items, with item-configuration, are returned if items are asked by the owner
|
Tue, 23 Oct 2012 00:09:38 +0200 |
Goffi |
owner is now notified of items published
|
Sun, 24 Jun 2012 19:35:49 +0200 |
Goffi |
fine tuning per-item permissions
|
Fri, 08 Jun 2012 18:34:45 +0200 |
Goffi |
fixed getItems when there are not authorized_groups + fixed default value for StoreItem
|
Sun, 03 Jun 2012 15:57:28 +0200 |
Goffi |
item are gotten according to item's access model in getItems
|
Thu, 31 May 2012 00:24:20 +0200 |
Goffi |
fixed getItems select in pgsql_storage
|
Wed, 30 May 2012 22:36:05 +0200 |
Goffi |
default backend value is now pgsql
|
Wed, 30 May 2012 22:33:10 +0200 |
Goffi |
allowed groups from item_config are now stored
|
Wed, 30 May 2012 01:04:15 +0200 |
Goffi |
item access_model (not finished)
|
Sun, 27 May 2012 15:55:25 +0200 |
Goffi |
added experimental roster access_model (use remote_roster)
|
Sun, 27 May 2012 15:36:06 +0200 |
Goffi |
remote roster partial support
|
Sat, 26 May 2012 16:09:27 +0200 |
Goffi |
changed version handler to SàT Pubsub
|
Tue, 22 May 2012 21:21:57 +0200 |
Goffi |
added access_model to config, default to 'open'
|
Sun, 20 May 2012 00:52:13 +0200 |
Goffi |
fixed setup.py and twistd plugin file
|
Sat, 19 May 2012 01:31:07 +0200 |
Goffi |
fixed tests
|
Thu, 17 May 2012 13:15:11 +0200 |
Goffi |
added creator check support
|
Thu, 17 May 2012 13:07:41 +0200 |
Goffi |
renamed service to « Salut à Toi pubsub service »
|
Thu, 17 May 2012 01:59:56 +0200 |
Goffi |
fixed Ralph Meijer copyright years (last commit was in 2011, not in 2009)
|
Thu, 17 May 2012 01:53:12 +0200 |
Goffi |
replaced idavoll imports by sat_pubsub imports
|
Thu, 17 May 2012 01:48:39 +0200 |
Goffi |
sublicensed under AGPL V3
|
Thu, 17 May 2012 12:48:14 +0200 |
Goffi |
renamed idavoll directory to sat_pubsub
|
Thu, 10 May 2012 23:08:08 +0200 |
Goffi |
added .hgignore
|
Thu, 10 May 2012 23:07:42 +0200 |
Goffi |
renamed idavoll.tac to sat_pubsub.tac
|
Thu, 10 May 2012 22:56:39 +0200 |
Goffi |
tac file sample
|
Thu, 10 May 2012 22:41:34 +0200 |
Goffi |
added auto-create support
|
Thu, 17 May 2012 00:31:36 +0200 |
Goffi |
Replaced unmaintained pyPgSQL by Psycopg 2
|
Sun, 13 Feb 2011 21:46:33 +0100 |
Ralph Meijer |
Always use the bare JID for affilitations.
|
Sun, 13 Feb 2011 21:34:18 +0100 |
Ralph Meijer |
Include example in packages.
|
Sun, 13 Feb 2011 21:26:07 +0100 |
Ralph Meijer |
Upon gateway subscription to the root node, don't retrieve items.
|
Sat, 16 Oct 2010 22:53:23 +0200 |
Ralph Meijer |
Oh, it's 2010 already?
|
Sat, 16 Oct 2010 21:03:38 +0200 |
Ralph Meijer |
Reshape Idavoll as a PubSubResource.
|
Sat, 16 Oct 2010 20:56:51 +0200 |
Ralph Meijer |
Make a copy of the config to prevent later modification.
|
Sat, 16 Oct 2010 20:54:52 +0200 |
Ralph Meijer |
Add tests for subscription and unsubscription JID checks in [53d2c0019458].
|
Sat, 16 Oct 2010 20:02:47 +0200 |
Ralph Meijer |
Make the PostgreSQL ConnectionPool only once for all unit tests.
|
Wed, 14 Oct 2009 16:13:24 +0000 |
Ralph Meijer |
Fix wrong use of configuration variables for pgsql db initialization.
|
Mon, 07 Sep 2009 07:01:37 +0000 |
Ralph Meijer |
Release Idavoll 0.9.1.
|
Thu, 03 Sep 2009 16:27:32 +0000 |
Ralph Meijer |
Fix subscription and unsubscription JID checks.
|
Thu, 18 Jun 2009 13:11:59 +0000 |
Ralph Meijer |
Remove debugging prints.
|
Thu, 18 Jun 2009 12:40:58 +0000 |
Ralph Meijer |
Make 204 responses not result in failure.
|
Thu, 18 Jun 2009 10:27:11 +0000 |
Ralph Meijer |
Actually log requests if verbose.
|
Wed, 08 Apr 2009 09:07:28 +0000 |
Ralph Meijer |
These files also belong to the Idavoll 0.9.0 release.
|
Wed, 08 Apr 2009 09:06:39 +0000 |
Ralph Meijer |
Release Idavoll 0.9.0.
|
Fri, 30 Jan 2009 15:27:33 +0000 |
Ralph Meijer |
Fix error reporting for older Python versions.
|
Fri, 30 Jan 2009 14:35:05 +0000 |
Ralph Meijer |
Add support for node deletion with redirect.
|
Tue, 09 Sep 2008 14:54:33 +0000 |
Ralph Meijer |
Commit 0.8.1 release to SVN.
|
Tue, 05 Aug 2008 18:23:45 +0000 |
Ralph Meijer |
Release Idavoll 0.8.0.
|
Mon, 04 Aug 2008 13:47:10 +0000 |
Ralph Meijer |
Implement root collection that includes all leaf nodes.
|
Mon, 04 Aug 2008 07:10:45 +0000 |
Ralph Meijer |
Adjust node configuration to match wokkel API changes.
|
Wed, 16 Jul 2008 06:38:32 +0000 |
Ralph Meijer |
Implement storage facilities for the HTTP gateway.
|
Mon, 14 Jul 2008 09:16:16 +0000 |
Ralph Meijer |
Match wokkel API change for PubSubClient.
|
Wed, 25 Jun 2008 12:27:55 +0000 |
Ralph Meijer |
Use `domish.Element`s to represent items, instead of serialized XML.
|
Tue, 24 Jun 2008 08:42:16 +0000 |
Ralph Meijer |
Make sure that item elements lose their namespace before storage, notification.
|
Tue, 10 Jun 2008 18:40:04 +0000 |
Ralph Meijer |
Epytext fixes.
|
Tue, 10 Jun 2008 11:38:35 +0000 |
Ralph Meijer |
Adjust spacing to match Twisted's.
|