Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (!strcasecmp(argv[0], "restart_span")) {
- ftdm_span_t *span = NULL;
- if (argc == 2) {
- status = ftdm_span_find_by_name(argv[1], &span);
- if (FTDM_SUCCESS != status) {
- stream->write_function(stream, "-ERR failed to find span with name %s\n", argv[1]);
- stream->write_function(stream, "Usage: %s\n", SANGOMA_ISDN_API_USAGE_RESTART_SPAN);
- status = FTDM_FAIL;
- goto done;
- }
- status = ftdm_sangoma_isdn_stop1(span);
- status = ftdm_sangoma_isdn_start(span);
- goto done;
- }
- }
- static ftdm_status_t ftdm_sangoma_isdn_stop1(ftdm_span_t *span)
- {
- ftdm_log(FTDM_LOG_INFO, "Stopping span %s\n", span->name);
- /* throw the STOP_THREAD flag to signal monitor thread stop */
- ftdm_set_flag(span, FTDM_SPAN_STOP_THREAD);
- /* wait for the thread to stop */
- while (ftdm_test_flag(span, FTDM_SPAN_IN_THREAD)) {
- ftdm_log(FTDM_LOG_DEBUG, "Waiting for monitor thread to end for span %s\n", span->name);
- ftdm_sleep(10);
- }
- if (sngisdn_stack_stop(span) != FTDM_SUCCESS) {
- ftdm_log(FTDM_LOG_CRIT, "Failed to stop span %s\n", span->name);
- }
- ftdm_log(FTDM_LOG_DEBUG, "Finished stopping span %s\n", span->name);
- return FTDM_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement