Commit Graph

38 Commits

Author SHA1 Message Date
Stu Tomlinson
06afe3d1c2 Add API to register callback to set socket options
The registered callback function will be called before connect() is
called on the socket, allowing tweaking of much more than just keepalive
settings.

This deprecates xmpp_conn_set_keepalive().

Includes helper/example callback function to set default keepalive
parameters that some library users may find useful.
2022-03-17 22:59:07 +00:00
Steffen Jaeckel
fc6ba89c61 properly rename internal [v]snprintf() functions
Otherwise it clashes when we want to re-introduce the `xmpp_` prefix'ed
versions.

Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
2022-03-16 14:39:20 +01:00
Dmitry Podgorny
db8a511f68 style: remove extra const keyword from interfaces
Const variables in prototypes don't add much value, but make the code
larger and redundant. Remove these const keywords.
Note, this doesn't apply to pointers to const memory.
2021-03-19 22:12:15 +02:00
Dmitry Podgorny
7c83eb0efa windows: rewrite headers in lower case
Otherwise, compilation fails on systems that are case sensitive.

Reference: #159.
2020-05-31 21:03:44 +03:00
Dmitry Podgorny
20c039fdb8 sock: replace sockaddr with sockaddr_storage
sockaddr structure may be insufficient to hold IPv6 address. Replace it
with sockaddr_storage structure.

Fixes #153.
2020-03-31 16:29:09 +03:00
Dmitry Podgorny
562a06425b Unify coding style
@sjaeckel integrated clang-format with formal coding style. Run his
script and commit changes.

There are pros and cons of this commit.

Mixed coding style is a "broken window". A good single style simplifies
reading and writing code.

On the other hand, this is a big change which will lead to conflicts.
2020-01-31 01:16:50 +02:00
Steffen Jaeckel
abd1b08a97 trim trailing spaces 2020-01-31 01:14:32 +02:00
Dmitry Podgorny
038404cb99 sock: reduce copy-paste
Move setting (non)block mode to a single static function.
2019-10-14 20:13:04 +03:00
Dmitry Podgorny
3e86987f5f sock: fixed build on cygwin
Cygwin doesn't have TCP_KEEPIDLE nor TCP_KEEPALIVE. Therefore, don't
change any tcp keepalive parameter on this system.
2016-05-11 11:30:21 +03:00
Dmitry Podgorny
96dc61c772 sock: use sock_close() instead of close() 2016-04-16 20:19:16 +00:00
Dmitry Podgorny
5518a9e10a sock: refactore tcp keepalive setting
- Leave default number of keepalive probes rather than hardcoded value
- QNX and OSX use TCP_KEEPALIVE instead of TCP_KEEPIDLE
- QNX doesn't have TCP_KEEPINTVL
2016-04-08 18:12:48 +00:00
Andrey (Stanson) Kozin
6c1c2a86f8 TCP keepalive setting support 2016-04-08 16:40:56 +00:00
Dmitry Podgorny
b7e308d057 Implemented resolver to replace sock_srv_lookup() 2016-02-20 00:15:08 +02:00
Dmitry Podgorny
a78201bae0 sock: use xmpp_snprintf instead of snprintf 2015-10-16 14:58:18 +03:00
Dmitry Podgorny
4cc9ba79c4 sock: choose target with the lowest priority
sock_srv_lookup chose the last target in the answer section. But it must
choose one with the lowest priority it can reach (due to RFC2052).
2015-10-15 17:49:44 +03:00
Dmitry Podgorny
c156e13791 sock: removed unused static functions 2015-10-14 01:45:25 +03:00
Tristan Le Guern
a47b71e52b netbuf_* and friends should be static 2015-10-13 23:17:09 +02:00
Dmitry Podgorny
254b9d73a1 sock: do nothing if srv lookup fails
Proper action is performed in xmpp_connect_client.
2015-10-12 22:06:27 +03:00
Dmitry Podgorny
8339fd0420 sock: socket should be non-blocking
Event loop handles asynchronous connections.
2015-10-11 05:20:31 +03:00
Dmitry Podgorny
63946ff7ef sock: set AI_ADDRCONFIG only if defined
AI_ADDRCONFIG is undefined on some systems.
2015-10-10 23:09:48 +03:00
Chih-Wei Chen
b2a98fb9b6 sock : Add IPv6 support 2015-10-10 00:24:08 +03:00
Dariusz Dwornikowski
71f75b2e2e Closes #31 2014-10-23 08:44:52 +02:00
Jack Moffitt
713cfa245a Another try at OpenBSD fixes.
nameser_compat.h is required on Darwin, but doesn't exist on
OpenBSD. Also, OpenBSD doesn't support the ns_c_in or ns_t_srv enums,
so the C_IN and T_SRV macros are required.
2012-02-10 22:10:32 -07:00
Jack Moffitt
f9471368f5 Fix snprintf warnings about missing format strings. 2012-02-08 21:46:37 -07:00
Jack Moffitt
143eec7e1f Remove need for nameser_compat.h. 2012-02-08 21:46:25 -07:00
Jack Moffitt
370a371800 Dual licensed libstrophe under MIT and GPLv3.
Updated copyright headers.
2009-06-15 15:26:10 -06:00
Jack Moffitt
3b47afaac9 Fix warnings and line endings from previous SRV commit. Get rid of domain parameter of xmpp_connect_client(). Remove usused handler.c helper left over from previous commit. 2008-07-03 05:20:59 +00:00
James Canete
561fac842c Add linux/unix version of SRV lookup.
Add some extra debugging when SRV lookup fails.
2008-07-03 04:32:28 +00:00
James Canete
1c098531d8 Rewrite sock lib to not use malloc. 2008-07-03 00:26:44 +00:00
Jack Moffitt
9c49b16554 Fix examples to use new API and lots of compiler warnings. 2008-07-02 23:17:27 +00:00
Jack Moffitt
65a174ee7e Most public API points are now documented. 2008-06-24 14:43:54 +00:00
Jack Moffitt
b6027cfd7f Updated copyright years and fixed LLC typo. 2008-06-19 22:33:13 +00:00
James Canete
77e3b1be77 Improve sock_connect_error(), and add manual DNS query support. 2008-05-14 21:07:50 +00:00
James Canete
1f453d2ecf Add schannel support (win32 only)
Fix a couple compile warnings.
Extend features timeout to 5 seconds.
2007-11-05 02:30:04 +00:00
James Canete
f45380bb23 Added OpenSSL support.
Added win32-specific srv lookup support.
Extend session timeout to 15 seconds.
2007-09-05 20:01:24 +00:00
Ralph Giles
76e0c6a4b3 Add the 'libstrophe' name to the copyright headers. 2005-06-15 16:58:11 +00:00
Jack Moffitt
e6fa890d3d Minor fixes for Win32 build. It now builds, but doesn't link. 2005-06-14 22:35:15 +00:00
Ralph Giles
f27235b862 Move the xmpp library to its new name. 2005-06-14 14:10:31 +00:00