/dev/LUGGuten Morgen Pinguine! Eine kleine Info / Status update \o/<br><br>Ein erster Meilenstein ist erreicht! Ich habe heute einen ersten tag (0.0.1) für libcxmpp erstellt. Es ist nicht viel, aber ein Anfang.<br><br><a href="https://devlug.de/social?t=libcxmpp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#libcxmpp</a> besteht aus einer kleinen Menge von <a href="https://devlug.de/social?t=gobject" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#GObject</a> types. Diese sollen eine einfach zu verwendete Schnittstelle für Funktionen rundum <a href="https://devlug.de/social?t=xmpp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#XMPP</a> bereitstellen. Aktuell ist es möglich, dass sich ein Client mit einem XMPP Server verbindet, eine presence schickt. Den roster abfragt und einfach Nachrichten (type chat) senden und empfangen kann.<br><br>Hierfür habe ich eine Demo Implementierung im Projekt angelegt. Dies sieht dann wie folgt aus.<br><br><p>Loading Client Manager...<br>XMPP> connect<br>XMPP Connect - JID> demo@domain.tld<br>XMPP Connect - PWD> 123456<br>XMPP> Client has been connected with XMPP Server<br><br>XMPP> presence<br>XMPP> message<br>XMPP Message - JID> stefan@domain.tld<br>XMPP Message - Text> Hallo! Das ist ein Test :)<br>XMPP> Message from stefan@domain.tld/Coffein: Hallo. Die Nachricht ist angekommen.<br></p>Anwendungsdesign muss ich mir noch mal genauer überlegen. Der ersten Entwurf beinhaltet einen CM (Connection Manager). Der Connection Manager soll alle Accounts und Connections verwalten. Die Connection ist eine funktionale Sicht auf die XMPP Verbindung, währen der XMPP Wrapper die technische Implementierung via <a href="https://devlug.de/social?t=libstrophe" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#libstrophe</a> bereitstellt.<br><br>Der Client kann sich mit Signalen verbinden - <a href="https://devlug.de/social?t=signal" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#signal</a> :-x<br><br><p>g_signal_connect_object(connection, "connected",<br> G_CALLBACK(cxmpp_connected), connection,<br> G_CONNECT_SWAPPED);<br><br>g_signal_connect_object(connection, "new-contact",<br> G_CALLBACK(new_contact), connection,<br> G_CONNECT_SWAPPED);<br><br>g_signal_connect_object(connection, "new-chat-message",<br> G_CALLBACK(new_chat_message), connection,<br> G_CONNECT_SWAPPED);<br></p>Ausblick für den nächsten Meilenstein<br><br>Als Backend solle eine <a href="https://devlug.de/social?t=sqlite" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#sqlite</a> Datenbank verwendet werden. Verschlüsselung im ersten Schritt mit <a href="https://devlug.de/social?t=openpgp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#OpenPGP</a> <a href="https://devlug.de/social?t=ox" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#OX</a> via <a href="https://devlug.de/social?t=gnupg" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#GnuPG</a>. Ziel ist es, dass ich im ersten Schritt die Implementierung von <a href="https://devlug.de/social?t=xmppc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#xmppc</a> (ein XMPP command line client) auf <a href="https://devlug.de/social?t=libcxmpp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#libcxmpp</a> umstellen kann.<br><br>Code ist auf <a href="https://devlug.de/social?t=codeberg" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#Codeberg</a> <a href="https://codeberg.org/devLUG/libcxmpp" rel="nofollow noopener noreferrer" target="_blank">https://codeberg.org/devLUG/libcxmpp</a><br><br>Happy chatting!<br><br><a href="https://devlug.de/social?t=messenger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#Messenger</a> <a href="https://devlug.de/social?t=debian" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#Debian</a> <a href="https://devlug.de/social?t=gnu" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#GNU</a> <a href="https://devlug.de/social?t=linux" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#Linux</a> <a href="https://devlug.de/social?t=jabber" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#Jabber</a><br>