summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-16Switch completely to Go and Gio UIxengineering
The properties of the Go language, standard library and the Gio UI library are well suited for this project. The existing experimental Go code exceeds the GTK4 and SDL attempts by far with respect to quality and code simplicity.
2023-04-16Implement TCP connect / disconnectxengineering
2023-04-16Implement fallback DNS resolutionxengineering
This uses A / AAAA records while the preferred method in XMPP are SRV records.
2023-04-16Implement domain part extraction in Goxengineering
This is needed to continue with DNS resolution.
2023-04-15Apply go fmtxengineering
2023-04-15Implement basic connection statemachinexengineering
This prepares a real TCP / XMPP connection.
2023-04-11Align editors in the middlexengineering
2023-04-11Implement dummy functionality for first viewxengineering
2023-04-11Mask passwordxengineering
2023-04-11Fix variable namexengineering
2023-04-11Add editor widgets for JID and passwordxengineering
These are needed to provide credentials.
2023-04-11Turn label to headline and add buttonxengineering
These elements should be part of the initial view.
2023-04-11Further refactoringxengineering
2023-04-10go: Refactor with Limox structxengineering
The central Limox struct allows to structure the whole application in one struct and pass it around to different functions.
2023-02-21Adjust window and label sizexengineering
2023-02-20Set default dimensions for Gio versionxengineering
2023-02-20Adapt Gio example to LimoXxengineering
2023-02-20Add Golang-based Gio example codexengineering
Golang and Gio should be considered as an alternative to the current C- and SDL-based setup.
2023-01-23gui.c: Create separate create_window()legacy/sdl2xengineering
This splits the GUI code into smaller functions.
2023-01-23Remove typedefsxengineering
They just hide complexity.
2023-01-23gui.c: Remove inline commentsxengineering
Not that helpful. Should be replaced by easy to read code and well written function docstrings.
2023-01-23Implement GUI init and deinit functionsxengineering
2023-01-23Bundle GUI variables in context structxengineering
This allows to pass all variables easily between small functions.
2023-01-23Add debug symbols to default buildxengineering
2023-01-22Add new icon to READMExengineering
2023-01-22Fix SVG icon for systems without matching fontxengineering
The icon looked differently on systems without the correct font for the L letter. Converting the L into a path with Inkscape solved that issue.
2023-01-22Add initial iconxengineering
This will be needed for a GUI.
2023-01-09Fix reconnectionxengineering
This was not possible because gui.c did not reset the socket filedescriptor to the default value.
2023-01-09Make return statement more consistentxengineering
2023-01-09Prevent NULL pointer crashxengineering
It used to be assumed that the user sets the LIMOX_USER and LIMOX_PWD shell variables but there was no error checking if this was not the case. This commit adds the check preventing a crash of the whole program. Furthermore an error message is printed to the terminal.
2023-01-08Remove xmpp_ prefix from private functionxengineering
This is just internally used and thus has no benefit.
2023-01-08Rename to resolve_dns()xengineering
This explains better what this function is about.
2023-01-08Improve get_domainpart() docsxengineering
2023-01-08Adapt comment indent to Linux kernel codexengineering
2023-01-08Remove commented codexengineering
2023-01-08Update code style for mainxengineering
2023-01-08Add PDF generation of documentationxengineering
Using Markdown features (as URLs) is even more useful if you actually render this somewhere. PDF is now done and HTML might follow.
2023-01-08Split README and ROADMAPxengineering
Roadmap content should not spam the README
2023-01-08Implement close on clickxengineering
This adds the option to close the XMPP connection.
2023-01-08Connect on mouse clickxengineering
With this commit the client starts the connection to the server as soon as the user clicks into the application window. Disconnect or reading / writing to the stream is not implemented.
2022-12-04Implement printing of server responsexengineering
Sadly there is no way to stop LimoX after connection. This has to be fixed by a commit implementing a better control flow between GUI and network part of the program.
2022-12-04Implement client stream header sendingxengineering
This starts the XML stream via the XMPP connection.
2022-12-04Implement TCP connection to XMPP serverxengineering
This commit adds the functionality to actually connect to port 5222 (xmpp-client) of a XMPP server! This was tested using prosody and verified via its systemd journal log entries.
2022-12-04Implement socket creationxengineering
The socket is needed for the TCP connection to the XMPP server.
2022-12-04Implement DNS with a temporary solutionxengineering
The DNS resolution implemented with this commit uses getaddrinfo() from the standard library to get an IPv4 address for the domainpart of the user-given Jabber ID (JID). This is by far not the process described in [RFC 6120][1]. This XMPP core standard prefers SRV entry lookups. Taking A records like in this implementation is referenced as "fallback process". Furthermore this implementation just takes the first A record it finds which could also be improved. It could for example be that IPv4 is blocked in the referenced network and a AAAA IPv6 record is given and functional. In this case this implementation would needlessly fail to connect. [1]: https://www.rfc-editor.org/rfc/rfc6120
2022-12-02Add GPL3 license header to relevant source filesxengineering
This should make the license more visible and prevent wrong usage.
2022-12-02Add reference to Gigi's SDL2 tutorialxengineering
2022-12-02Add reference to SDL2 documentationxengineering
2022-12-01Implement colored output for testxengineering
2022-12-01Let Makefile fail if a test failsxengineering
This should make clear that something went wrong if a test failed.