summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-29Set CURLOPT_INFILESIZE on HTTP file uploadHEADmasterdefanor
2023-12-27Fix builds without Jingle callsdefanor
2023-12-07Provide a callback after socket creation, use _Booldefanor
The callback is provided to set socket options, instead of individual options such as path_mtu_discovery (which is now removed). Noticed that the Rust rexmpp structure's C representation does not match that of C, since Rust's "bool" maps to C99's "_Bool", while I thought that it maps to "int" (c_int). Adjusted C structures to use "bool" from stdbool.h as well, since C99 (GNU99) is used already.
2023-11-17Implement MUC self-ping (XEP-0410)defanor
2023-11-12Skip full capabilities string compositiondefanor
A hash is composed more directly now: parts of the string are fed into a hash function instead of being concatenated first.
2023-11-11Check realloc(3) return valuesdefanor
2023-11-02Use Rust enums for C tagged unionsdefanor
Used to manually implement tagged unions in Rust as well, but the C representation of Rust enums with fields is supposed to match those.
2023-10-22Fix a couple of bugs, refactor a littledefanor
Found a couple of issues with -fanalyzer, though CWE-401 (analyzer-malloc-leak) appears to produce false positives still.
2023-10-14Mark `xmpp' in xmpp.el for autoloaddefanor
2023-10-07Use file descriptors instead of streams, update Rust sourcesdefanor
File descriptors tend to be easier to handle with FFI.
2023-09-29Add more checks, tests, and documentationdefanor
2023-09-28Fix roster handlingdefanor
It was broken by the XML handling changes.
2023-09-28Support Nettle and OpenSSL for hashing, in addition to Libgcryptdefanor
2023-09-26Support OpenSSL for DTLS-SRTPdefanor
2023-09-24Move GnuTLS operations from Jingle module into TLS moduledefanor
2023-09-21Handle audio I/O, codecs, and RTP for Jingle callsdefanor
2023-09-15Abstract out random generationdefanor
Still depending on gcrypt for hashing, but this is a step towards making that dependency optional.
2023-09-15Update the testdefanor
2023-09-15Declare rexmpp_str_putc_escaped as "static inline"defanor
2023-09-09Use rxml for XML parsing when building with Rustdefanor
2023-09-08Support libexpat as an alternative XML parserdefanor
2023-09-07Implement rexmpp_xml_eq in Rustdefanor
2023-09-07Build rexmpp_xml_t directly on SAX parsingdefanor
Afterwards it is used for the input queue, too.
2023-09-07Implement XML serialization in C and in Rustdefanor
Continuing replacement of libxml2, planning to use libexpat or a Rust XML parser as an alternative for XML parsing.
2023-09-06Fix XML node freeing in rexmpp_openpgp.cdefanor
It used xmlFreeNode instead of rexmpp_xml_free.
2023-08-09Fix pingingdefanor
It was broken since commit 938963c1d1c6a9b929d28a90030332d4f397ca61, since seconds from monotonic clocks were compared to calendar ones. Now last_network_activity is a timespec, using monotonic clocks as well.
2023-06-22Make use of pointer::as_mut and pointer::writedefanor
It doesn't seem to add much, but experimenting with different approaches.
2023-06-20Add Rust versions of the TCP module and of a few structuresdefanor
2023-06-18Duplicate most of the XML functions in Rust, use Cargodefanor
2023-06-14Use more pointers to other structures from struct rexmppdefanor
Instead of including them. Those structures can vary depending on configuration options, while for bindings it is easier if they stay the same, and are mere pointers. Besides, some of them may refer to opaque Rust-only structures in the future.
2023-06-09Avoid direct strdup of values returned by rexmpp_xml_find_attr_valdefanor
Better to check those to not be NULL first.
2023-05-23Replace libxml2's xmlNode with a custom XML structuredefanor
The new structure (rexmpp_xml) is simpler, and should allow manipulation from Rust without any dependency on libxml2 from the Rust code (while Rust has its own parsers, such as rxml). Alternative XML parsers (e.g., libexpat) now can be used from the C code. The replacement/abstraction is not quite complete yet: the parsing process itself (xmlParseChunk and friends) should be abstracted out.
2023-05-17Rebuild the Rust-based static library on source file changesdefanor
2023-05-05Introduce an alternative implementation of rexmpp_socks in Rustdefanor
Possibly other modules will follow. Aiming to provide memory-safe(r) alternatives, while keeping the C versions as well.
2023-05-02Use timespec and monotonic clock for timersdefanor
2023-04-15Add a path MTU discovery setting for TCP socketsdefanor
2023-04-15Fix an inet_pton argumentdefanor
2022-12-13Add console commands for blocklist managementdefanor
2022-12-10Add console commands for service discovery and pubsub node removaldefanor
2022-04-04Add a DOAP filedefanor
2022-01-10Add a basic testdefanor
2022-01-10Check in rexmpp_tcp_connected whether DNS records are resolveddefanor
They may not be if an IP address is used instead of a hostname.
2021-12-28Fix integer overflow on stanzas_out_acknowledged > stanzas_out_countdefanor
2021-12-25Handle MUC private messages in xmpp.eldefanor
2021-10-23Add xmpp-restart into xmpp.eldefanor
For restarting the rexmpp_xml_interface process (e.g., switching to a newer version) without killing corresponding buffers.
2021-10-13Implement Jingle RTP sessions with ICE-UDP and DTLS-SRTPdefanor
Works with Dino and Conversations, but currently relying on external players and streamers for actual audio playback and capture. For now requiring GnuTLS and libnice for calls; OpenSSL should be supported as an alternative to the former, and the latter should be made optional, maybe with libjuice as an alternative.
2021-10-03Return REXMPP_E_AGAIN upon scheduling a reconnectdefanor
So that an application would wait instead of giving up; perhaps other errors should be reserved for cases when a reconnect is undesirable and user intervention is needed.
2021-10-03Fix IPv6 address handlingdefanor
2021-10-03Free rexmpp_dns_query_cb_data structuresdefanor
2021-10-02Make libgsasl optionaldefanor
Only EXTERNAL and PLAIN mechanisms are supported without it for now.