Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-10-19 20:20:03 +0400
committerFelix Fietkau <nbd@openwrt.org>2013-10-19 20:20:03 +0400
commit734d28eb1a46358743cf8837c91e5d46695c3b91 (patch)
treee16c35d6b97c4802eb989ab94e20288a6e2e6aba /ustream.c
parent458c3937bca9db8402e898227bdac07d36959fee (diff)
ustream: properly clear fields to fix ustream reuse
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'ustream.c')
-rw-r--r--ustream.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/ustream.c b/ustream.c
index fd43395..dfbee1a 100644
--- a/ustream.c
+++ b/ustream.c
@@ -94,9 +94,6 @@ void ustream_free(struct ustream *s)
uloop_timeout_cancel(&s->state_change);
ustream_free_buffers(&s->r);
ustream_free_buffers(&s->w);
- s->write_error = false;
- s->eof = false;
- s->read_blocked = 0;
}
static void ustream_state_change_cb(struct uloop_timeout *t)
@@ -131,6 +128,16 @@ void ustream_init_defaults(struct ustream *s)
#undef DEFAULT_SET
s->state_change.cb = ustream_state_change_cb;
+ s->write_error = false;
+ s->eof = false;
+ s->eof_write_done = false;
+ s->read_blocked = 0;
+
+ s->r.buffers = 0;
+ s->r.data_bytes = 0;
+
+ s->w.buffers = 0;
+ s->w.data_bytes = 0;
}
static bool ustream_should_move(struct ustream_buf_list *l, struct ustream_buf *buf, int len)