summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_lsa.h
diff options
context:
space:
mode:
authorVincent JARDIN <vincent.jardin@6wind.com>2017-10-08 18:20:12 +0200
committerVincent JARDIN <vincent.jardin@6wind.com>2017-10-08 23:06:57 +0200
commit3981b5c7f3232086aecd35e56bbeb4b5116c8469 (patch)
treead2a5bb75b4b5b831641a343cd34a99a534a4707 /ospf6d/ospf6_lsa.h
parentrfapi: avoid calling NULL() function. (diff)
downloadfrr-3981b5c7f3232086aecd35e56bbeb4b5116c8469.tar.xz
frr-3981b5c7f3232086aecd35e56bbeb4b5116c8469.zip
ospf6d: fix clang warning, NULL() calls
Avoid show() methods from being a NULL function when it is called. Meanwhile, I did const'ify the handlers so only its debug field can be changed. Signed-off-by: Vincent Jardin <vincent.jardin@6wind.com>
Diffstat (limited to 'ospf6d/ospf6_lsa.h')
-rw-r--r--ospf6d/ospf6_lsa.h29
1 files changed, 18 insertions, 11 deletions
diff --git a/ospf6d/ospf6_lsa.h b/ospf6d/ospf6_lsa.h
index ef63429fd..8b6303d23 100644
--- a/ospf6d/ospf6_lsa.h
+++ b/ospf6d/ospf6_lsa.h
@@ -137,18 +137,25 @@ struct ospf6_lsa {
#define OSPF6_LSA_SEQWRAPPED 0x20
struct ospf6_lsa_handler {
- u_int16_t type; /* host byte order */
- const char *name;
- const char *short_name;
- int (*show)(struct vty *, struct ospf6_lsa *);
- char *(*get_prefix_str)(struct ospf6_lsa *, char *buf, int buflen,
- int pos);
+ const struct {
+ u_int16_t type; /* host byte order */
+ const char *name;
+ const char *short_name;
+ int (*show)(struct vty *, struct ospf6_lsa *);
+ char *(*get_prefix_str)(struct ospf6_lsa *, char *buf, int buflen,
+ int pos);
+ } s;
+#define lh_type s.type
+#define lh_name s.name
+#define lh_short_name s.short_name
+#define lh_show s.show
+#define lh_get_prefix_str s.get_prefix_str
u_char debug;
+#define lh_debug debug
};
-extern struct ospf6_lsa_handler unknown_handler;
-#define OSPF6_LSA_IS_KNOWN(type) \
- (ospf6_get_lsa_handler(type) != &unknown_handler ? 1 : 0)
+#define OSPF6_LSA_IS_KNOWN(t) \
+ (ospf6_get_lsa_handler(t).lh_type != OSPF6_LSTYPE_UNKNOWN ? 1 : 0)
extern vector ospf6_lsa_handler_vector;
@@ -237,8 +244,8 @@ extern int ospf6_lsa_checksum_valid(struct ospf6_lsa_header *);
extern int ospf6_lsa_prohibited_duration(u_int16_t type, u_int32_t id,
u_int32_t adv_router, void *scope);
-extern void ospf6_install_lsa_handler(struct ospf6_lsa_handler *handler);
-extern struct ospf6_lsa_handler *ospf6_get_lsa_handler(u_int16_t type);
+extern void ospf6_install_lsa_handler(const struct ospf6_lsa_handler *handler);
+extern const struct ospf6_lsa_handler *ospf6_get_lsa_handler(u_int16_t type);
extern void ospf6_lsa_init(void);
extern void ospf6_lsa_terminate(void);