mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 04:26:12 +00:00
lib: add stream_set_endp()
* lib/stream.[ch]: - Add stream_set_endp(). This can be used to trim data (for example, padding) at the end of a stream. - Fix swapped 'getp' and 'endp' parameters in STREAM_WARN_OFFSETS. From: Subbaiah Venkata <svenkata@google.com> Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org> Signed-off-by: David Lamparter <equinox@diac24.net>
This commit is contained in:
parent
bed930fd70
commit
d531050b7b
20
lib/stream.c
20
lib/stream.c
@ -52,7 +52,7 @@
|
||||
* using stream_put..._at() functions.
|
||||
*/
|
||||
#define STREAM_WARN_OFFSETS(S) \
|
||||
zlog_warn ("&(struct stream): %p, size: %lu, endp: %lu, getp: %lu\n", \
|
||||
zlog_warn ("&(struct stream): %p, size: %lu, getp: %lu, endp: %lu\n", \
|
||||
(S), \
|
||||
(unsigned long) (S)->size, \
|
||||
(unsigned long) (S)->getp, \
|
||||
@ -214,6 +214,20 @@ stream_set_getp (struct stream *s, size_t pos)
|
||||
s->getp = pos;
|
||||
}
|
||||
|
||||
void
|
||||
stream_set_endp (struct stream *s, size_t pos)
|
||||
{
|
||||
STREAM_VERIFY_SANE(s);
|
||||
|
||||
if (!GETP_VALID (s, pos))
|
||||
{
|
||||
STREAM_BOUND_WARN (s, "set endp");
|
||||
pos = s->endp;
|
||||
}
|
||||
|
||||
s->endp = pos;
|
||||
}
|
||||
|
||||
/* Forward pointer. */
|
||||
void
|
||||
stream_forward_getp (struct stream *s, size_t size)
|
||||
@ -934,9 +948,9 @@ stream_fifo_pop (struct stream_fifo *fifo)
|
||||
|
||||
if (fifo->head == NULL)
|
||||
fifo->tail = NULL;
|
||||
}
|
||||
|
||||
fifo->count--;
|
||||
fifo->count--;
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
@ -146,6 +146,7 @@ extern size_t stream_get_size (struct stream *);
|
||||
extern u_char *stream_get_data (struct stream *);
|
||||
|
||||
extern void stream_set_getp (struct stream *, size_t);
|
||||
extern void stream_set_endp (struct stream *, size_t);
|
||||
extern void stream_forward_getp (struct stream *, size_t);
|
||||
extern void stream_forward_endp (struct stream *, size_t);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user