The sha1 function `xmpp_sha1_digest()` from libmesode/libstrophe, that we now use instead of `p_sha1_hash() which depended on another third party sha1 lib is only avilable in version >= 0.9.2.
Move `p_sha1_hash()` from `common.c` to `xmpp/stanza.c` as it is only
used in this file and now depends on libstrophe so xmpp is a better
namespace folder.
Renaming it as `_stanza_create_sha1_hash()`. And making static since
only used here.
The function cannot be tested in the unit tests anymore.
Once functional tests are working again we should write a test for the
sha1 functionality.
create_unique_id() was changed to use UUIDs instead of a counter in the
last commit. Since now it depends on connection_create_uuid() which is
in the xmpp subfolder the function should also be moved there.
Renamed it to connection_create_stanza_id() and moved it to
src/xmpp/connection.c.
Discussion happened in https://github.com/boothj5/profanity/pull/1010
Message IDs should be unique so they can be used by XEPs like delivery receipts, chat markers, message correction.
So far it used a counter so restarting profanity will cause the counter
to be 0 again.
Let's rather use an UUID since we have such a function in the
xmpp/xmpp.h already.
Closes https://github.com/boothj5/profanity/issues/998
In OpenBSD we have two readline libs. On the one hand we have an old
version in the base OS and on the other hand we have an new one in the
ports tree. profanity needs the new one and should pick up the right
one. readline from ports tree is prefixed as ereadline.
Note:
Original patch by Rafael Sadowski.
Cleaned up by jubalh with heavy help of pasis.
With gcc8 we get the following error when stringop-truncation is on:
```
In function ‘_rotate_log_file’,
inlined from ‘log_msg.part.2’ at src/log.c:201:17:
src/log.c:231:5: error: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
strncpy(log_file_new, log_file, len);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/log.c: In function ‘log_msg.part.2’:
src/log.c:228:18: note: length computed here
size_t len = strlen(log_file);
^~~~~~~~~~~~~~~~
```
Using memcpy instead of strncpy.