Tom Nichols
0a23f84ec3
fix for statemachine where operations would unintentionally block if the lock was acquired in a long-running transition
2010-07-01 15:10:22 -04:00
Tom Nichols
8bdfa77024
Merge branch 'hacks' of git@github.com:tomstrummer/SleekXMPP into hacks
2010-06-28 11:10:34 -04:00
Tom Nichols
15ac3e9fba
race condition where we were transitioning to 'disconnected' and immediately reconnecting in another thread before the socket.close call occurred. Now we're locking the state machine until the disconnect routine completes.
2010-06-28 11:06:26 -04:00
Tom Nichols
e8d37b409c
make the scheduler a daemon thread to prevent hanging when the main thread exits.
2010-06-28 11:04:18 -04:00
Tom Nichols
898f96f265
print the traceback if we can't load a plugin for some reason
2010-06-28 11:03:46 -04:00
Tom Nichols
4fccd77685
Merge branch 'hacks' of git@github.com:tomstrummer/SleekXMPP into hacks
2010-06-08 10:40:15 -04:00
Thom Nichols
bf2bf29fc6
fixed mis-named variable, doc typo and using conformant Condition methods.
2010-06-08 09:02:51 -04:00
Thom Nichols
34dc236126
added documentation for transition_ctx and removed some superfluous comment lines
2010-06-07 14:41:42 -04:00
Thom Nichols
9464736551
added __str__
2010-06-07 13:58:15 -04:00
Thom Nichols
47f1fb1690
context manager now returns a boolean 'result' as the context variable to indicate whether the transition timed out or if you are actually locked when entering the context body
2010-06-07 13:43:37 -04:00
Thom Nichols
66cf0c2021
context manager is working but there's a fatal flaw: inside the body of the 'with' statement, there's no way to tell whether or not the transition occurred or timed out.
2010-06-07 13:16:02 -04:00
Thom Nichols
e7c37c4ec5
connect uses the new function-on-state-transition so when the connect method returns you are guaranteed to be either in the 'connected' or 'disconnected' state. Could remove the 'connecting' state except uses it.
2010-06-04 17:00:51 -04:00
Thom Nichols
919c8c5633
tweaked connectTCP call slightly to reduce possibility of 'connecting' state limbo
2010-06-03 15:21:26 -04:00
Thom Nichols
f54501a346
added function execution on transition, and more unit tests.
2010-06-03 14:12:06 -04:00
Thom Nichols
d20cd6b3e6
added function execution on transition, and more unit tests.
2010-06-03 13:51:11 -04:00
Thom Nichols
da6e1e47dc
whups, somehow I lost the 'connecting' lock in connect()
2010-06-03 08:09:09 -04:00
Thom Nichols
2f0f18a8c6
added function to retrieve the current state
2010-06-03 08:07:56 -04:00
Thom Nichols
1c32668e18
fixed quiesce algorithm; state transition if connect fails; note about use_tls instance variable.
2010-06-03 07:47:27 -04:00
Tom Nichols
77bff9cce7
Merge branch 'hacks' of git@github.com:tomstrummer/SleekXMPP into hacks
2010-06-02 15:45:51 -04:00
Thom Nichols
1f3cfb98f1
Merge branch 'master' into hacks
2010-06-02 14:18:46 -04:00
Thom Nichols
4295a66c70
reconnection quiesce logic
2010-06-02 14:18:09 -04:00
Thom Nichols
8227affd7f
removed unnecessary flags and arguments from disconnect method
2010-06-02 14:17:36 -04:00
Thom Nichols
3a2f989c5e
Merge branch 'master' into hacks
2010-06-02 14:15:07 -04:00
Nathan Fritz
85a2715c7d
hack fix for session before bind
2010-06-03 01:30:24 +08:00
Nathan Fritz
b03e6168a8
if binding and session are advertised in the same go, do session first
2010-06-03 01:30:23 +08:00
Brian Beggs
2a43f59a58
added try/catch block to plugin loading
2010-06-03 01:29:49 +08:00
Brian Beggs
184f7cb8a4
moddified plugin loading so plugins located outside of the plugins directory in sleek may be loaded. Added optional argument pluginModule that is a string that represents the module the desired plugin should be loaded from.
...
An exception on plugin loading now also will not cause the program to exit. The exception is caught and loading of other plugins contains.
2010-06-03 01:29:49 +08:00
Brian Beggs
e1aa4d0b93
Added .pydevproject to the .gitignore
2010-06-03 01:29:48 +08:00
Thom Nichols
7930ed22f2
overhauled state machine. Now allows for atomic transitions.
...
Next step: atomic function calls (and maybe 'handlers') on state transition.
2010-06-02 12:39:54 -04:00
Thom Nichols
060b4c3938
Merge branch 'hacks' of github.com:tomstrummer/SleekXMPP
2010-06-01 22:55:01 -04:00
Thom Nichols
49f5767aea
merged changes from fritzy
2010-06-01 22:54:30 -04:00
Thom Nichols
4eb210bff5
fixed some major reconnection errors
2010-06-01 22:51:49 -04:00
Thom Nichols
1780ca900a
merged a lot of fritzy's changes
2010-06-01 22:40:37 -04:00
Nathan Fritz
e6c2fde283
included jobs plugin
2010-06-01 22:07:53 +08:00
Nathan Fritz
ecf902bf16
Scheduler waits too longer, and pubsubstate registration was backwards
2010-06-01 22:07:53 +08:00
Lance stout
d76c0931ef
Added missing 'internal-server-error' condition to error stanza interface.
2010-06-01 22:07:53 +08:00
Lance stout
e18793152f
Touched up the style of creating an Iq stanza.
2010-06-01 22:07:53 +08:00
Lance stout
e388680269
Added 'resource-constraint' to the list of error conditions.
2010-06-01 22:07:53 +08:00
Lance Stout
bee42e4a2f
Added unit tests for the new XEP-0030 stanza objects. All pass.
...
(cherry picked from commit e1b814f27bf160f20bb30c315ca30769d217482d)
2010-06-01 22:07:53 +08:00
Lance Stout
8e3227ae5e
Updated the XEP-0030 plugin to work with stanza objects instead of manipulating XML directly.
...
Four new events have been added:
disco_info - A disco#info result has been received
disco_info_request - A disco#info request has been received
disco_items - A disco#items result has been received
disco_items_request - A disco#items request has been received
For disco_info_request and disco_items_request two default handlers are registered. These handlers will only run if they are the only handler for these two events so that multiple responses are not returned and cause errors.
In your own handlers for these two events, you can call the default handlers to preserve the static node behaviour as so:
self.plugin['xep_0030'].handle_disco_info(iq, True)
The forwarded=True will disable the check for other registered handlers.
Agents can now dynamically respond to disco requests by using these events.
(cherry picked from commit 0fc3381492a8bd75e6a9858539a972334881d8ff)
2010-06-01 22:07:53 +08:00
Nathan Fritz
257bcadd96
control-c fixes
2010-06-01 22:07:52 +08:00
Nathan Fritz
3e5cdc8664
added pubsubjobs test
2010-06-01 22:07:52 +08:00
Nathan Fritz
194e6bcb51
added pubsub state stanzas and scheduled events
2010-06-01 22:07:52 +08:00
Nathan Fritz
2e7024419a
adding scheduler
2010-06-01 22:07:52 +08:00
Nathan Fritz
5235313aab
added muc room to readme
2010-06-01 22:07:51 +08:00
Nathan Fritz
a2719b0bb0
plugins now are checked for post_init having ran when process() is called
2010-06-01 22:07:51 +08:00
Hernan E Grecco
71ad715caa
Changed example.py to register first Xep_0030.
...
This a simple fix to prevent getting a key error as many plugins add
features to Xep_0030. A better fix would be to call pos_init after all
plugins are loaded. An even better fix would be to define dependencies
for each plugin and registering on demand.
2010-06-01 22:07:51 +08:00
Hernan E Grecco
d452085049
Fixed error registering a plugin. To add a feature to another plugin, it should look into xmpp.plugin dict
2010-06-01 22:07:51 +08:00
Nathan Fritz
8b3b8aca9e
updated README, index fix for component
2010-06-01 22:07:51 +08:00
Lance Stout
e00dea7c0c
Added a flag to registerPlugin to control calling the plugin's post_init method.
2010-06-01 22:07:51 +08:00