diff options
Diffstat (limited to 'libglouglou/sendbuf.c')
-rw-r--r-- | libglouglou/sendbuf.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/libglouglou/sendbuf.c b/libglouglou/sendbuf.c index 15a7d23..4e83294 100644 --- a/libglouglou/sendbuf.c +++ b/libglouglou/sendbuf.c @@ -3,7 +3,6 @@ #include "sendbuf.h" -static int flushbuf(struct sendbuf *); static void cb_timer(evutil_socket_t, short, void *); /* @@ -50,7 +49,7 @@ sendbuf_free(struct sendbuf *sbuf) if (sbuf->ev_timer) event_del(sbuf->ev_timer); if (sbuf->buffer && sbuf->send_func) - flushbuf(sbuf); + sendbuf_flush(sbuf); if (sbuf->buffer) free(sbuf->buffer); free(sbuf); @@ -65,7 +64,7 @@ int sendbuf_append(struct sendbuf *sbuf, void *token, int size) { if (sbuf->buffer_pos + size >= sbuf->buffer_size) - if (flushbuf(sbuf) == -1) + if (sendbuf_flush(sbuf) == -1) return -1; memcpy(sbuf->buffer + sbuf->buffer_pos, token, size); @@ -85,7 +84,7 @@ sendbuf_gettoken(struct sendbuf *sbuf, int size) void *token; if (sbuf->buffer_pos + size >= sbuf->buffer_size) - if (flushbuf(sbuf) == -1) + if (sendbuf_flush(sbuf) == -1) return NULL; token = sbuf->buffer + sbuf->buffer_pos; @@ -95,16 +94,13 @@ sendbuf_gettoken(struct sendbuf *sbuf, int size) } /* - * Private - */ - -/* + * Send buffer immediatly * Note that you can still add data to the buffer even if flushing is in * progress * returns 0 on success or -1 on error */ -static int -flushbuf(struct sendbuf *sbuf) +int +sendbuf_flush(struct sendbuf *sbuf) { int tosend, sent; @@ -130,12 +126,17 @@ flushbuf(struct sendbuf *sbuf) return 0; } + +/* + * Private + */ + static void cb_timer(evutil_socket_t fd, short what, void *arg) { struct sendbuf *sbuf; sbuf = arg; - flushbuf(sbuf); + sendbuf_flush(sbuf); evtimer_add(sbuf->ev_timer, &sbuf->ev_timer_tv); } |