CORNIERE Rémi
390336b894
Added Roster IQs
...
Added an overly primitive "disconnect" for the client to use in the chat client example
5 years ago
CORNIERE Rémi
f0179ad90e
Logging.
...
Added menus.
Can now send raw stanzas.
5 years ago
CORNIERE Rémi
1ba2add651
Example client with TUI
5 years ago
rcorniere
3c9b0db5b8
Fixed decoder usage.
...
Decoders have internal buffering, and creating many on a single TCP connection can cause issues in parsing exchanged XML documents.
5 years ago
rcorniere
fd48f52f3d
Using precisely sized buffers for tcp tests
5 years ago
rcorniere
1f5591f33a
Merge branch 'Error_Handling' of github.com:remicorniere/go-xmpp into Error_Handling
...
# Conflicts:
# client.go
# client_test.go
# tcp_server_mock.go
5 years ago
CORNIERE Rémi
6d8e9d325a
Try removing decoder from IQ tests and changing writing method
5 years ago
CORNIERE Rémi
e675e65a59
Added callback to process errors after connection.
...
Added tests and refactored a bit.
5 years ago
remicorniere
b74c0f0374
Merge pull request #136 from Crypho/eventmanager-status
...
Fix updating of EventManager.CurrentState
5 years ago
remicorniere
4f4e9f454f
Merge pull request #134 from Crypho/configurable-keepalive
...
Make keepalive interval configurable
5 years ago
Wichert Akkerman
f41177775a
Make keepalive interval configurable
...
This fixes #133
5 years ago
Wichert Akkerman
f8c992a385
Fix updating of EventManager.CurrentState
...
The EventManager methods did not use a pointer as receiver, which
caused updated of CurrentState to be lost.
5 years ago
CORNIERE Rémi
5eff2d7623
Added callback to process errors after connection.
...
Added tests and refactored a bit.
5 years ago
rcorniere
6a3833b27d
Removed last bits of codecov
5 years ago
remicorniere
51db430cff
Merge pull request #130 from remicorniere/master
...
Removed codeship and codecov. We now use github actions and coveralls.
5 years ago
rcorniere
bfe2b7a30f
Removed codeship and codecov. We now use github actions and coveralls.
5 years ago
remicorniere
a95b53d9ad
Update with coveralls badge. Removed codecov badge
5 years ago
remicorniere
10078e2a1b
Merge pull request #124 from Crypho/github-ci
...
Setup GitHub actions to run tests
5 years ago
remicorniere
80ba790555
Added coverage
...
Should detect race conditions, use the same covermove as the current mode in test.sh, and update code coverage on the repo.
See : https://github.com/marketplace/actions/coveralls-github-action
5 years ago
remicorniere
c60edf4771
Added "-race" flag to tests run command
...
Kind of testing edits on someone else's PR too
5 years ago
Jerome Sautret
3b84cb796e
Add 0.3.0 changelog
5 years ago
remicorniere
1822089db6
Tests for Component and code style fixes ( #129 )
...
* Tests for Component and code style fixes
5 years ago
Wichert Akkerman
6f35ae4103
Fix triggers
5 years ago
remicorniere
7d89353156
Fix SIGSEGV in xmpp_component ( #126 )
...
* SIGSEGV in xmpp_component example with Prosody #126
5 years ago
Mickael Remond
6aa1e668ee
Fix issues after refactor
...
Relates to #126
5 years ago
Wichert Akkerman
1539e4f193
Setup GitHub actions to run tests
5 years ago
Mickael Remond
47976624c9
Preparing v0.2.0 Changelog before version release
5 years ago
Mickael Remond
4efde692a2
Add placeholder in README for routing packets and get IQ responses
5 years ago
Mickael Remond
08878ed4a2
Update go.sum file
5 years ago
Mickael Remond
ce05c3226c
Fix failing tests
5 years ago
Mickael Remond
3e94880916
Merge branch 'master' of https://github.com/FluuxIO/go-xmpp
5 years ago
Wichert Akkerman
eda5c23c54
Add SendIQ to StreamClient and Sender
...
This makes it possible to use SendIQ from PostConnect and route handlers.
5 years ago
Wichert Akkerman
a0e74051fd
Use a channel based API for SendIQ
...
This makes sending IQ more idiomatic Go, but more importantly it solves
a problem with contexts that were not being cancelled correctly with
the previous API.
As a side-effect of this change `Route.route` must now be invoked in a
go-routine to prevent deadlocks. This also allows for stanzas to be processed
in parallel, which can result in a nice performance win.
5 years ago
Wichert Akkerman
83bc8581fd
Cleanup the IQ result route API
...
Simplify the API in several ways:
- provide the context to the IQ result handler, making it possible to pass in
extra context and handle timeouts within the handler.
- pass the stanza in as an IQ type, removing the need to always type-cast it
in the handler
- remove Router.HandleIqResult and Router.HandleFuncIqResult. Since the router
is private to Client nobody would ever use these, and they do not really make
things simpler anyway.
5 years ago
Wichert Akkerman
8088e3fa7e
Add Client.SendIQ method
5 years ago
Wichert Akkerman
070934743f
Add tests for iq result routes
5 years ago
Wichert Akkerman
6a25856e85
We need to lock isResultRoutes
...
The map is updated from multiple goroutines, so it needs to be locked.
5 years ago
Wichert Akkerman
8e1dac6ffa
Add IQ result routes to the Router
...
These are used to quickly match IQ result stanzas and invoke a handler
for them. IQ result routes take precendence of normal routes.
5 years ago
Wichert Akkerman
21f6a549db
Always add an id to IQ queries
5 years ago
Mickael Remond
1d7db9ceee
Comments clean-up
5 years ago
Wichert Akkerman
0227596f90
Increase size of XML decoder internal buffers
...
Since a transport (and a streamlogger) does not implement io.ByteReader
xml.Decoder wraps it using `bufio.NewReader(transport)` so it can easily read
bytes one at a time. This has the unfortuante effect of resulting in a panic if
we try to parse a stanza that is larger than the default buffer size of 4096
bytes.
To fix this we wrap the transport using `bufio.NewReaderSize()` with a much
larger buffer size.
5 years ago
Mickael Remond
ebb6e845bf
Update requirements to go1.13 as required by new websockets dependencies
5 years ago
Mickael Remond
a16483397d
Update test platform to go1.13
5 years ago
Mickael Remond
ef2c0b465e
Update examples
5 years ago
Wichert Akkerman
2f8ec7b36f
Only try startTls if the connection is not secure
5 years ago
Wichert Akkerman
6da1962962
Correctly open new streams after StartTLS and auth
5 years ago
Wichert Akkerman
33446ad0ba
Create a new stream after StartTLS
5 years ago
Wichert Akkerman
390f9b065e
Replace readWriter and decoder after StartTLS
5 years ago
Wichert Akkerman
60e2cdd088
Close the transport if NewSession fails
...
The makes sure we always send the `</stream:stream>` or `<close/>` correctly.
5 years ago
Wichert Akkerman
a6709a1f71
Do not try to create a stream logger before we have a net.Conn
5 years ago