Called by soft_hangup to interrupt the poll, read, or other
system call. We don't actually need to do anything though.
Remember: Cannot EVER ast_log from within a signal handler
- SLD: seems to be some pthread activity relating to the printf anyway:
- which is leading to a deadlock?
*/
static void urg_handler(int num)
{
-#if 0
- if (option_debug > 2)
- printf("-- Asterisk Urgent handler\n");
-#endif
signal(num, urg_handler);
return;
}
{
printf(term_end());
fflush(stdout);
+
/* Called when readline data is available */
- if (s && !ast_all_zeros(s))
+ if (!ast_all_zeros(s))
ast_el_add_history(s);
- /* Give the console access to the shell */
- if (s) {
- /* The real handler for bang */
- if (s[0] == '!') {
- if (s[1])
- ast_safe_system(s+1);
- else
- ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh");
- } else
+ /* The real handler for bang */
+ if (s[0] == '!') {
+ if (s[1])
+ ast_safe_system(s+1);
+ else
+ ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh");
+ } else
ast_cli_command(STDOUT_FILENO, s);
- } else
- fprintf(stdout, "\nUse \"quit\" to exit\n");
}
static int remoteconsolehandler(char *s)
{
int ret = 0;
+
/* Called when readline data is available */
- if (s && !ast_all_zeros(s))
+ if (!ast_all_zeros(s))
ast_el_add_history(s);
- /* Give the console access to the shell */
- if (s) {
- /* The real handler for bang */
- if (s[0] == '!') {
- if (s[1])
- ast_safe_system(s+1);
- else
- ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh");
- ret = 1;
- }
- if ((strncasecmp(s, "quit", 4) == 0 || strncasecmp(s, "exit", 4) == 0) &&
- (s[4] == '\0' || isspace(s[4]))) {
- quit_handler(0, 0, 0, 0);
- ret = 1;
- }
- } else
- fprintf(stdout, "\nUse \"quit\" to exit\n");
+ /* The real handler for bang */
+ if (s[0] == '!') {
+ if (s[1])
+ ast_safe_system(s+1);
+ else
+ ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh");
+ ret = 1;
+ }
+ if ((strncasecmp(s, "quit", 4) == 0 || strncasecmp(s, "exit", 4) == 0) &&
+ (s[4] == '\0' || isspace(s[4]))) {
+ quit_handler(0, 0, 0, 0);
+ ret = 1;
+ }
return ret;
}
consolehandler((char *)buf);
} else {
if (write(STDOUT_FILENO, "\nUse EXIT or QUIT to exit the asterisk console\n",
- strlen("\nUse EXIT or QUIT to exit the asterisk console\n")) < 0) {
+ strlen("\nUse EXIT or QUIT to exit the asterisk console\n")) < 0) {
/* Whoa, stdout disappeared from under us... Make /dev/null's */
int fd;
fd = open("/dev/null", O_RDWR);
when = ast_tvdiff_ms(ast_tvnow(), pvt->rxcore);
- /* fprintf(stderr, "now = %d, next=%d\n", when, jb_next(pvt->jb)); */
-
when = jb_next(pvt->jb) - when;
- /* fprintf(stderr, "when = %d\n", when); */
if(pvt->jbid > -1) ast_sched_del(sched, pvt->jbid);
return;
}
- /* fprintf(stderr, "get_from_jb called\n"); */
pvt->jbid = -1;
gettimeofday(&tv,NULL);
ret = jb_get(pvt->jb,&frame,now,ast_codec_interp_len(pvt->voiceformat));
switch(ret) {
case JB_OK:
- /*if(frame.type == JB_TYPE_VOICE && next + 20 != jb_next(pvt->jb)) fprintf(stderr, "NEXT %ld is not %ld+20!\n", jb_next(pvt->jb), next); */
fr = frame.data;
__do_deliver(fr);
break;
{
struct ast_frame af;
- /*if(next + 20 != jb_next(pvt->jb)) fprintf(stderr, "NEXT %ld is not %ld+20!\n", jb_next(pvt->jb), next); */
-
/* create an interpolation frame */
- /*fprintf(stderr, "Making Interpolation frame\n"); */
af.frametype = AST_FRAME_VOICE;
af.subclass = pvt->voiceformat;
af.datalen = 0;
}
break;
case JB_DROP:
- /*if(next != jb_next(pvt->jb)) fprintf(stderr, "NEXT %ld is not next %ld!\n", jb_next(pvt->jb), next); */
iax2_frame_free(frame.data);
break;
case JB_NOFRAME:
p->lastsent = ms;
if (voice)
p->nextpred = p->nextpred + f->samples / 8;
-#if 0
- printf("TS: %s - %dms\n", voice ? "Audio" : "Control", ms);
-#endif
return ms;
}