summaryrefslogtreecommitdiffstats
path: root/proto/rip
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-05-10 15:05:39 +0200
committerPavel Machek <pavel@ucw.cz>2000-05-10 15:05:39 +0200
commit30aa02d70df2275d2289d9b736d879b9951bcaee (patch)
tree137d9d11aada41d405ba1fb40827450bbac22135 /proto/rip
parentb8524e9be4f1d15f4cd2cd365d7842eff8d5a499 (diff)
downloadbird-30aa02d70df2275d2289d9b736d879b9951bcaee.tar
bird-30aa02d70df2275d2289d9b736d879b9951bcaee.zip
rip_reconfigure done right
Diffstat (limited to 'proto/rip')
-rw-r--r--proto/rip/rip.c7
-rw-r--r--proto/rip/rip.h2
2 files changed, 5 insertions, 4 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 17d0d5a..f69127d 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -868,10 +868,11 @@ static int
rip_reconfigure(struct proto *p, struct proto_config *c)
{
struct rip_config *new = (struct rip_config *) c;
+ int generic = sizeof(struct proto_config) + sizeof(list);
- return !memcmp(((byte *) P_CF) + sizeof(struct proto_config),
- ((byte *) new) + sizeof(struct proto_config),
- sizeof(struct rip_proto_config) - sizeof(struct proto_config));
+ return !memcmp(((byte *) P_CF) + generic,
+ ((byte *) new) + generic,
+ sizeof(struct rip_proto_config) - generic);
}
struct protocol proto_rip = {
diff --git a/proto/rip/rip.h b/proto/rip/rip.h
index 7c7b000..cbddeaf 100644
--- a/proto/rip/rip.h
+++ b/proto/rip/rip.h
@@ -120,7 +120,7 @@ struct rip_patt {
struct rip_proto_config {
struct proto_config c;
- list iface_list; /* Patterns configured */
+ list iface_list; /* Patterns configured -- keep it first; see rip_reconfigure why */
int infinity; /* User configurable data */
int port;