diff --git a/build/modules.conf.in b/build/modules.conf.in index 71ece983ef..66b649f6f3 100644 --- a/build/modules.conf.in +++ b/build/modules.conf.in @@ -4,7 +4,7 @@ #applications/mod_blacklist #applications/mod_callcenter #applications/mod_cidlookup -applications/mod_cluechoo +#applications/mod_cluechoo applications/mod_commands applications/mod_conference #applications/mod_curl diff --git a/conf/vanilla/autoload_configs/modules.conf.xml b/conf/vanilla/autoload_configs/modules.conf.xml index d8a0b5cc68..e5a297e8af 100644 --- a/conf/vanilla/autoload_configs/modules.conf.xml +++ b/conf/vanilla/autoload_configs/modules.conf.xml @@ -60,7 +60,7 @@ - + diff --git a/configure.ac b/configure.ac index dbb5a925f2..857a59e7a5 100644 --- a/configure.ac +++ b/configure.ac @@ -342,7 +342,7 @@ if test "$ax_cv_c_compiler_vendor" = "gnu"; then saved_CFLAGS="$CFLAGS" AC_CACHE_CHECK([whether compiler supports -Wno-unused-result], [ac_cv_gcc_supports_w_no_unused_result], [ - CFLAGS="$CFLAGS -Wno-unused-result" + CFLAGS="$CFLAGS -Wno-unused-result -Wno-error=unused-result" AC_TRY_COMPILE([],[return 0;], [ac_cv_gcc_supports_w_no_unused_result=yes], [ac_cv_gcc_supports_w_no_unused_result=no])]) diff --git a/debian/bootstrap.sh b/debian/bootstrap.sh index e9b77825a0..bc7da61c3f 100755 --- a/debian/bootstrap.sh +++ b/debian/bootstrap.sh @@ -15,6 +15,7 @@ avoid_mods=( applications/mod_osp applications/mod_rad_auth applications/mod_skel + applications/mod_cluechoo asr_tts/mod_cepstral codecs/mod_com_g729 codecs/mod_ilbc @@ -433,7 +434,6 @@ Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-mod-voicemail (= \${binary:Version}), freeswitch-mod-esf (= \${binary:Version}), freeswitch-mod-fsv (= \${binary:Version}), - freeswitch-mod-cluechoo (= \${binary:Version}), freeswitch-mod-valet-parking (= \${binary:Version}), freeswitch-mod-httapi (= \${binary:Version}), freeswitch-mod-dialplan-xml (= \${binary:Version}), @@ -564,7 +564,6 @@ Recommends: freeswitch-mod-blacklist (= \${binary:Version}), freeswitch-mod-callcenter (= \${binary:Version}), freeswitch-mod-cidlookup (= \${binary:Version}), - freeswitch-mod-cluechoo (= \${binary:Version}), freeswitch-mod-commands (= \${binary:Version}), freeswitch-mod-conference (= \${binary:Version}), freeswitch-mod-curl (= \${binary:Version}), diff --git a/docs/Doxygen.conf b/docs/Doxygen.conf index c087478179..41920106dc 100644 --- a/docs/Doxygen.conf +++ b/docs/Doxygen.conf @@ -31,7 +31,7 @@ PROJECT_NAME = "FreeSWITCH API Documentation" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.0.6 +PROJECT_NUMBER = 1.5.14b # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/libs/esl/fs_cli.c b/libs/esl/fs_cli.c index 43c186b728..3610ae5219 100644 --- a/libs/esl/fs_cli.c +++ b/libs/esl/fs_cli.c @@ -61,6 +61,7 @@ typedef struct { int log_uuid; int log_uuid_length; int quiet; + int use_history_file; int batch_mode; char prompt_color[12]; char input_text_color[12]; @@ -1222,6 +1223,7 @@ static void read_config(const char *dft_cfile, const char *cfile) { esl_set_string(profiles[pcount].prompt_color, prompt_color); esl_set_string(profiles[pcount].input_text_color, input_text_color); esl_set_string(profiles[pcount].output_text_color, output_text_color); + profiles[pcount].use_history_file = 1; esl_log(ESL_LOG_DEBUG, "Found Profile [%s]\n", profiles[pcount].name); pcount++; } @@ -1257,6 +1259,8 @@ static void read_config(const char *dft_cfile, const char *cfile) { } } else if(!strcasecmp(var, "quiet")) { profiles[pcount-1].quiet = esl_true(val); + } else if(!strcasecmp(var, "no-history-file")) { + profiles[pcount-1].use_history_file = !esl_true(val); } else if(!strcasecmp(var, "prompt-color")) { esl_set_string(profiles[pcount-1].prompt_color, match_color(val)); } else if(!strcasecmp(var, "input-text-color")) { @@ -1298,6 +1302,8 @@ int main(int argc, char *argv[]) const char *line = NULL; char cmd_str[1024] = ""; cli_profile_t *profile = NULL; + int argv_use_history_file = 1; + int use_history_file = 0; #ifndef WIN32 char hfile[512] = "/tmp/fs_cli_history"; char cfile[512] = "/etc/fs_cli.conf"; @@ -1324,6 +1330,7 @@ int main(int argc, char *argv[]) {"log-uuid-short", 0, 0, 'S'}, {"quiet", 0, 0, 'q'}, {"batchmode", 0, 0, 'b'}, + {"no-history-file", 0, 0, 'Q'}, {"retry", 0, 0, 'r'}, {"interrupt", 0, 0, 'i'}, {"reconnect", 0, 0, 'R'}, @@ -1381,6 +1388,7 @@ int main(int argc, char *argv[]) esl_set_string(internal_profile.prompt_color, prompt_color); esl_set_string(internal_profile.input_text_color, input_text_color); esl_set_string(internal_profile.output_text_color, output_text_color); + internal_profile.use_history_file = 1; if (home) { snprintf(hfile, sizeof(hfile), "%s/.fs_cli_history", home); snprintf(cfile, sizeof(cfile), "%s/.fs_cli_conf", home); @@ -1395,7 +1403,7 @@ int main(int argc, char *argv[]) esl_global_set_default_logger(6); /* default debug level to 6 (info) */ for(;;) { int option_index = 0; - opt = getopt_long(argc, argv, "H:P:u:p:d:x:l:USt:T:qrRhib?n", options, &option_index); + opt = getopt_long(argc, argv, "H:P:u:p:d:x:l:USt:T:qQrRhib?n", options, &option_index); if (opt == -1) break; switch (opt) { case 'H': @@ -1450,6 +1458,9 @@ int main(int argc, char *argv[]) case 'b': argv_batch = 1; break; + case 'Q': + argv_use_history_file = 0; + break; case 'i': allow_ctl_c = 1; break; @@ -1505,6 +1516,9 @@ int main(int argc, char *argv[]) profile->batch_mode = 1; feature_level=0; } + if (argv_use_history_file && profile->use_history_file) { + use_history_file = 1; + } if (*argv_loglevel) { esl_set_string(profile->loglevel, argv_loglevel); profile->quiet = 0; @@ -1658,7 +1672,7 @@ int main(int argc, char *argv[]) } history(myhistory, &ev, H_SETSIZE, 800); el_set(el, EL_HIST, history, myhistory); - history(myhistory, &ev, H_LOAD, hfile); + if (use_history_file) history(myhistory, &ev, H_LOAD, hfile); el_source(el, NULL); #endif #ifdef WIN32 @@ -1712,7 +1726,7 @@ int main(int argc, char *argv[]) } #ifdef HAVE_LIBEDIT done: - history(myhistory, &ev, H_SAVE, hfile); + if (use_history_file) history(myhistory, &ev, H_SAVE, hfile); history_end(myhistory); el_end(el); #endif diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index cb2691c2a1..63605e55a1 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Wed Sep 24 01:09:42 CDT 2014 +Thu Sep 25 21:43:53 CDT 2014 diff --git a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c index 2fcd7021c0..7f4318e543 100644 --- a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c +++ b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c @@ -332,19 +332,22 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) ssize_t r; int err = 0; + wsh->x++; + if (wsh->x > 250) ms_sleep(1); + if (wsh->ssl) { do { r = SSL_read(wsh->ssl, data, bytes); - ms_sleep(10); - if (r == -1) { err = SSL_get_error(wsh->ssl, r); - + if (!block && err == SSL_ERROR_WANT_READ) { r = -2; goto end; } + + if (block) ms_sleep(10); } } while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100); @@ -354,10 +357,17 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) do { r = recv(wsh->sock, data, bytes, 0); - ms_sleep(10); + if (r == -1) { + if (!block && xp_is_blocking(xp_errno())) { + r = -2; + goto end; + } + + if (block) ms_sleep(10); + } } while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100); - if (wsh->x >= 100) { + if (wsh->x >= 1000 || (block && wsh->x >= 100)) { r = -1; } diff --git a/src/mod/endpoints/mod_verto/ws.c b/src/mod/endpoints/mod_verto/ws.c index 2fcd7021c0..7f4318e543 100644 --- a/src/mod/endpoints/mod_verto/ws.c +++ b/src/mod/endpoints/mod_verto/ws.c @@ -332,19 +332,22 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) ssize_t r; int err = 0; + wsh->x++; + if (wsh->x > 250) ms_sleep(1); + if (wsh->ssl) { do { r = SSL_read(wsh->ssl, data, bytes); - ms_sleep(10); - if (r == -1) { err = SSL_get_error(wsh->ssl, r); - + if (!block && err == SSL_ERROR_WANT_READ) { r = -2; goto end; } + + if (block) ms_sleep(10); } } while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100); @@ -354,10 +357,17 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) do { r = recv(wsh->sock, data, bytes, 0); - ms_sleep(10); + if (r == -1) { + if (!block && xp_is_blocking(xp_errno())) { + r = -2; + goto end; + } + + if (block) ms_sleep(10); + } } while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100); - if (wsh->x >= 100) { + if (wsh->x >= 1000 || (block && wsh->x >= 100)) { r = -1; } diff --git a/src/switch_channel.c b/src/switch_channel.c index d983110791..bfd20abc91 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -4203,7 +4203,11 @@ SWITCH_DECLARE(switch_status_t) switch_channel_get_variables(switch_channel_t *c { switch_status_t status; switch_mutex_lock(channel->profile_mutex); - status = switch_event_dup(event, channel->variables); + if (channel->variables) { + status = switch_event_dup(event, channel->variables); + } else { + status = switch_event_create(event, SWITCH_EVENT_CHANNEL_DATA); + } switch_mutex_unlock(channel->profile_mutex); return status; }