|
|
@ -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))
|
|
|
|