aboutsummaryrefslogtreecommitdiffstats
path: root/libglouglou/sendbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'libglouglou/sendbuf.c')
-rw-r--r--libglouglou/sendbuf.c140
1 files changed, 70 insertions, 70 deletions
diff --git a/libglouglou/sendbuf.c b/libglouglou/sendbuf.c
index 4e83294..47c4fd1 100644
--- a/libglouglou/sendbuf.c
+++ b/libglouglou/sendbuf.c
@@ -14,45 +14,45 @@ static void cb_timer(evutil_socket_t, short, void *);
*/
struct sendbuf *
sendbuf_new(struct event_base *ev_base, int buffer_size, int msec_max,
- int (*send_func)(void *, int, void *), void *usrdata)
+ int (*send_func)(void *, int, void *), void *usrdata)
{
- struct sendbuf *sbuf = NULL;
- struct event *ev_timer;
-
- sbuf = calloc(1, sizeof(struct sendbuf));
- if (!sbuf)
- return NULL;
- sbuf->ev_base = ev_base;
- sbuf->msec_max = msec_max;
- sbuf->buffer_size = buffer_size;
- sbuf->send_func = send_func;
- sbuf->usrdata = usrdata;
- sbuf->buffer = malloc(sbuf->buffer_size);
- if (!sbuf->buffer)
- goto err;
-
- ev_timer = evtimer_new(ev_base, cb_timer, sbuf);
- sbuf->ev_timer = ev_timer;
- sbuf->ev_timer_tv.tv_usec = msec_max * 1000;
- evtimer_add(ev_timer, &sbuf->ev_timer_tv);
-
- return sbuf;
+ struct sendbuf *sbuf = NULL;
+ struct event *ev_timer;
+
+ sbuf = calloc(1, sizeof(struct sendbuf));
+ if (!sbuf)
+ return NULL;
+ sbuf->ev_base = ev_base;
+ sbuf->msec_max = msec_max;
+ sbuf->buffer_size = buffer_size;
+ sbuf->send_func = send_func;
+ sbuf->usrdata = usrdata;
+ sbuf->buffer = malloc(sbuf->buffer_size);
+ if (!sbuf->buffer)
+ goto err;
+
+ ev_timer = evtimer_new(ev_base, cb_timer, sbuf);
+ sbuf->ev_timer = ev_timer;
+ sbuf->ev_timer_tv.tv_usec = msec_max * 1000;
+ evtimer_add(ev_timer, &sbuf->ev_timer_tv);
+
+ return sbuf;
err:
- sendbuf_free(sbuf);
- return NULL;
+ sendbuf_free(sbuf);
+ return NULL;
}
void
sendbuf_free(struct sendbuf *sbuf)
{
- if (sbuf->ev_timer)
- event_del(sbuf->ev_timer);
- if (sbuf->buffer && sbuf->send_func)
- sendbuf_flush(sbuf);
- if (sbuf->buffer)
- free(sbuf->buffer);
- free(sbuf);
+ if (sbuf->ev_timer)
+ event_del(sbuf->ev_timer);
+ if (sbuf->buffer && sbuf->send_func)
+ sendbuf_flush(sbuf);
+ if (sbuf->buffer)
+ free(sbuf->buffer);
+ free(sbuf);
}
/*
@@ -63,14 +63,14 @@ sendbuf_free(struct sendbuf *sbuf)
int
sendbuf_append(struct sendbuf *sbuf, void *token, int size)
{
- if (sbuf->buffer_pos + size >= sbuf->buffer_size)
- if (sendbuf_flush(sbuf) == -1)
- return -1;
+ if (sbuf->buffer_pos + size >= sbuf->buffer_size)
+ if (sendbuf_flush(sbuf) == -1)
+ return -1;
- memcpy(sbuf->buffer + sbuf->buffer_pos, token, size);
- sbuf->buffer_pos = sbuf->buffer_pos + size;
+ memcpy(sbuf->buffer + sbuf->buffer_pos, token, size);
+ sbuf->buffer_pos = sbuf->buffer_pos + size;
- return size;
+ return size;
}
/*
@@ -81,16 +81,16 @@ sendbuf_append(struct sendbuf *sbuf, void *token, int size)
void *
sendbuf_gettoken(struct sendbuf *sbuf, int size)
{
- void *token;
+ void *token;
- if (sbuf->buffer_pos + size >= sbuf->buffer_size)
- if (sendbuf_flush(sbuf) == -1)
- return NULL;
+ if (sbuf->buffer_pos + size >= sbuf->buffer_size)
+ if (sendbuf_flush(sbuf) == -1)
+ return NULL;
- token = sbuf->buffer + sbuf->buffer_pos;
- sbuf->buffer_pos = sbuf->buffer_pos + size;
+ token = sbuf->buffer + sbuf->buffer_pos;
+ sbuf->buffer_pos = sbuf->buffer_pos + size;
- return token;
+ return token;
}
/*
@@ -102,28 +102,28 @@ sendbuf_gettoken(struct sendbuf *sbuf, int size)
int
sendbuf_flush(struct sendbuf *sbuf)
{
- int tosend, sent;
-
- if (sbuf->buffer_pos == 0)
- return 0;
-
- sbuf->flushing = 1;
-
- tosend = sbuf->buffer_pos - sbuf->flushing_pos;
- sent = sbuf->send_func(sbuf->buffer + sbuf->flushing_pos,
- tosend, sbuf->usrdata);
- if (sent == -1) {
- // XXX handle error
- return -1;
- } else if (sent < tosend) {
- sbuf->flushing_pos = sbuf->flushing_pos + sent;
- return -1;
- }
- sbuf->buffer_pos = 0;
-
- sbuf->flushing = 0;
- sbuf->flushing_pos = 0;
- return 0;
+ int tosend, sent;
+
+ if (sbuf->buffer_pos == 0)
+ return 0;
+
+ sbuf->flushing = 1;
+
+ tosend = sbuf->buffer_pos - sbuf->flushing_pos;
+ sent = sbuf->send_func(sbuf->buffer + sbuf->flushing_pos,
+ tosend, sbuf->usrdata);
+ if (sent == -1) {
+ // XXX handle error
+ return -1;
+ } else if (sent < tosend) {
+ sbuf->flushing_pos = sbuf->flushing_pos + sent;
+ return -1;
+ }
+ sbuf->buffer_pos = 0;
+
+ sbuf->flushing = 0;
+ sbuf->flushing_pos = 0;
+ return 0;
}
@@ -134,9 +134,9 @@ sendbuf_flush(struct sendbuf *sbuf)
static void
cb_timer(evutil_socket_t fd, short what, void *arg)
{
- struct sendbuf *sbuf;
+ struct sendbuf *sbuf;
- sbuf = arg;
- sendbuf_flush(sbuf);
- evtimer_add(sbuf->ev_timer, &sbuf->ev_timer_tv);
+ sbuf = arg;
+ sendbuf_flush(sbuf);
+ evtimer_add(sbuf->ev_timer, &sbuf->ev_timer_tv);
}