Commit Graph

47 Commits

Author SHA1 Message Date
CORNIERE Rémi
5eff2d7623 Added callback to process errors after connection.
Added tests and refactored a bit.
2019-12-06 15:42:01 +01:00
remicorniere
1822089db6 Tests for Component and code style fixes (#129)
* Tests for Component and code style fixes
2019-11-28 17:15:15 +01:00
remicorniere
7d89353156 Fix SIGSEGV in xmpp_component (#126)
* SIGSEGV in xmpp_component example with Prosody #126
2019-11-22 15:07:40 +01:00
Mickael Remond
6aa1e668ee
Fix issues after refactor
Relates to #126
2019-11-08 12:07:55 +01:00
Wichert Akkerman
eda5c23c54 Add SendIQ to StreamClient and Sender
This makes it possible to use SendIQ from PostConnect and route handlers.
2019-11-04 16:22:05 +01:00
Wichert Akkerman
33446ad0ba Create a new stream after StartTLS 2019-10-28 16:38:10 +01:00
Wichert Akkerman
92329b48e6 Transports need to handle open/close stanzas
XMPP and WebSocket transports require different open and close stanzas. To
handle this the responsibility handling those and creating the XML decoder is
moved to the Transport.
2019-10-28 16:38:10 +01:00
Wichert Akkerman
06a76160c8 Use transport factory function 2019-10-28 16:38:10 +01:00
Wichert Akkerman
7fa4b06705 Move address into transport config
This makes it possible to use a factory function to create a transport of the right type and not having to repeat the address when calling Transport.Connect()
2019-10-28 16:38:10 +01:00
Wichert Akkerman
e97d290e2b Use Transport in Component 2019-10-28 16:38:10 +01:00
Mickael Remond
8794ea6ed8
Check if we have a connection open before trying to close it
Fixes #22
2019-09-06 10:28:49 +02:00
Martin/Geno
7e596fc33c quick fix for component see #47 2019-09-06 09:27:38 +02:00
Martin/Geno
6005a964ba fix stream management for component + add test 2019-09-02 11:50:29 +02:00
Mickael Remond
3de99e0e0e Add initial support for stream management
For now it support enabling SM, replying to ack requests from server,
and trying resuming the session with existing Stream Management state.
2019-08-06 16:02:33 +02:00
Mickael Remond
428787d7ab
Refactor and move parsing and stanza to a separate package 2019-06-26 17:14:52 +02:00
Mickael Remond
445bb8efa3
Fix crash on send when disconnected
Fixes #74
2019-06-26 15:58:42 +02:00
Mickael Remond
d6d371df4d Do not export Router.route as it is not supposed to be called directly 2019-06-24 12:24:45 +02:00
genofire
d9fdff0839 Add constants (enumlike) for stanza types and simplify packet creation (#62)
* Add constants (enumlike) for stanza types
* NewIQ, NewMessage and NewPresence are now initialized with the Attrs struct
* Update examples
* Do not export backoff code. For now, we do not need to expose backoff in the documentation
* Make presence priority an int8
2019-06-22 11:13:33 +02:00
Mickael Remond
4d015e5b29
With go modules, we should be able to remove import comments 2019-06-18 16:28:30 +02:00
Mickael Remond
7aef8357ed Clean-up 2019-06-18 14:36:56 +02:00
Mickael Remond
2c7b03fcea Clean-up 2019-06-18 14:36:56 +02:00
Mickael Remond
61cdac89e0 Add support for generating delegation forwarded iq response 2019-06-18 14:36:56 +02:00
Mickael Remond
c6f0d03f60 Add support for delegation namespace packet parsing
Refactor and clean up pubsub & pep files
2019-06-18 14:36:56 +02:00
Mickael Remond
9db33d5792 Introduce Sender interface to abstract client sending in router handlers 2019-06-18 14:36:56 +02:00
Mickael Remond
b05e68c844 Add router to make it easier to set up routing info
- Using the router, the dispatch is not done anymore by receiving from
  receive channel, but by registering callback functions in routers,
  with matchers.
- Make IQPayload a real interface to make it easier to match namespaces.
- The StreamManager Run command is now blocking, waiting for StreamManager
  to terminate.
2019-06-18 14:36:56 +02:00
Mickael Remond
44568fcf2b
Remove dead code
For now the component is not able to handle the discovery requests on its own.
2019-06-10 15:06:41 +02:00
Mickael Remond
411619c2ef
Make channel type more specific (Packet instead of interface{})
Thanks to Genofire for spotting this
2019-06-10 10:58:41 +02:00
Mickael Remond
bc2fad6693 Let component handle discovery for now 2019-06-09 13:08:25 +02:00
Mickael Remond
909cf753c9 Fix missing default channel creation 2019-06-09 13:08:25 +02:00
Mickael Remond
83ae778d33 Return errors on SendRaw 2019-06-09 13:08:25 +02:00
Mickael Remond
6fc12e9779 Fix import and test 2019-06-09 13:08:25 +02:00
Mickael Remond
2d95ca9384 Simplify component writing and make it similar to client 2019-06-09 13:08:25 +02:00
Mickael Remond
54dfa60f12 Clean-up 2019-06-09 13:08:25 +02:00
Martin/Geno
757e339946
[BUGFIX] no pointer in type case in component 2019-05-31 13:46:57 +02:00
Mickael Remond
5eae7f4ef7
Move project to gosrc.io/xmpp
The URL will be more permanent as this is a place we dedicate as short URL for our go projects.
2018-12-26 18:50:01 +01:00
Mickael Remond
07b0d2d14d
Cleanup and add test for IOT control set parsing 2018-02-13 23:04:13 +01:00
Mickael Remond
ad6e09a0f6
Implements send / send raw 2018-01-26 09:55:39 +01:00
Mickael Remond
bdfd035bf3
Handshake minor refactor 2018-01-25 23:16:55 +01:00
Mickael Remond
fb8d050a00
IQ error management 2018-01-20 18:56:07 +01:00
Mickael Remond
993ca630f7
Test and code refactor 2018-01-17 18:47:34 +01:00
Mickael Remond
ff2da776d3
Basic test component (disco Info) 2018-01-14 16:54:12 +01:00
Mickael Remond
10219ec1e6
Refactor parsing / improve typing 2018-01-13 18:50:17 +01:00
Mickael Remond
24ac2c0526
Keeps component connection open 2018-01-12 19:08:47 +01:00
Mickael Remond
b21fee420f
Code clean-up 2018-01-12 18:14:41 +01:00
Mickael Remond
90865aeb8e
Adhoc test component can successfully connect to ejabberd 2018-01-12 18:01:27 +01:00
Mickael Remond
b31c29a03d
Implements dummy auth + stream error 2018-01-11 23:00:59 +01:00
Mickael Remond
ec68a04554
Component skeleton 2018-01-11 22:15:54 +01:00