diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-10-19 20:20:03 +0400 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-10-19 20:20:03 +0400 |
commit | 734d28eb1a46358743cf8837c91e5d46695c3b91 (patch) | |
tree | e16c35d6b97c4802eb989ab94e20288a6e2e6aba /ustream.c | |
parent | 458c3937bca9db8402e898227bdac07d36959fee (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.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -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) |