]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: stop just once
authorMoises Silva <moy@sangoma.com>
Tue, 25 May 2010 20:06:42 +0000 (16:06 -0400)
committerMoises Silva <moy@sangoma.com>
Tue, 25 May 2010 20:06:55 +0000 (16:06 -0400)
libs/freetdm/src/ftdm_io.c
libs/freetdm/src/include/freetdm.h

index 537194699353a0303f21f813cf63e24a6250f5ac..f6ba9af8483818ebc273e33e92d5e2c55c087685 100644 (file)
@@ -414,9 +414,7 @@ static ftdm_status_t ftdm_span_destroy(ftdm_span_t *span)
        ftdm_mutex_lock(span->mutex);
 
        /* stop the signaling */
-       if (span->stop) {
-               status = span->stop(span);
-       } 
+       ftdm_span_stop(span);
 
        /* destroy the channels */
        ftdm_clear_flag(span, FTDM_SPAN_CONFIGURED);
@@ -514,12 +512,12 @@ static void ftdm_span_add(ftdm_span_t *span)
 
 FT_DECLARE(ftdm_status_t) ftdm_span_stop(ftdm_span_t *span)
 {
+       ftdm_status_t status =  FTDM_FAIL;
        if (span->stop) {
-               span->stop(span);
-               return FTDM_SUCCESS;
+               status = span->stop(span);
+               span->stop = NULL;
        }
-       
-       return FTDM_FAIL;
+       return status;
 }
 
 FT_DECLARE(ftdm_status_t) ftdm_span_create(const char *iotype, const char *name, ftdm_span_t **span)
index 495e3cdc409e0c71fe0c812d38c8bf82a668c6c8..4cc9fd244e459451f65fd3df7a066ea294a7fcc8 100644 (file)
@@ -1125,6 +1125,9 @@ FT_DECLARE(ftdm_status_t) ftdm_span_start(ftdm_span_t *span);
 
 /*! 
  * \brief Stop the span signaling (must call ftdm_span_start first)
+ * \note certain signalings (boost signaling) does not support granular span start/stop
+ * so it is recommended to always configure all spans and then starting them all and finally
+ * stop them all (or call ftdm_global_destroy which takes care of stopping and destroying the spans at once).
  *
  * \param span The span to stop
  *