Age | Commit message (Collapse) | Author |
|
The prefix is re-implemented with this commit to distinguish between RX
and TX XML. Furthermore the logging is now based on the log module to
have the same (e.g. timestamp) prefix as other log messages.
|
|
This commit uses an io.TeeReader to achieve the same goal for RX like in
the previous commit for TX.
|
|
Using an io.MultiWriter it is trivially possible to write encoded tokens
to the TCP channel aswell as to stdout.
The disadvantage is that it is not possible to inject prefix data like
the so far used `C: ` only for stdout and not for the TCP channel. Such
a prefix is not wanted in the TCP channel and thus not wanted for both.
The solution to get a nice log is to implement a transparent logging
middleware which gets the raw TX stream and inserts a prefix at each
line before sending to stdout.
|
|
The ROADMAP should cover user-visible changes and not internal ones.
|
|
It is not required for a minimal single user chat demo if the user
enters the recipient address manually.
Leaving that out removes a feature from the list of tasks for a minimal
viable product and thus makes the path to the next refactoring / quality
gate shorter.
|
|
This broadcasts that the LimoX client is ready for communication.
|
|
|
|
This completes the connection process.
|
|
This adds some really basic resource binding implementation which will
work for now but has to be improved for a first release.
|
|
|
|
|
|
This handler is just a placeholder for a more extensive IQ handling but
already writes to the log so that it is obvious what is happening.
|
|
This is the first step of resource binding which is a mandatory part of
establishing an XMPP connection.
|
|
This allows to trigger resource binding if the stream supports it.
|
|
The added code provides a structured way to handle features offered by
the server.
|
|
|
|
Writing to the log is still better than doing nothing ...
|
|
The new structure allows to check for different stream features and act
according to them or - if nothing matches - do nothing apart from an
error message to the log.
|
|
If SASL authentication is successful a new stream has to be opened by
the client. This is implemented with this commit.
|
|
|
|
|
|
It is nearly useless to route a XML element to an appropriate handler
function if the latter has no idea how to send responses to the server
or the GUI. Passing a pointer to the session solves this issue.
|
|
|
|
|
|
This is needed to respond with a SASL auth attempt.
|
|
This is the first step to handle stream features correctly with the new
routing infrastructure.
|
|
This adds an XML element router and a corresponding unit test. The
element router will be used to register XML element handler with a
single line.
|
|
|
|
This implements a routing function for XML elements received by an XML
stream.
|
|
This adds xengineering.eu/limox/xmpp/elementBuffer which is a buffer
for a collection of XML tokens which are further processed after a full
XML element is collected.
|
|
The behaviour is ok for now but should be improved in the future to make
it more robust.
|
|
This makes it easier to add further test data in case there are further
corner cases which should be tested in the future.
|
|
|
|
This helps to debug tests with t.Log() and t.Logf().
|
|
This tests if the indent level is correctly detected. This basic test
can be extended to support invalid XML elements which should be refused
to add to the element buffer.
|
|
This is needed to buffer XML elements of a stream until they are
complete and can be given to an element handler.
|
|
This adds the source file xmpp/stream_pair.go with the central function
runStreamPair(). This function is called once by a session and could
call itself. That way an initial stream and nested streams are
implemented and closed via return and defer.
|
|
|
|
This should ensure that the incoming and outgoing XML streams are in
sync.
|
|
The new source file should contain the complete stream logic.
|
|
This prepares the switch to stream pairs.
|
|
|
|
This reduces the risk of using those channels wrong.
|
|
This explains implicitly why the value is returned.
|
|
|
|
|
|
This is part of the refactoring. Details of the old implementation
should be looked up by older commits.
|
|
This allows to add svg image sources by simply adding their name to the
Makefile.
|
|
|
|
This should be filled with content in the future. Furthermore build
system integration will follow.
|