Commit 4da25acb authored by Martin Mareš's avatar Martin Mareš

Cleaned up sk_reallocate() and friends.

Also, removed the `if (s)' test, because I believe that as the whole
socket interface doesn't accent NULL pointers, sk_reallocate() shouldn't
be the only exception.
parent c6bdc78b
......@@ -422,14 +422,37 @@ sk_next(sock *s)
}
static void
sk_free(resource *r)
sk_alloc_bufs(sock *s)
{
sock *s = (sock *) r;
if (!s->rbuf && s->rbsize)
s->rbuf = s->rbuf_alloc = xmalloc(s->rbsize);
s->rpos = s->rbuf;
if (!s->tbuf && s->tbsize)
s->tbuf = s->tbuf_alloc = xmalloc(s->tbsize);
s->tpos = s->ttx = s->tbuf;
}
static void
sk_free_bufs(sock *s)
{
if (s->rbuf_alloc)
xfree(s->rbuf_alloc);
{
xfree(s->rbuf_alloc);
s->rbuf = s->rbuf_alloc = NULL;
}
if (s->tbuf_alloc)
xfree(s->tbuf_alloc);
{
xfree(s->tbuf_alloc);
s->tbuf = s->tbuf_alloc = NULL;
}
}
static void
sk_free(resource *r)
{
sock *s = (sock *) r;
sk_free_bufs(s);
if (s->fd >= 0)
{
close(s->fd);
......@@ -440,6 +463,13 @@ sk_free(resource *r)
}
}
void
sk_reallocate(sock *s)
{
sk_free_bufs(s);
sk_alloc_bufs(s);
}
static void
sk_dump(resource *r)
{
......@@ -588,31 +618,6 @@ bad:
return err;
}
static void
sk_alloc_bufs(sock *s)
{
if (!s->rbuf && s->rbsize)
s->rbuf = s->rbuf_alloc = xmalloc(s->rbsize);
s->rpos = s->rbuf;
if (!s->tbuf && s->tbsize)
s->tbuf = s->tbuf_alloc = xmalloc(s->tbsize);
s->tpos = s->ttx = s->tbuf;
}
void
sk_reallocate(sock *s)
{
if(!s) return;
if (s->rbuf_alloc)
xfree(s->rbuf_alloc);
s->rbuf = NULL;
if (s->tbuf_alloc)
xfree(s->tbuf_alloc);
s->tbuf = NULL;
sk_alloc_bufs(s);
}
static void
sk_tcp_connected(sock *s)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment