diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-16 16:00:04 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-10-16 16:00:04 +0000 |
commit | 0b59f08c8d83fa653296ca2b90262cd2c8386b85 (patch) | |
tree | 7c01934d1cd3c76fe25956e66922073c1c24b8c6 /apps/app_festival.c | |
parent | 1f018b50baefeb90b3dc042b6f0c49d48206a1fd (diff) |
Oops it didn't make it in
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4018 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_festival.c')
-rwxr-xr-x | apps/app_festival.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/app_festival.c b/apps/app_festival.c index e7e0bd426..7b6f68634 100755 --- a/apps/app_festival.c +++ b/apps/app_festival.c @@ -305,9 +305,9 @@ static int festival_exec(struct ast_channel *chan, void *vdata) if (!(festivalcommand = ast_variable_retrieve(cfg, "general", "festivalcommand"))) { festivalcommand = "(tts_textasterisk \"%s\" 'file)(quit)\n"; } - ast_destroy(cfg); if (!vdata || ast_strlen_zero(vdata)) { ast_log(LOG_WARNING, "festival requires an argument (text)\n"); + ast_destroy(cfg); return -1; } strncpy(data, vdata, sizeof(data) - 1); @@ -325,6 +325,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) if (fd < 0) { ast_log(LOG_WARNING,"festival_client: can't get socket\n"); + ast_destroy(cfg); return -1; } memset(&serv_addr, 0, sizeof(serv_addr)); @@ -333,6 +334,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) serverhost = ast_gethostbyname(host, &ahp); if (serverhost == (struct hostent *)0) { ast_log(LOG_WARNING,"festival_client: gethostbyname failed\n"); + ast_destroy(cfg); return -1; } memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length); @@ -342,6 +344,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) if (connect(fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) != 0) { ast_log(LOG_WARNING,"festival_client: connect to server failed\n"); + ast_destroy(cfg); return -1; } @@ -444,6 +447,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) } } while (strcmp(ack,"OK\n") != 0); close(fd); + ast_destroy(cfg); LOCAL_USER_REMOVE(u); return res; |