Advertisement
deepi7

Untitled

Mar 4th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | None | 0 0
  1. if (!strcasecmp(argv[0], "restart_span")) {
  2.                 ftdm_span_t *span = NULL;
  3.                 if (argc == 2) {
  4.                         status = ftdm_span_find_by_name(argv[1], &span);
  5.                         if (FTDM_SUCCESS != status) {
  6.                                 stream->write_function(stream, "-ERR failed to find span with name %s\n", argv[1]);
  7.                                 stream->write_function(stream, "Usage: %s\n", SANGOMA_ISDN_API_USAGE_RESTART_SPAN);
  8.                                 status = FTDM_FAIL;
  9.                                 goto done;
  10.                         }
  11.                         status = ftdm_sangoma_isdn_stop1(span);
  12.                         status = ftdm_sangoma_isdn_start(span);
  13.                         goto done;
  14.                 }
  15.         }
  16.  
  17. static ftdm_status_t ftdm_sangoma_isdn_stop1(ftdm_span_t *span)
  18. {
  19.         ftdm_log(FTDM_LOG_INFO, "Stopping span %s\n", span->name);
  20.  
  21.         /* throw the STOP_THREAD flag to signal monitor thread stop */
  22.         ftdm_set_flag(span, FTDM_SPAN_STOP_THREAD);
  23.  
  24.         /* wait for the thread to stop */
  25.         while (ftdm_test_flag(span, FTDM_SPAN_IN_THREAD)) {
  26.                 ftdm_log(FTDM_LOG_DEBUG, "Waiting for monitor thread to end for span %s\n", span->name);
  27.                 ftdm_sleep(10);
  28.         }
  29.  
  30.         if (sngisdn_stack_stop(span) != FTDM_SUCCESS) {
  31.                 ftdm_log(FTDM_LOG_CRIT, "Failed to stop span %s\n", span->name);
  32.         }
  33.         ftdm_log(FTDM_LOG_DEBUG, "Finished stopping span %s\n", span->name);
  34.         return FTDM_SUCCESS;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement