Module: kamailio
Branch: master
Commit: 29c96974fe80b1f19200314231f961fbf2689673
URL:
https://github.com/kamailio/kamailio/commit/29c96974fe80b1f19200314231f961f…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2016-11-02T15:37:50+01:00
mi_fifo: close reply stream in case of continuing due to no response
---
Modified: modules/mi_fifo/fifo_fnc.c
---
Diff:
https://github.com/kamailio/kamailio/commit/29c96974fe80b1f19200314231f961f…
Patch:
https://github.com/kamailio/kamailio/commit/29c96974fe80b1f19200314231f961f…
---
diff --git a/modules/mi_fifo/fifo_fnc.c b/modules/mi_fifo/fifo_fnc.c
index eaa6cb7..aa0df20 100644
--- a/modules/mi_fifo/fifo_fnc.c
+++ b/modules/mi_fifo/fifo_fnc.c
@@ -407,13 +407,17 @@ void mi_fifo_server(FILE *fifo_stream)
int line_len;
char *file_sep, *command, *file;
struct mi_cmd *f;
- FILE *reply_stream;
+ FILE *reply_stream = NULL;
while(1) {
/* update the local config framework structures */
cfg_update();
- reply_stream = NULL;
+
+ if(reply_stream) {
+ fclose(reply_stream);
+ reply_stream = NULL;
+ }
/* commands must look this way ':<command>:[filename]' */
if (mi_read_line(mi_buf,MAX_MI_FIFO_BUFFER,fifo_stream, &line_len)) {
@@ -428,7 +432,7 @@ void mi_fifo_server(FILE *fifo_stream)
line_len--;
mi_buf[line_len]=0;
} else break;
- }
+ }
if (line_len==0) {
LM_DBG("fifo command empty\n");
@@ -525,6 +529,7 @@ void mi_fifo_server(FILE *fifo_stream)
free_async_handler(hdl);
/* close reply fifo */
fclose(reply_stream);
+ reply_stream = NULL;
/* destroy request tree */
if (mi_cmd)
free_mi_tree( mi_cmd );
@@ -542,9 +547,11 @@ void mi_fifo_server(FILE *fifo_stream)
consume3:
free_async_handler(hdl);
- if (reply_stream)
consume2:
- fclose(reply_stream);
+ if (reply_stream) {
+ fclose(reply_stream);
+ reply_stream = NULL;
+ }
consume1:
mi_do_consume();
}