Commit Graph

246 Commits

Author SHA1 Message Date
Dmitry Podgorny
b6fcb7035d rand: replace time() with time_stamp() as entropy source
time_stamp() has bigger precision.
2016-09-02 17:38:42 +03:00
Dmitry Podgorny
c0a224cf84 Remove const in parser_free() declaration
To match the definitions.
2016-09-02 17:10:51 +03:00
Dmitry Podgorny
384ef8023e auth: coding style 2016-09-02 17:10:14 +03:00
Dmitry Podgorny
f44232762e tls/schannel: remove unused variable 2016-09-02 17:09:47 +03:00
Dmitry Podgorny
111659cc91 ctx: add workaround for ms compilers without va_copy support 2016-09-02 15:22:31 +03:00
Dmitry Podgorny
4ae4b8c94b event: suppress warning about type overflow 2016-09-02 15:22:14 +03:00
Dmitry Podgorny
a45af3a929 resolver: srv_rr_list can be uninitialised
Resolver assumes that srv_rr_list is empty at the beginning. Make it so
explicitly and let user pass uninitialised list as argument.
2016-09-02 12:39:10 +03:00
Dmitry Podgorny
3e77afb27e Fix type mismatch
Backported from NetXMS project.
2016-09-02 11:59:54 +03:00
Dmitry Podgorny
0c60e8d384 tls_openssl: coding style 2016-09-02 00:49:32 +03:00
Dmitry Podgorny
2bff3f8722 conn: unify error codes for API functions
Return error code from strophe.h instead of -1.
2016-09-02 00:49:32 +03:00
Dmitry Podgorny
dc56737b71 conn: implemented xmpp_connect_raw()
This function is similar to xmpp_connect_client(), but doesn't perform
authentication. Instead, it calls user's connection handler immediately
after establishing the connection. Hence, user can implement own
authendication or registration procedures.

Such a "raw" connection can be useful when user interaction is required
(e.g. Data Forms in XEP-0077, OAuth2).
2016-09-02 00:47:58 +03:00
Dmitry Podgorny
3869906357 Fixed spacing in event.c 2016-08-30 23:35:17 +03:00
Dmitry Podgorny
75b19be572 unify _sleep() macro in event.c 2016-08-30 19:43:05 +03:00
Dmitry Podgorny
14066d0bff resolver: fix commit 171b285 2016-08-29 20:09:45 +03:00
Chih-Wei Chen
171b285cbe sock : Add DNS-SRV list sorted by priority and weight, check result connection. 2016-08-29 11:32:20 +03:00
Dmitry Podgorny
1a657c67e2 Fixed typo 2016-05-21 01:28:39 +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
e83d0d6b62 SCRAM-SHA-1: fixed base64-decoding of salt
Salt can contain 0x00, therefore must be decoded with
xmpp_base64_decode_bin().
2016-05-08 09:01:20 +03:00
Dmitry Podgorny
2ffb278aa4 Implemented public Base64 interface
Base64 is required for vCard avatars. It will also be useful for
an authentication mechanism with future xmpp_connect_raw() interface.
2016-04-30 18:09:01 +00:00
Dmitry Podgorny
7f57e3987a tests/resolver: don't link against -lstrophe 2016-04-30 16:40:10 +00:00
Dmitry Podgorny
e4a4bdd3a3 Implemented public SHA1 interface
A number of XEPs require SHA1. Publishing its interface helps user to
reduce number of dependencies.
2016-04-29 22:51:23 +00:00
Dmitry Podgorny
b5d9b33b6f Refactor rand
* Removed dependency from internal headers in rand.h. xmpp_rand
  interface can be public in the future;
* xmpp_rand functions accept xmpp_rand_t object instead of xmpp_ctx_t.
2016-04-29 22:51:23 +00:00
Dmitry Podgorny
192ab59608 resolver: fixed uninitialised var 2016-04-28 20:40:16 +00:00
Dmitry Podgorny
a3da77b8f6 stanza: return const char* for non allocated strings
If interface function returns char* the result must be freed with
xmpp_free().

In case of const char* the result must not be changed by user. Also, the
result is valid only during stanza lifetime.
2016-04-27 11:56:50 +00:00
Dmitry Podgorny
a2834f8f92 conn: fixed doxygen comments 2016-04-26 20:27:25 +00:00
Dmitry Podgorny
2ef432f632 conn: xmpp_conn_set_keepalive() stores parameters in conn
Store keepalive parameters in conn object. This allows call the function
with a disconnected conn. Also, the parameters are not cleared on
reconnect and applied once a socket is created.
2016-04-26 19:48:34 +00:00
Dmitry Podgorny
a50d706bcd stanza: added helpers for particular stanzas
These are wrappers for message, iq and presence stanzas.
2016-04-26 19:19:51 +00:00
Dmitry Podgorny
ca7af9c837 Fixed indentation and typos 2016-04-26 19:19:51 +00:00
Dmitry Podgorny
a65679dd72 conn: removed unused fields from xmpp_conn_t 2016-04-26 13:03:16 +00:00
Dmitry Podgorny
211748e65a Replace bit mask hex values with shifts 2016-04-26 13:01:22 +00:00
Dmitry Podgorny
4c0c12343f sha1: moved SHA1HANDSOFF definition 2016-04-22 21:30:17 +00:00
Dmitry Podgorny
96873984b2 conn: handle stream tag properly
If `id == NULL' there were two issues: use-after-free error or
logging wrong error description.
Also open stream handler was called even when error occured and
conn object was disconnected.
2016-04-22 21:04:29 +00:00
Dmitry Podgorny
b06599963b conn: make xmpp_conn_t object reusable
Disconnected xmpp_conn_t object can be connected again. The object
is reset before connection, but the next fields remain untoucned:
  * all handlers
  * flags
  * jid and password

Main use-case of this change is reconnect when an error occurs.
2016-04-22 20:52:36 +00:00
Dmitry Podgorny
ab80d72518 tls/openssl: handle SSL_shutdown() properly
Handle SSL_ERROR_WANT_READ/WRITE and return value 0.
2016-04-19 19:57:52 +00:00
Dmitry Podgorny
ba7422c893 tls/openssl: be more verbose
Log non-recoverable errors. The openssl error queue can contain useful
information.
2016-04-19 18:21:27 +00:00
Dmitry Podgorny
4b444ea699 tls/openssl: fixed indentation 2016-04-19 16:33:47 +00:00
Dmitry Podgorny
96dc61c772 sock: use sock_close() instead of close() 2016-04-16 20:19:16 +00:00
Andrey (Stanson) Kozin
f5c2c81142 Added conn_send_queue_purge() function.
Function frees all data and clean send queue in
    xmpp_conn_release()
    xmpp_connect_client()
    xmpp_connect_component()
2016-04-15 16:08:24 +00:00
Dmitry Podgorny
85bf3f4241 conn: don't set flag in xmpp_conn_disable_tls() directly
Instead, use xmpp_conn_set_flags() interface to force all necessary
checks.
2016-04-13 12:43:03 +00:00
Dmitry Podgorny
e60895087e event: let event loop start after xmpp_stop() 2016-04-13 10:25:15 +00:00
Dmitry Podgorny
b169c0a91e conn: refactore connect functions
Common code is moved to a separated function.
2016-04-12 20:19:16 +00:00
Dmitry Podgorny
968cb7dcdf conn: fixed indentation 2016-04-12 20:07:58 +00:00
Dmitry Podgorny
367aeb5844 conn: don't set tcp keepalives for disconnected connection
In XMPP_CONN_DISCONNECTED state conn->sock is undefined.
2016-04-08 18:17:07 +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
Andrey (Stanson) Kozin
714b2f9c03 Free send queue on connection release 2016-02-06 00:10:21 +00:00
Dmitry Podgorny
5b41247bac rand: remove sizeof(uint8_t) because it's always 1 2016-01-10 13:05:30 +02:00
vf
fc563272fe Fix for MSVC 2016-01-09 17:57:32 +03:00
Dmitry Podgorny
38545af533 parser/expat: reduce code duplication 2015-12-21 13:46:51 +02:00