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:

Reply via email to