uint32_t source,dest;
struct iphdr *iph;
char errmsgbuf[50];
+ const char *sourcedesc=client?client->name:"host";
BUF_ASSERT_USED(buf);
+
if (!netlink_check(st,buf,errmsgbuf,sizeof(errmsgbuf))) {
Message(M_WARNING,"%s: bad IP packet from %s: %s\n",
- st->name,client?client->name:"host",
+ st->name,sourcedesc,
errmsgbuf);
BUF_FREE(buf);
return;
int outputchr;
enum { OUTPUT_END = 256, OUTPUT_NOTHING = 257 };
+ if (!st->buff->size)
+ buffer_init(st->buff,calculate_max_start_pad());
+
if (st->pending_esc) {
st->pending_esc=False;
switch(buf[i]) {
if (st->ignoring_packet) {
if (outputchr == OUTPUT_END) {
st->ignoring_packet=False;
- buffer_init(st->buff,calculate_max_start_pad());
+ st->buff->size=0;
}
} else {
if (outputchr == OUTPUT_END) {
st->netlink_to_tunnel(&st->nl,st->buff);
BUF_ALLOC(st->buff,"userv_afterpoll");
}
- buffer_init(st->buff,calculate_max_start_pad());
+ st->buff->size=0;
} else if (outputchr != OUTPUT_NOTHING) {
if (st->buff->size < st->buff->len) {
buf_append_uint8(st->buff,outputchr);