aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_festival.c
diff options
context:
space:
mode:
authormogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-03 15:53:07 +0000
committermogorman <mogorman@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-03 15:53:07 +0000
commit4a1aaf52ae4189e660ad57ba69253f54603a2beb (patch)
tree27a80e26cf8f6ea1728ab5b2b8cc7573fd9f7cdc /apps/app_festival.c
parent1bd1494da59a95dce73628aafc4ba892036b82b2 (diff)
bug #8076 check option_debug before printing to debug channel.
patch provided in bugnote, with minor changes. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@44253 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_festival.c')
-rw-r--r--apps/app_festival.c74
1 files changed, 46 insertions, 28 deletions
diff --git a/apps/app_festival.c b/apps/app_festival.c
index 6e7a4ffd4..dafd89423 100644
--- a/apps/app_festival.c
+++ b/apps/app_festival.c
@@ -210,7 +210,8 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
break;
}
if (f->frametype == AST_FRAME_DTMF) {
- ast_log(LOG_DEBUG, "User pressed a key\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG, "User pressed a key\n");
if (intkeys && strchr(intkeys, f->subclass)) {
res = f->subclass;
ast_frfree(f);
@@ -241,13 +242,15 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
break;
}
if (res < needed) { /* last frame */
- ast_log(LOG_DEBUG, "Last frame\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG, "Last frame\n");
res=0;
ast_frfree(f);
break;
}
} else {
- ast_log(LOG_DEBUG, "No more waveform\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG, "No more waveform\n");
res = 0;
}
}
@@ -367,29 +370,34 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
intstr = AST_DIGIT_ANY;
}
- ast_log(LOG_DEBUG, "Text passed to festival server : %s\n",(char *)data);
+ if (option_debug)
+ ast_log(LOG_DEBUG, "Text passed to festival server : %s\n",(char *)data);
/* Connect to local festival server */
- fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- if (fd < 0) {
+ if (fd < 0) {
ast_log(LOG_WARNING,"festival_client: can't get socket\n");
ast_config_destroy(cfg);
ast_module_user_remove(u);
- return -1;
+ return -1;
}
- memset(&serv_addr, 0, sizeof(serv_addr));
- if ((serv_addr.sin_addr.s_addr = inet_addr(host)) == -1) {
- /* its a name rather than an ipnum */
- serverhost = ast_gethostbyname(host, &ahp);
- if (serverhost == (struct hostent *)0) {
- ast_log(LOG_WARNING,"festival_client: gethostbyname failed\n");
+
+ memset(&serv_addr, 0, sizeof(serv_addr));
+
+ if ((serv_addr.sin_addr.s_addr = inet_addr(host)) == -1) {
+ /* its a name rather than an ipnum */
+ serverhost = ast_gethostbyname(host, &ahp);
+
+ if (serverhost == (struct hostent *)0) {
+ ast_log(LOG_WARNING,"festival_client: gethostbyname failed\n");
ast_config_destroy(cfg);
ast_module_user_remove(u);
- return -1;
- }
- memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length);
- }
+ return -1;
+ }
+ memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length);
+ }
+
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(port);
@@ -422,17 +430,21 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
if (fdesc!=-1) {
writecache=1;
strln=strlen((char *)data);
- ast_log(LOG_DEBUG,"line length : %d\n",strln);
+ if (option_debug)
+ ast_log(LOG_DEBUG,"line length : %d\n",strln);
write(fdesc,&strln,sizeof(int));
write(fdesc,data,strln);
seekpos=lseek(fdesc,0,SEEK_CUR);
- ast_log(LOG_DEBUG,"Seek position : %d\n",seekpos);
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Seek position : %d\n",seekpos);
}
} else {
read(fdesc,&strln,sizeof(int));
- ast_log(LOG_DEBUG,"Cache file exists, strln=%d, strlen=%d\n",strln,(int)strlen((char *)data));
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Cache file exists, strln=%d, strlen=%d\n",strln,(int)strlen((char *)data));
if (strlen((char *)data)==strln) {
- ast_log(LOG_DEBUG,"Size OK\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Size OK\n");
read(fdesc,&bigstring,strln);
bigstring[strln] = 0;
if (strcmp(bigstring,data)==0) {
@@ -449,10 +461,12 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
if (readcache==1) {
close(fd);
fd=fdesc;
- ast_log(LOG_DEBUG,"Reading from cache...\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Reading from cache...\n");
} else {
- ast_log(LOG_DEBUG,"Passing text to festival...\n");
- fs=fdopen(dup(fd),"wb");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Passing text to festival...\n");
+ fs=fdopen(dup(fd),"wb");
fprintf(fs,festivalcommand,(char *)data);
fflush(fs);
fclose(fs);
@@ -460,7 +474,8 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
/* Write to cache and then pass it down */
if (writecache==1) {
- ast_log(LOG_DEBUG,"Writing result to cache...\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Writing result to cache...\n");
while ((strln=read(fd,buffer,16384))!=0) {
write(fdesc,buffer,strln);
}
@@ -470,7 +485,8 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
lseek(fd,seekpos,SEEK_SET);
}
- ast_log(LOG_DEBUG,"Passing data to channel...\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Passing data to channel...\n");
/* Read back info from server */
/* This assumes only one waveform will come back, also LP is unlikely */
@@ -495,14 +511,16 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
}
ack[3] = '\0';
if (strcmp(ack,"WV\n") == 0) { /* receive a waveform */
- ast_log(LOG_DEBUG,"Festival WV command\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Festival WV command\n");
waveform = socket_receive_file_to_buff(fd,&filesize);
res = send_waveform_to_channel(chan,waveform,filesize, intstr);
free(waveform);
break;
}
else if (strcmp(ack,"LP\n") == 0) { /* receive an s-expr */
- ast_log(LOG_DEBUG,"Festival LP command\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG,"Festival LP command\n");
waveform = socket_receive_file_to_buff(fd,&filesize);
waveform[filesize]='\0';
ast_log(LOG_WARNING,"Festival returned LP : %s\n",waveform);