summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2022-12-01Automate Makefile and test executionxengineering
LimoX aswell as the tests should be build automatically without altering the Makefile.
2022-12-01Update documentation for new build processxengineering
2022-11-30Add first unit testxengineering
This should kick off the infrastructure for unit tests. This can still be improved but getting started is important to make it easier to add unit tests and thus improving the quality.
2022-11-30Switch from meson to Makefilexengineering
A Makefile is enough for this project because it has a very simpel structure. The additional complexity of meson is not necessary and furthermore I am more used to Makefiles.
2022-11-27Implement XMPP connect on SDL_MOUSEBUTTONDOWNxengineering
This removes xmpp_connect() from the main loop and delegates the calling to the GUI. This should be the case in the future.
2022-11-27Mark SDL2 window as resizablexengineering
This should be the long-term default and should be addressed in an early phase of development to implement the GUI with a resizable window in mind.
2022-11-27Implement dummy DNS resolutionxengineering
This is not by far complete DNS handling but demonstrates that name resolution works by printing the IP address type (IPv4 or IPv6) for each found IP address.
2022-11-27Switch completely to SDL2 versionxengineering
The now legacy version of LimoX with GTK4 and libstrophe is now not part of the main branch anymore. There might be a legacy branch keeping this version at the time of reading. This cut of implemented functionality is motivated by these reasons: - Implementing XMPP is fun, educative and gives full control. - Low level graphics with SDL2 is portable, fast, educative an mature. - I do not have to use GLib and a crazy event loop anymore (run and hide)
2022-11-25Add Beej's Guide to Network Programming as refxengineering
This is a good resource for network programming in C on Linux. Helps a lot for further development.
2022-11-20Extract domain from JID with parser functionxengineering
It is mandatory to have an IP address to dial a TCP connection. FOr this purpose the JID which is given by the user has to be converted into a FQDN and then translated to an IP via DNS. The function added with this commit implements this first part. The extraction of the domain (more precisely the FQDN) from the JID.
2022-11-20Get env based credential parsing to xmpp.cxengineering
2022-11-20Introduce dummy as second XMPP implementationxengineering
It is currently evaluated if it is worth a trial to drop libstrophe as a dependency and use a raw TCP connection and a XML library like expat to implement the XMPP part. This would have the following advantages: - fewer dependencies - learning more about XMPP itself and less about libstrophe - slower, but maybe easier implementation (XMPP doc is far more readable / extensive) Because of these reasons the `limox_sdl2` version was switched to a dummy XMPP implementation `xmpp.c` which acts now as a test field for XMPP hacking.
2022-11-20Remove unnecessary sdl.cxengineering
This was for an old SDL (version 1) executable. This one is not needed anymore because the SDL2 version now runs on X11 and Wayland.
2022-11-20Mention SDL2 rewrite in READMExengineering
2022-11-20Update meson callxengineering
Just `meson build` is deprecated and replaced by `meson setup build`.
2022-11-20Add missing SDL2 dependencyxengineering
2022-10-08Update roadmap in READMExengineering
2022-10-08Remove SDL version (now using SDL2 only)xengineering
SDL2 version now runs also on Wayland. No need for SDL to exist.
2022-10-08Avoid memory access errors on cleanupxengineering
2022-10-08Fix SDL2 window creation on Waylandxengineering
See this post: https://github.com/libsdl-org/SDL/issues/6074 It seems like SDL2 does not show an empty window on Wayland systems if there is nothing drawn on this. Thus this commit adds an empty white pixel buffer.
2022-10-08Output used SDL2 video driverxengineering
2022-10-08Fix syntax error in READMExengineering
2022-10-07Add SDL2 version (X11 only)xengineering
There seems to be a bug in SDL2. Window creation is successful under Wayland (window pointer not NULL) but there is no window visible. Tested with Sway and Weston. The same implementation works fine under Cinnamon with X11.
2022-10-07Implement first GUI demonstration with SDLxengineering