]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
skypopen: making XEvents to works when EARLYMEDIA, and correctly manage threads death
authorGiovanni <gmaruzz@gmail.com>
Wed, 31 Mar 2010 14:22:25 +0000 (16:22 +0200)
committerGiovanni <gmaruzz@gmail.com>
Wed, 31 Mar 2010 14:22:25 +0000 (16:22 +0200)
src/mod/endpoints/mod_skypopen/mod_skypopen.c
src/mod/endpoints/mod_skypopen/skypopen_protocol.c

index e7584a1812a824c07737b8a091d62394b740188f..eff59c2c36e539adc6e7baa72881f1d09e062144 100644 (file)
@@ -1191,6 +1191,7 @@ static void *SWITCH_THREAD_FUNC skypopen_signaling_thread_func(switch_thread_t *
                        }
                }
        }
+       tech_pvt->skypopen_signaling_thread=NULL;
        DEBUGA_SKYPE("EXITING\n", SKYPOPEN_P_LOG);
        return NULL;
 }
@@ -1703,6 +1704,8 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_skypopen_shutdown)
                                switch_file_write(tech_pvt->SkypopenHandles.fdesc[1], "sciutati", &howmany);    // let's the controldev_thread die
 
 #else /* WIN32 */
+                               skypopen_signaling_write(tech_pvt, "DIE");
+                               switch_sleep(10000);
                                howmany = write(tech_pvt->SkypopenHandles.fdesc[1], "sciutati", howmany);
 #endif /* WIN32 */
                        }
index 3e13b9c8250c428fda6f4ce4b65cf0ba507bebbb..2241197e270a1a018cd2cce7ee0888d3aa15f3bc 100644 (file)
@@ -584,6 +584,7 @@ int skypopen_signaling_read(private_t * tech_pvt)
                                                skypopen_sleep(1000);
                                                sprintf(msg_to_skype, "ALTER CALL %s SET_INPUT PORT=\"%d\"", id, tech_pvt->tcp_cli_port);
                                                skypopen_signaling_write(tech_pvt, msg_to_skype);
+                                               skypopen_sleep(1000);
                                                sprintf(msg_to_skype, "#output ALTER CALL %s SET_OUTPUT PORT=\"%d\"", id, tech_pvt->tcp_srv_port);
                                                skypopen_signaling_write(tech_pvt, msg_to_skype);
 
@@ -1408,6 +1409,7 @@ void *skypopen_do_skypeapi_thread_func(void *obj)
                        win32_DeInitialize_DestroyWindowClass(tech_pvt);
                }
        }
+       tech_pvt->skypopen_api_thread=NULL;
        DEBUGA_SKYPE("EXITING\n", SKYPOPEN_P_LOG);
        return NULL;
 }
@@ -1707,8 +1709,9 @@ void *skypopen_do_skypeapi_thread_func(void *obj)
        } else {
                ERRORA("Skype is not running, maybe crashed. Please run/restart Skype and relaunch Skypopen\n", SKYPOPEN_P_LOG);
                running = 0;
-               return NULL;
        }
+       tech_pvt->skypopen_api_thread=NULL;
+       NOTICA("EXITING\n", SKYPOPEN_P_LOG);
        return NULL;
 
 }