Merged revisions 10021,10108 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r10108 | kpfleming | 2006-02-14 18:36:57 -0600 (Tue, 14 Feb 2006) | 2 lines

ensure that FastAGI launcher can handle system call interruption (issue #6449)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10109 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Kevin P. Fleming 20 years ago
parent 42314e6160
commit e6ca0f1fab

@ -1,7 +1,7 @@
/* /*
* Asterisk -- An open source telephony toolkit. * Asterisk -- An open source telephony toolkit.
* *
* Copyright (C) 1999 - 2005, Digium, Inc. * Copyright (C) 1999 - 2006, Digium, Inc.
* *
* Mark Spencer <markster@digium.com> * Mark Spencer <markster@digium.com>
* *
@ -190,18 +190,24 @@ static int launch_netscript(char *agiurl, char *argv[], int *fds, int *efd, int
close(s); close(s);
return -1; return -1;
} }
pfds[0].fd = s; pfds[0].fd = s;
pfds[0].events = POLLOUT; pfds[0].events = POLLOUT;
if (poll(pfds, 1, MAX_AGI_CONNECT) != 1) { while (poll(pfds, 1, MAX_AGI_CONNECT) != 1) {
ast_log(LOG_WARNING, "Connect to '%s' failed!\n", agiurl); if (errno != EINTR) {
ast_log(LOG_WARNING, "Connect to '%s' failed: %s\n", agiurl, strerror(errno));
close(s); close(s);
return -1; return -1;
} }
if (write(s, "agi_network: yes\n", strlen("agi_network: yes\n")) < 0) { }
while (write(s, "agi_network: yes\n", strlen("agi_network: yes\n")) < 0) {
if (errno != EINTR) {
ast_log(LOG_WARNING, "Connect to '%s' failed: %s\n", agiurl, strerror(errno)); ast_log(LOG_WARNING, "Connect to '%s' failed: %s\n", agiurl, strerror(errno));
close(s); close(s);
return -1; return -1;
} }
}
/* If we have a script parameter, relay it to the fastagi server */ /* If we have a script parameter, relay it to the fastagi server */
if (!ast_strlen_zero(script)) if (!ast_strlen_zero(script))

Loading…
Cancel
Save