]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
difference between invalid uuid and no uuid
authorAnthony Minessale <anthony.minessale@gmail.com>
Mon, 8 Dec 2008 15:28:01 +0000 (15:28 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Mon, 8 Dec 2008 15:28:01 +0000 (15:28 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10651 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia_presence.c
src/mod/event_handlers/mod_event_socket/mod_event_socket.c

index 756ace7dedcf5aa6c1fd9166b93273988a736800..7d64f7a94cab769d60b15c1f0e81a43da25828a0 100644 (file)
@@ -1533,10 +1533,6 @@ void sofia_presence_handle_sip_i_subscribe(int status,
                        switch_assert(sql != NULL);
                        sofia_glue_execute_sql(profile, &sql, SWITCH_TRUE);
 
-                       if (exp_raw >= 180) {
-                               exp_raw -= 120;
-                       }
-
                        sstr = switch_mprintf("active;expires=%ld", exp_raw);
                }
 
index 344a3b46626f14b46614c240b698ef1964b5264e..87fd5ec0247887e28864f75deeadcb24e3d5699c 100644 (file)
@@ -1228,7 +1228,8 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even
                } else if (listener->session && !strncasecmp(cmd, "sendmsg", 7)) {
                        char *uuid = cmd + 8;
                        switch_core_session_t *session = NULL;
-
+                       switch_bool_t uuid_supplied = SWITCH_FALSE;
+                       
                        if (uuid) {
                                while (*uuid == ' ') {
                                        uuid++;
@@ -1245,7 +1246,11 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even
                                uuid = switch_event_get_header(*event, "session-id");
                        }
                        
-                       if (uuid && (session = switch_core_session_locate(uuid))) {
+                       if (uuid) {
+                               uuid_supplied = SWITCH_TRUE;
+                       }
+                       
+                       if (uuid_supplied && (session = switch_core_session_locate(uuid))) {
                                if ((status = switch_core_session_queue_private_event(session, event)) == SWITCH_STATUS_SUCCESS) {
                                        switch_snprintf(reply, reply_len, "+OK");
                                } else {
@@ -1254,10 +1259,14 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t **even
                                switch_core_session_rwunlock(session);
                        } else {
                                if (switch_test_flag(listener, LFLAG_ASYNC)) {
-                                       if ((status = switch_core_session_queue_private_event(listener->session, event)) == SWITCH_STATUS_SUCCESS) {
-                                               switch_snprintf(reply, reply_len, "+OK");
+                                       if (!uuid_supplied) {
+                                               switch_snprintf(reply, reply_len, "-ERR invalid session id [%s]", switch_str_nil(uuid));
                                        } else {
-                                               switch_snprintf(reply, reply_len, "-ERR memory error");
+                                               if ((status = switch_core_session_queue_private_event(listener->session, event)) == SWITCH_STATUS_SUCCESS) {
+                                                       switch_snprintf(reply, reply_len, "+OK");
+                                               } else {
+                                                       switch_snprintf(reply, reply_len, "-ERR memory error");
+                                               }
                                        }
                                } else {
                                        switch_ivr_parse_event(listener->session, *event);