[asterisk-commits] jpeeler: branch jpeeler/externalivr-tcp r108403 - /team/jpeeler/externalivr-t...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Mar 13 13:33:48 CDT 2008
Author: jpeeler
Date: Thu Mar 13 13:33:47 2008
New Revision: 108403
URL: http://svn.digium.com/view/asterisk?view=rev&rev=108403
Log:
changed socket connection to use file descriptors again
Modified:
team/jpeeler/externalivr-tcp/apps/app_externalivr.c
Modified: team/jpeeler/externalivr-tcp/apps/app_externalivr.c
URL: http://svn.digium.com/view/asterisk/team/jpeeler/externalivr-tcp/apps/app_externalivr.c?view=diff&rev=108403&r1=108402&r2=108403
==============================================================================
--- team/jpeeler/externalivr-tcp/apps/app_externalivr.c (original)
+++ team/jpeeler/externalivr-tcp/apps/app_externalivr.c Thu Mar 13 13:33:47 2008
@@ -88,7 +88,7 @@
static int eivr_comm(struct ast_channel *chan, struct ivr_localuser *u,
int eivr_events_fd, int eivr_commands_fd, int eivr_errors_fd,
- FILE *stream, const char *args);
+ const char *args);
int eivr_connect_socket(struct ast_channel *chan, const char *host, int port);
@@ -380,7 +380,7 @@
if (!ser) {
goto exit;
}
- res = eivr_comm(chan, u, 0, 0, 0, ser->f, pipe_delim_argbuf);
+ res = eivr_comm(chan, u, ser->fd, ser->fd, 0, pipe_delim_argbuf);
} else {
if (pipe(child_stdin)) {
@@ -438,7 +438,7 @@
child_stdout[1] = 0;
close(child_stderr[1]);
child_stderr[1] = 0;
- res = eivr_comm(chan, u, child_stdin[1], child_stdout[0], child_stderr[0], NULL, pipe_delim_argbuf);
+ res = eivr_comm(chan, u, child_stdin[1], child_stdout[0], child_stderr[0], pipe_delim_argbuf);
}
}
@@ -477,7 +477,7 @@
static int eivr_comm(struct ast_channel *chan, struct ivr_localuser *u,
int eivr_events_fd, int eivr_commands_fd, int eivr_errors_fd,
- FILE *stream, const char *args)
+ const char *args)
{
struct playlist_entry *entry;
struct ast_frame *f;
@@ -493,23 +493,19 @@
FILE *eivr_errors = NULL;
FILE *eivr_events = NULL;
- if (!stream) {
- if (!(eivr_events = fdopen(eivr_events_fd, "w"))) {
- ast_chan_log(LOG_WARNING, chan, "Could not open stream to send events\n");
- goto exit;
- }
- if (!(eivr_commands = fdopen(eivr_commands_fd, "r"))) {
- ast_chan_log(LOG_WARNING, chan, "Could not open stream to receive commands\n");
- goto exit;
- }
+ if (!(eivr_events = fdopen(eivr_events_fd, "w"))) {
+ ast_chan_log(LOG_WARNING, chan, "Could not open stream to send events\n");
+ goto exit;
+ }
+ if (!(eivr_commands = fdopen(eivr_commands_fd, "r"))) {
+ ast_chan_log(LOG_WARNING, chan, "Could not open stream to receive commands\n");
+ goto exit;
+ }
+ if(eivr_errors_fd) { /* if opening a socket connection, error stream will not be used */
if (!(eivr_errors = fdopen(eivr_errors_fd, "r"))) {
ast_chan_log(LOG_WARNING, chan, "Could not open stream to receive errors\n");
goto exit;
}
- } else {
- /* if opening a socket connection, error stream will not be used */
- eivr_events = stream;
- eivr_commands = stream;
}
setvbuf(eivr_events, NULL, _IONBF, 0);
@@ -693,16 +689,14 @@
exit:
- if (!stream) {
- if (eivr_events)
- fclose(eivr_events);
-
- if (eivr_commands)
- fclose(eivr_commands);
-
- if (eivr_errors)
- fclose(eivr_errors);
- }
+ if (eivr_events)
+ fclose(eivr_events);
+
+ if (eivr_commands)
+ fclose(eivr_commands);
+
+ if (eivr_errors)
+ fclose(eivr_errors);
return res;
More information about the asterisk-commits
mailing list