mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-14 01:49:05 +00:00
MODENDP-202 and MODENDP-204
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12680 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
@@ -1593,6 +1593,7 @@ static void xmpp_connect(ldl_handle_t *handle, char *jabber_id, char *pass)
|
||||
microsleep(100);
|
||||
}
|
||||
|
||||
ldl_set_flag_locked(handle, LDL_FLAG_STOPPED);
|
||||
|
||||
}
|
||||
|
||||
@@ -2324,6 +2325,7 @@ ldl_status ldl_handle_init(ldl_handle_t **handle,
|
||||
|
||||
void ldl_handle_run(ldl_handle_t *handle)
|
||||
{
|
||||
ldl_clear_flag_locked(handle, LDL_FLAG_STOPPED);
|
||||
ldl_set_flag_locked(handle, LDL_FLAG_RUNNING);
|
||||
xmpp_connect(handle, handle->login, handle->password);
|
||||
ldl_clear_flag_locked(handle, LDL_FLAG_RUNNING);
|
||||
@@ -2332,12 +2334,24 @@ void ldl_handle_run(ldl_handle_t *handle)
|
||||
void ldl_handle_stop(ldl_handle_t *handle)
|
||||
{
|
||||
ldl_clear_flag_locked(handle, LDL_FLAG_RUNNING);
|
||||
if (ldl_test_flag(handle, LDL_FLAG_TLS)) {
|
||||
int fd;
|
||||
if ((fd = iks_fd(handle->parser)) > -1) {
|
||||
shutdown(fd, 0x02);
|
||||
}
|
||||
}
|
||||
|
||||
while(!ldl_test_flag(handle, LDL_FLAG_STOPPED)) {
|
||||
microsleep(100);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ldl_status ldl_handle_destroy(ldl_handle_t **handle)
|
||||
{
|
||||
apr_pool_t *pool = (*handle)->pool;
|
||||
|
||||
ldl_handle_stop(*handle);
|
||||
ldl_flush_queue(*handle, 1);
|
||||
|
||||
|
||||
|
@@ -119,7 +119,8 @@ typedef enum {
|
||||
LDL_FLAG_AUTHORIZED = (1 << 2),
|
||||
LDL_FLAG_READY = (1 << 3),
|
||||
LDL_FLAG_CONNECTED = (1 << 4),
|
||||
LDL_FLAG_QUEUE_RUNNING = (1 << 5)
|
||||
LDL_FLAG_QUEUE_RUNNING = (1 << 5),
|
||||
LDL_FLAG_STOPPED = (1 << 6)
|
||||
} ldl_flag_t;
|
||||
|
||||
typedef enum {
|
||||
|
Reference in New Issue
Block a user