[asterisk-commits] tilghman: trunk r116298 - in /trunk: ./ apps/app_externalivr.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed May 14 11:53:23 CDT 2008
Author: tilghman
Date: Wed May 14 11:53:23 2008
New Revision: 116298
URL: http://svn.digium.com/view/asterisk?view=rev&rev=116298
Log:
Merged revisions 116296 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r116296 | tilghman | 2008-05-14 11:46:48 -0500 (Wed, 14 May 2008) | 2 lines
Detect another way for a connection to have gone away.
(closes issue #12618)
Reported by: ctooley
Patches:
1.4-externalivr-test_fd.diff uploaded by ctooley (license 136)
trunk-externalivr-test_fd.diff uploaded by ctooley (license 136)
........
Modified:
trunk/ (props changed)
trunk/apps/app_externalivr.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/apps/app_externalivr.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_externalivr.c?view=diff&rev=116298&r1=116297&r2=116298
==============================================================================
--- trunk/apps/app_externalivr.c (original)
+++ trunk/apps/app_externalivr.c Wed May 14 11:53:23 2008
@@ -481,6 +481,7 @@
struct ast_channel *rchan;
char *command;
int res = -1;
+ int test_available_fd = -1;
FILE *eivr_commands = NULL;
FILE *eivr_errors = NULL;
@@ -500,6 +501,8 @@
goto exit;
}
}
+
+ test_available_fd = open("/dev/null", O_RDONLY);
setvbuf(eivr_events, NULL, _IONBF, 0);
setvbuf(eivr_commands, NULL, _IONBF, 0);
@@ -574,7 +577,7 @@
} else if (ready_fd == eivr_commands_fd) {
char input[1024];
- if (exception || feof(eivr_commands)) {
+ if (exception || (dup2(eivr_commands_fd, test_available_fd) == -1) || feof(eivr_commands)) {
ast_chan_log(LOG_WARNING, chan, "Child process went away\n");
res = -1;
break;
@@ -685,6 +688,10 @@
exit:
+ if (test_available_fd > -1) {
+ close(test_available_fd);
+ }
+
if (eivr_events)
fclose(eivr_events);
More information about the asterisk-commits
mailing list