Module Name: src
Committed By: kefren
Date: Thu Jul 11 10:46:19 UTC 2013
Modified Files:
src/usr.sbin/ldpd: conffile.c conffile.h label.c label.h mpls_routes.c
mpls_routes.h tlv_stack.c tlv_stack.h
Log Message:
sprinkle more const
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/ldpd/conffile.c \
src/usr.sbin/ldpd/label.c
cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/ldpd/conffile.h
cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/ldpd/label.h \
src/usr.sbin/ldpd/mpls_routes.h src/usr.sbin/ldpd/tlv_stack.h
cvs rdiff -u -r1.11 -r1.12 src/usr.sbin/ldpd/mpls_routes.c
cvs rdiff -u -r1.7 -r1.8 src/usr.sbin/ldpd/tlv_stack.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/ldpd/conffile.c
diff -u src/usr.sbin/ldpd/conffile.c:1.5 src/usr.sbin/ldpd/conffile.c:1.6
--- src/usr.sbin/ldpd/conffile.c:1.5 Sat Jan 26 21:07:49 2013
+++ src/usr.sbin/ldpd/conffile.c Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: conffile.c,v 1.5 2013/01/26 21:07:49 kefren Exp $ */
+/* $NetBSD: conffile.c,v 1.6 2013/07/11 10:46:19 kefren Exp $ */
/*
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@ struct conf_func main_commands[] = {
* Parses config file
*/
int
-conf_parsefile(char *fname)
+conf_parsefile(const char *fname)
{
int i;
char buf[LINEMAXSIZE + 1];
Index: src/usr.sbin/ldpd/label.c
diff -u src/usr.sbin/ldpd/label.c:1.5 src/usr.sbin/ldpd/label.c:1.6
--- src/usr.sbin/ldpd/label.c:1.5 Thu Jul 11 05:45:23 2013
+++ src/usr.sbin/ldpd/label.c Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: label.c,v 1.5 2013/07/11 05:45:23 kefren Exp $ */
+/* $NetBSD: label.c,v 1.6 2013/07/11 10:46:19 kefren Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -53,9 +53,9 @@ label_init()
* if binding == 0 it receives a free one
*/
struct label *
-label_add(union sockunion * so_dest, union sockunion * so_pref,
- union sockunion * so_gate, uint32_t binding, struct ldp_peer * p,
- uint32_t label)
+label_add(const union sockunion * so_dest, const union sockunion * so_pref,
+ const union sockunion * so_gate, uint32_t binding,
+ const struct ldp_peer * p, uint32_t label)
{
struct label *l;
char spreftmp[INET_ADDRSTRLEN];
@@ -157,7 +157,7 @@ label_reattach_route(struct label *l, in
* Get a label by dst and pref
*/
struct label*
-label_get(union sockunion *sodest, union sockunion *sopref)
+label_get(const union sockunion *sodest, const union sockunion *sopref)
{
struct label *l;
@@ -189,7 +189,7 @@ label_reattach_all_peer_labels(const str
* and delete them
*/
void
-del_all_peer_labels(struct ldp_peer * p, int readd)
+del_all_peer_labels(const struct ldp_peer * p, int readd)
{
struct label *l, *lnext;
Index: src/usr.sbin/ldpd/conffile.h
diff -u src/usr.sbin/ldpd/conffile.h:1.2 src/usr.sbin/ldpd/conffile.h:1.3
--- src/usr.sbin/ldpd/conffile.h:1.2 Sat Jan 26 21:07:49 2013
+++ src/usr.sbin/ldpd/conffile.h Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: conffile.h,v 1.2 2013/01/26 21:07:49 kefren Exp $ */
+/* $NetBSD: conffile.h,v 1.3 2013/07/11 10:46:19 kefren Exp $ */
/*
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -57,6 +57,6 @@ struct passive_if {
};
SLIST_HEAD(,passive_if) passifs_head;
-int conf_parsefile(char *fname);
+int conf_parsefile(const char *fname);
#endif
Index: src/usr.sbin/ldpd/label.h
diff -u src/usr.sbin/ldpd/label.h:1.3 src/usr.sbin/ldpd/label.h:1.4
--- src/usr.sbin/ldpd/label.h:1.3 Thu Jul 11 05:45:23 2013
+++ src/usr.sbin/ldpd/label.h Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: label.h,v 1.3 2013/07/11 05:45:23 kefren Exp $ */
+/* $NetBSD: label.h,v 1.4 2013/07/11 10:46:19 kefren Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -57,13 +57,14 @@ struct label {
SLIST_HEAD(,label) label_head;
void label_init(void);
-struct label * label_add(union sockunion *, union sockunion *,
- union sockunion *, uint32_t, struct ldp_peer *, uint32_t);
+struct label * label_add(const union sockunion *, const union sockunion *,
+ const union sockunion *, uint32_t, const struct ldp_peer *, uint32_t);
void label_del(struct label *);
-void del_all_peer_labels(struct ldp_peer*, int);
+void del_all_peer_labels(const struct ldp_peer*, int);
void label_reattach_all_peer_labels(const struct ldp_peer*, int);
void label_del_by_binding(uint32_t, int);
-struct label * label_get(union sockunion *sodest, union sockunion *sopref);
+struct label * label_get(const union sockunion *sodest,
+ const union sockunion *sopref);
struct label * label_get_by_prefix(const struct sockaddr *, int);
uint32_t get_free_local_label(void);
void change_local_label(struct label*, uint32_t);
Index: src/usr.sbin/ldpd/mpls_routes.h
diff -u src/usr.sbin/ldpd/mpls_routes.h:1.3 src/usr.sbin/ldpd/mpls_routes.h:1.4
--- src/usr.sbin/ldpd/mpls_routes.h:1.3 Sat Jan 26 17:29:55 2013
+++ src/usr.sbin/ldpd/mpls_routes.h Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mpls_routes.h,v 1.3 2013/01/26 17:29:55 kefren Exp $ */
+/* $NetBSD: mpls_routes.h,v 1.4 2013/07/11 10:46:19 kefren Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -63,17 +63,18 @@ union sockunion * make_inet_union(const
union sockunion * make_mpls_union(uint32_t);
union sockunion * make_mplsinet_union(uint16_t peer, uint32_t label,
struct in_addr *addr);
-uint8_t from_mask_to_cidr(char *);
+uint8_t from_mask_to_cidr(const char *);
void from_cidr_to_mask(uint8_t, char *);
int add_route(union sockunion *, union sockunion *, union sockunion *,
- union sockunion *, union sockunion *, int, int);
+ union sockunion *, union sockunion *, int, int);
int delete_route(union sockunion *, union sockunion *, int);
-int get_route(struct rt_msg *, union sockunion *, union sockunion *, int);
+int get_route(struct rt_msg *, const union sockunion *,
+ const union sockunion *, int);
int bind_current_routes(void);
int flush_mpls_routes(void);
int check_route(struct rt_msg *, uint);
-char* union_ntoa(union sockunion *);
-uint8_t from_union_to_cidr(union sockunion *);
+char* union_ntoa(const union sockunion *);
+uint8_t from_union_to_cidr(const union sockunion *);
union sockunion * from_cidr_to_union(uint8_t);
#endif /* !_MPLS_ROUTES_H_ */
Index: src/usr.sbin/ldpd/tlv_stack.h
diff -u src/usr.sbin/ldpd/tlv_stack.h:1.3 src/usr.sbin/ldpd/tlv_stack.h:1.4
--- src/usr.sbin/ldpd/tlv_stack.h:1.3 Thu Jul 11 05:45:23 2013
+++ src/usr.sbin/ldpd/tlv_stack.h Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: tlv_stack.h,v 1.3 2013/07/11 05:45:23 kefren Exp $ */
+/* $NetBSD: tlv_stack.h,v 1.4 2013/07/11 10:46:19 kefren Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -43,13 +43,14 @@ int map_label(struct ldp_peer *, struct
struct label_tlv *);
int withdraw_label(struct ldp_peer *, struct fec_tlv *);
void prepare_release(struct tlv *);
-void send_label_tlv(const struct ldp_peer *, struct sockaddr *, uint8_t,
- uint32_t, struct label_request_tlv *);
-void send_label_tlv_to_all(struct sockaddr *, uint8_t, uint32_t);
-void send_all_bindings(struct ldp_peer *);
-void send_withdraw_tlv(const struct ldp_peer *, struct sockaddr *, uint8_t);
-void send_withdraw_tlv_to_all(struct sockaddr *, uint8_t);
-int request_respond(const struct ldp_peer *, struct label_map_tlv *,
- struct fec_tlv *);
+void send_label_tlv(const struct ldp_peer *, const struct sockaddr *,
+ uint8_t, uint32_t, const struct label_request_tlv *);
+void send_label_tlv_to_all(const struct sockaddr *, uint8_t, uint32_t);
+void send_all_bindings(const struct ldp_peer *);
+void send_withdraw_tlv(const struct ldp_peer *, const struct sockaddr *,
+ uint8_t);
+void send_withdraw_tlv_to_all(const struct sockaddr *, uint8_t);
+int request_respond(const struct ldp_peer *, const struct label_map_tlv *,
+ const struct fec_tlv *);
#endif /* !_TLV_STACK_H_ */
Index: src/usr.sbin/ldpd/mpls_routes.c
diff -u src/usr.sbin/ldpd/mpls_routes.c:1.11 src/usr.sbin/ldpd/mpls_routes.c:1.12
--- src/usr.sbin/ldpd/mpls_routes.c:1.11 Thu Jul 11 09:11:35 2013
+++ src/usr.sbin/ldpd/mpls_routes.c Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mpls_routes.c,v 1.11 2013/07/11 09:11:35 kefren Exp $ */
+/* $NetBSD: mpls_routes.c,v 1.12 2013/07/11 10:46:19 kefren Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@ int replay_index = 0;
static int read_route_socket(char *, int);
void mask_addr(union sockunion *);
-int compare_sockunion(union sockunion *, union sockunion *);
+int compare_sockunion(const union sockunion *, const union sockunion *);
char * mpls_ntoa(union mpls_shim);
extern struct sockaddr mplssockaddr;
@@ -196,8 +196,8 @@ make_mpls_union(uint32_t label)
}
int
-compare_sockunion(union sockunion * __restrict a,
- union sockunion * __restrict b)
+compare_sockunion(const union sockunion * __restrict a,
+ const union sockunion * __restrict b)
{
if (a->sa.sa_len != b->sa.sa_len)
return 1;
@@ -227,7 +227,7 @@ from_cidr_to_union(uint8_t prefixlen)
}
uint8_t
-from_mask_to_cidr(char *mask)
+from_mask_to_cidr(const char *mask)
{
struct in_addr addr;
uint8_t plen = 0;
@@ -239,9 +239,9 @@ from_mask_to_cidr(char *mask)
}
uint8_t
-from_union_to_cidr(union sockunion *so_pref)
+from_union_to_cidr(const union sockunion *so_pref)
{
- struct sockaddr_in *sin = (struct sockaddr_in*)so_pref;
+ const struct sockaddr_in *sin = (const struct sockaddr_in*) so_pref;
uint32_t a;
uint8_t r;
@@ -265,7 +265,7 @@ from_cidr_to_mask(uint8_t prefixlen, cha
}
char *
-mpls_ntoa(union mpls_shim ms)
+mpls_ntoa(const union mpls_shim ms)
{
static char ret[255];
union mpls_shim ms2;
@@ -275,10 +275,11 @@ mpls_ntoa(union mpls_shim ms)
return ret;
}
-char *
-union_ntoa(union sockunion * so)
+char *
+union_ntoa(const union sockunion * so)
{
- static char defret[] = "Unknown family address";
+ static char defret[] = "Unknown family address";
+
switch (so->sa.sa_family) {
case AF_INET:
return inet_ntoa(so->sin.sin_addr);
@@ -313,8 +314,8 @@ route_strerror(int error)
/* Adds a route. Or changes it. */
int
add_route(union sockunion *so_dest, union sockunion *so_prefix,
- union sockunion *so_gate, union sockunion *so_ifa, union sockunion *so_tag,
- int fr, int optype)
+ union sockunion *so_gate, union sockunion *so_ifa,
+ union sockunion *so_tag, int fr, int optype)
{
int l, rlen, rv = LDP_E_OK;
struct rt_msg rm;
@@ -343,8 +344,19 @@ add_route(union sockunion *so_dest, unio
NEXTADDR(so_gate);
if (so_prefix) {
- mask_addr(so_prefix);
- NEXTADDR(so_prefix);
+ union sockunion *so_prefix_temp = so_prefix;
+
+ if (fr != FREESO) {
+ /* don't modify so_prefix */
+ so_prefix_temp = calloc(1, so_prefix->sa.sa_len);
+ if (so_prefix_temp == NULL)
+ return LDP_E_MEMORY;
+ memcpy(so_prefix_temp, so_prefix, so_prefix->sa.sa_len);
+ }
+ mask_addr(so_prefix_temp);
+ NEXTADDR(so_prefix_temp);
+ if (fr != FREESO)
+ free(so_prefix_temp);
/* XXX: looks like nobody cares about this */
rm.m_rtm.rtm_flags |= RTF_MASK;
rm.m_rtm.rtm_addrs |= RTA_NETMASK;
@@ -378,7 +390,7 @@ add_route(union sockunion *so_dest, unio
warnp("Gateway was: %s\n", union_ntoa(so_gate));
rv = LDP_E_ROUTE_ERROR;
}
- if (fr) {
+ if (fr == FREESO) {
free(so_dest);
if (so_prefix)
free(so_prefix);
@@ -420,8 +432,18 @@ delete_route(union sockunion * so_dest,
NEXTADDR(so_dest);
if (so_pref) {
- mask_addr(so_pref);
- NEXTADDR(so_pref);
+ union sockunion *so_pref_temp = so_pref;
+ if (freeso != FREESO) {
+ /* don't modify the original prefix */
+ so_pref_temp = calloc(1, so_pref->sa.sa_len);
+ if (so_pref_temp == NULL)
+ return LDP_E_MEMORY;
+ memcpy(so_pref_temp, so_pref, so_pref->sa.sa_len);
+ }
+ mask_addr(so_pref_temp);
+ NEXTADDR(so_pref_temp);
+ if (freeso != FREESO)
+ free(so_pref_temp);
}
rm.m_rtm.rtm_msglen = l = cp - (char *) &rm;
@@ -452,8 +474,8 @@ delete_route(union sockunion * so_dest,
* with the returned result
*/
int
-get_route(struct rt_msg * rg, union sockunion * so_dest,
- union sockunion * so_pref, int exact_match)
+get_route(struct rt_msg * rg, const union sockunion * so_dest,
+ const union sockunion * so_pref, int exact_match)
{
int l, rlen, myseq;
struct rt_msg rm;
@@ -484,9 +506,15 @@ get_route(struct rt_msg * rg, union sock
NEXTADDR(so_dest);
if (so_pref) {
+ union sockunion *so_pref_temp = calloc(1, so_pref->sa.sa_len);
+
+ if (so_pref_temp == NULL)
+ return LDP_E_MEMORY;
rm.m_rtm.rtm_addrs |= RTA_NETMASK;
- mask_addr(so_pref);
- NEXTADDR(so_pref);
+ memcpy(so_pref_temp, so_pref, so_pref->sa.sa_len);
+ mask_addr(so_pref_temp);
+ NEXTADDR(so_pref_temp);
+ free(so_pref_temp);
}
rm.m_rtm.rtm_msglen = l = cp - (char *) &rm;
Index: src/usr.sbin/ldpd/tlv_stack.c
diff -u src/usr.sbin/ldpd/tlv_stack.c:1.7 src/usr.sbin/ldpd/tlv_stack.c:1.8
--- src/usr.sbin/ldpd/tlv_stack.c:1.7 Thu Jul 11 05:45:23 2013
+++ src/usr.sbin/ldpd/tlv_stack.c Thu Jul 11 10:46:19 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: tlv_stack.c,v 1.7 2013/07/11 05:45:23 kefren Exp $ */
+/* $NetBSD: tlv_stack.c,v 1.8 2013/07/11 10:46:19 kefren Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -230,8 +230,8 @@ prepare_release(struct tlv * v)
/* Sends a label mapping */
void
-send_label_tlv(const struct ldp_peer * peer, struct sockaddr * addr,
- uint8_t prefixlen, uint32_t label, struct label_request_tlv *lrt)
+send_label_tlv(const struct ldp_peer * peer, const struct sockaddr * addr,
+ uint8_t prefixlen, uint32_t label, const struct label_request_tlv *lrt)
{
struct label_map_tlv *lmt;
struct fec_tlv *fec;
@@ -306,7 +306,8 @@ send_label_tlv(const struct ldp_peer * p
}
void
-send_label_tlv_to_all(struct sockaddr * addr, uint8_t prefixlen, uint32_t label)
+send_label_tlv_to_all(const struct sockaddr * addr, uint8_t prefixlen,
+ uint32_t label)
{
struct ldp_peer *p;
SLIST_FOREACH(p, &ldp_peer_head, peers)
@@ -317,7 +318,7 @@ send_label_tlv_to_all(struct sockaddr *
* Send all local labels to a peer
*/
void
-send_all_bindings(struct ldp_peer * peer)
+send_all_bindings(const struct ldp_peer * peer)
{
struct label *l;
@@ -329,7 +330,7 @@ send_all_bindings(struct ldp_peer * peer
/* Sends a label WITHDRAW */
void
-send_withdraw_tlv(const struct ldp_peer * peer, struct sockaddr * addr,
+send_withdraw_tlv(const struct ldp_peer * peer, const struct sockaddr * addr,
uint8_t prefixlen)
{
struct label_map_tlv *lmt;
@@ -384,7 +385,7 @@ send_withdraw_tlv(const struct ldp_peer
}
void
-send_withdraw_tlv_to_all(struct sockaddr * addr, uint8_t prefixlen)
+send_withdraw_tlv_to_all(const struct sockaddr * addr, uint8_t prefixlen)
{
struct ldp_peer *p;
SLIST_FOREACH(p, &ldp_peer_head, peers)
@@ -392,10 +393,10 @@ send_withdraw_tlv_to_all(struct sockaddr
}
int
-request_respond(const struct ldp_peer *p, struct label_map_tlv *lmt,
- struct fec_tlv *fec)
+request_respond(const struct ldp_peer *p, const struct label_map_tlv *lmt,
+ const struct fec_tlv *fec)
{
- struct prefix_tlv *pref;
+ const struct prefix_tlv *pref;
union sockunion socktmp;
struct label *lab;
struct label_request_tlv lrm;
@@ -404,7 +405,7 @@ request_respond(const struct ldp_peer *p
debugp("Invalid FEC TLV !\n");
return LDP_E_BAD_FEC;
}
- pref = (struct prefix_tlv *) (fec + 1);
+ pref = (const struct prefix_tlv *) (fec + 1);
memset(&socktmp, 0, sizeof(socktmp));
if (ntohs(pref->af) == LDP_AF_INET) {
@@ -438,7 +439,8 @@ request_respond(const struct ldp_peer *p
/* XXX - use sizeof */
lrm.length = htons(socktmp.sa.sa_family == AF_INET ? 4 : 16);
lrm.messageid = lmt->messageid;
- send_label_tlv(p, &socktmp.sa, pref->prelen, lab->binding, &lrm);
+ send_label_tlv(p, &socktmp.sa, pref->prelen, lab->binding,
+ &lrm);
break;
case FEC_WILDCARD: