chiark
/
gitweb
/
~ian
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
slip: Buffer management (max_start_pad) fixes
[secnet.git]
/
netlink.c
diff --git
a/netlink.c
b/netlink.c
index 486df6fd1515f24ce4204fb3229a4ec22ac8f925..bc707579c60ea3d1fe8474198edc0f1df4e6de13 100644
(file)
--- a/
netlink.c
+++ b/
netlink.c
@@
-106,9
+106,6
@@
their use.
#include "netlink.h"
#include "process.h"
#include "netlink.h"
#include "process.h"
-#define OPT_SOFTROUTE 1
-#define OPT_ALLOWROUTE 2
-
#define ICMP_TYPE_ECHO_REPLY 0
#define ICMP_TYPE_UNREACHABLE 3
#define ICMP_TYPE_ECHO_REPLY 0
#define ICMP_TYPE_UNREACHABLE 3
@@
-241,7
+238,7
@@
static struct icmphdr *netlink_icmp_tmpl(struct netlink *st,
struct icmphdr *h;
BUF_ALLOC(&st->icmp,"netlink_icmp_tmpl");
struct icmphdr *h;
BUF_ALLOC(&st->icmp,"netlink_icmp_tmpl");
- buffer_init(&st->icmp,
st->max_start_pad
);
+ buffer_init(&st->icmp,
calculate_max_start_pad()
);
h=buf_append(&st->icmp,sizeof(*h));
h->iph.version=4;
h=buf_append(&st->icmp,sizeof(*h));
h->iph.version=4;
@@
-606,11
+603,13
@@
static void netlink_incoming(struct netlink *st, struct netlink_client *client,
uint32_t source,dest;
struct iphdr *iph;
char errmsgbuf[50];
uint32_t source,dest;
struct iphdr *iph;
char errmsgbuf[50];
+ const char *sourcedesc=client?client->name:"host";
BUF_ASSERT_USED(buf);
BUF_ASSERT_USED(buf);
+
if (!netlink_check(st,buf,errmsgbuf,sizeof(errmsgbuf))) {
Message(M_WARNING,"%s: bad IP packet from %s: %s\n",
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;
errmsgbuf);
BUF_FREE(buf);
return;
@@
-811,14
+810,10
@@
static void netlink_inst_set_mtu(void *sst, int32_t new_mtu)
}
static void netlink_inst_reg(void *sst, netlink_deliver_fn *deliver,
}
static void netlink_inst_reg(void *sst, netlink_deliver_fn *deliver,
- void *dst, int32_t max_start_pad,
- int32_t max_end_pad)
+ void *dst)
{
struct netlink_client *c=sst;
{
struct netlink_client *c=sst;
- struct netlink *st=c->nst;
- if (max_start_pad > st->max_start_pad) st->max_start_pad=max_start_pad;
- if (max_end_pad > st->max_end_pad) st->max_end_pad=max_end_pad;
c->deliver=deliver;
c->dst=dst;
}
c->deliver=deliver;
c->dst=dst;
}
@@
-946,8
+941,6
@@
netlink_deliver_fn *netlink_init(struct netlink *st,
st->cl.type=CL_PURE;
st->cl.apply=netlink_inst_apply;
st->cl.interface=st;
st->cl.type=CL_PURE;
st->cl.apply=netlink_inst_apply;
st->cl.interface=st;
- st->max_start_pad=0;
- st->max_end_pad=0;
st->clients=NULL;
st->routes=NULL;
st->n_clients=0;
st->clients=NULL;
st->routes=NULL;
st->n_clients=0;