mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
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.
This commit is contained in:
parent
c6bdc78bef
commit
4da25acb0a
@ -421,15 +421,38 @@ sk_next(sock *s)
|
||||
return SKIP_BACK(sock, n, s->n.next);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
static void
|
||||
sk_free_bufs(sock *s)
|
||||
{
|
||||
if (s->rbuf_alloc)
|
||||
{
|
||||
xfree(s->rbuf_alloc);
|
||||
s->rbuf = s->rbuf_alloc = NULL;
|
||||
}
|
||||
if (s->tbuf_alloc)
|
||||
{
|
||||
xfree(s->tbuf_alloc);
|
||||
s->tbuf = s->tbuf_alloc = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
sk_free(resource *r)
|
||||
{
|
||||
sock *s = (sock *) r;
|
||||
|
||||
if (s->rbuf_alloc)
|
||||
xfree(s->rbuf_alloc);
|
||||
if (s->tbuf_alloc)
|
||||
xfree(s->tbuf_alloc);
|
||||
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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user