fixed some bugs, added some more

- Added JABBER_RAW_CONNECT[ING/ED] connection states
- Added cl_ev_connect_raw and session_connect_raw to conform to normal
connection functions
- Fixed SIGABRT during registration
- Added a check in cmd_register to ensure it's actually connected before
registering--but this will always fail atm
This commit is contained in:
swirl
2021-07-04 19:02:38 -04:00
parent 5ea1ccbb46
commit 2cc354b6ae
9 changed files with 96 additions and 15 deletions

View File

@@ -204,6 +204,43 @@ session_connect_with_details(const char* const jid, const char* const passwd, co
saved_details.auth_policy);
}
jabber_conn_status_t
session_connect_raw(const char* const altdomain, const int port, const char* const tls_policy,
const char* const auth_policy)
{
assert(altdomain != NULL);
_session_free_saved_account();
_session_free_saved_details();
// save details for reconnect
saved_details.altdomain = strdup(altdomain);
if (port != 0) {
saved_details.port = port;
} else {
saved_details.port = 0;
}
if (tls_policy) {
saved_details.tls_policy = strdup(tls_policy);
} else {
saved_details.tls_policy = NULL;
}
if (auth_policy) {
saved_details.auth_policy = strdup(auth_policy);
} else {
saved_details.auth_policy = NULL;
}
// raw connect
log_info("Raw connecting to server: %s", altdomain);
return connection_connect_raw(
saved_details.altdomain,
saved_details.port,
saved_details.tls_policy,
saved_details.auth_policy);
}
void
session_autoping_fail(void)
{
@@ -261,6 +298,8 @@ session_process_events(void)
switch (conn_status) {
case JABBER_CONNECTED:
case JABBER_CONNECTING:
case JABBER_RAW_CONNECTED:
case JABBER_RAW_CONNECTING:
case JABBER_DISCONNECTING:
connection_check_events();
break;
@@ -543,3 +582,4 @@ _session_free_saved_details(void)
FREE_SET_NULL(saved_details.tls_policy);
FREE_SET_NULL(saved_details.auth_policy);
}