From 74c8baee2bd99d89952bb6280df3036dbcb4edf9 Mon Sep 17 00:00:00 2001
From: Thomas Chou <thomas@wytron.com.tw>
Date: Sun, 2 Dec 2007 16:29:30 +0800
Subject: [PATCH] dhcpcd: replace legacy bcopy/bzero/bcmp/index/rindex

bcopy/bzero/bcmp/index/rindex are marked LEGACY in SuSv3.
They are replaced as proposed by SuSv3.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
---
 user/dhcpcd/arp.c        |   14 +++++++-------
 user/dhcpcd/client.c     |   22 +++++++++++-----------
 user/dhcpcd/hostinfo.c   |    2 +-
 user/dhcpcd/if.c         |   10 +++++-----
 user/dhcpcd/llip.c       |    6 +++---
 user/dhcpcd/llip_utils.c |   14 +++++++-------
 user/dhcpcd/main.c       |    2 +-
 user/dhcpcd/options.c    |    6 +++---
 user/dhcpcd/socket-if.c  |    6 +++---
 9 files changed, 41 insertions(+), 41 deletions(-)

diff --git a/user/dhcpcd/arp.c b/user/dhcpcd/arp.c
index bc7106d..b72e401 100644
--- a/user/dhcpcd/arp.c
+++ b/user/dhcpcd/arp.c
@@ -53,7 +53,7 @@ arpCheck(u_long inaddr, struct ifinfo *ifbuf, long timeout)
 	/* send arp request
 	 */
 	mkArpMsg(ARPOP_REQUEST, inaddr, NULL, ifbuf->addr, ifbuf->haddr, &arp);
-	bzero(&addr, sizeof(addr));
+	memset(&addr, 0, sizeof(addr));
 	strcpy(addr.sa_data, ifbuf->ifname);
 	if ( sendto(s, &arp, sizeof(arp), 0, &addr, sizeof(addr)) < 0 ) {
 		logSysRet("sendto (arpCheck)");
@@ -102,7 +102,7 @@ sendArpReply(u_char *thaddr, u_long tinaddr, struct ifinfo *ifbuf)
 	/* send arp reply
 	 */
 	mkArpMsg(ARPOP_REPLY, tinaddr, thaddr, ifbuf->addr, ifbuf->haddr, &arp);
-	bzero(&addr, sizeof(addr));
+	memset(&addr, 0, sizeof(addr));
 	strcpy(addr.sa_data, ifbuf->ifname);
 	if ( sendto(s, &arp, sizeof(arp), 0, &addr, sizeof(addr)) < 0 ) {
 		logSysRet("sendto (arpCheck)");
@@ -113,9 +113,9 @@ void
 mkArpMsg(int opcode, u_long tInaddr, u_char *tHaddr,
 		 u_long sInaddr, u_char *sHaddr, struct arpMsg *msg)
 {
-	bzero(msg, sizeof(*msg));
-	bcopy(MAC_BCAST_ADDR, msg->ethhdr.h_dest, 6); /* MAC DA */
-	bcopy(sHaddr, msg->ethhdr.h_source, 6);	/* MAC SA */
+	memset(msg, 0, sizeof(*msg));
+	memmove(msg->ethhdr.h_dest, MAC_BCAST_ADDR, 6); /* MAC DA */
+	memmove(msg->ethhdr.h_source, sHaddr, 6);	/* MAC SA */
 	msg->ethhdr.h_proto = htons(ETH_P_ARP);	/* protocol type (Ethernet) */
 	msg->htype = htons(ARPHRD_ETHER);		/* hardware type */
 	msg->ptype = htons(ETH_P_IP);			/* protocol type (ARP message) */
@@ -123,9 +123,9 @@ mkArpMsg(int opcode, u_long tInaddr, u_char *tHaddr,
 	msg->plen = 4;							/* protocol address length */
 	msg->operation = htons(opcode);			/* ARP op code */
 	*((u_int *)msg->sInaddr) = sInaddr;		/* source IP address */
-	bcopy(sHaddr, msg->sHaddr, 6);			/* source hardware address */
+	memmove(msg->sHaddr, sHaddr, 6);			/* source hardware address */
 	*((u_int *)msg->tInaddr) = tInaddr;		/* target IP address */
 	if ( opcode == ARPOP_REPLY ) {
-		bcopy(tHaddr, msg->tHaddr, 6);		/* target hardware address */
+		memmove(msg->tHaddr, tHaddr, 6);		/* target hardware address */
 	}
 }
diff --git a/user/dhcpcd/client.c b/user/dhcpcd/client.c
index ae4f4a7..0d78b9f 100644
--- a/user/dhcpcd/client.c
+++ b/user/dhcpcd/client.c
@@ -157,7 +157,7 @@ clientIDsetup(char *id, char *ifname)
 	getIfInfo(&ifinfo);
 	*s++ = 7;					/* length: 6 (MAC Addr) + 1 (# field) */
 	*s++ = ARPHRD_ETHER;		/* type: Ethernet address */
-	bcopy(ifinfo.haddr, s, sizeof(ifinfo.haddr));
+	memmove(s, ifinfo.haddr, sizeof(ifinfo.haddr));
 }
 
 void
@@ -182,7 +182,7 @@ dhcpMsgInit(u_char *ifname)
 	struct ifreq intf;
 
 	logRet("Binding to interface '%s'\n", ifname);
-	bzero(&intf, sizeof(intf));
+	memset(&intf, 0, sizeof(intf));
 	strncpy(intf.ifr_name, ifname, IFNAMSIZ);
 	if (setsockopt(Ssend,SOL_SOCKET,SO_BINDTODEVICE,&intf,sizeof(intf)) < 0)
 		logSysExit("setsockopt(SO_BINDTODEVICE)");
@@ -255,7 +255,7 @@ initReboot()
 	char				filename[IFNAMSIZ + 128];
 	struct sockaddr_in	addr;
 
-	bzero((char *)&addr, sizeof(addr));
+	memset((char *)&addr, 0, sizeof(addr));
 	strcpy(filename, DHCP_CACHE_FILE);
 	strcat(filename, Ifbuf.ifname);
 	if ( (fd = open(filename, O_RDONLY)) < 0 ) {
@@ -661,10 +661,10 @@ mkDhcpDiscoverMsg(u_char *haddr, dhcpMessage *msg)
 {
 	u_char *p =	msg->options + 4; /* just after the magic cookie */
 
-	bzero((char *)msg, sizeof(*msg));
+	memset((char *)msg, 0, sizeof(*msg));
 	msg->htype = HTYPE_ETHER;	/* supports Etherenet only */
 	msg->hlen  = 6;
-	bcopy(haddr, msg->chaddr, 6);
+	memmove(msg->chaddr, haddr, 6);
 	msg->op	   = BOOTREQUEST;
 #ifdef NEED_BCAST_RESPONSE
 	msg->flags = htons(F_BROADCAST);
@@ -711,7 +711,7 @@ mkDhcpDiscoverMsg(u_char *haddr, dhcpMessage *msg)
 	*p++ = strlen(ClassId);
 	strcpy(p, ClassId);
 	p += strlen(ClassId);
-	bcopy(ClientId, p, ClientId[1]+2); /* client identifier */
+	memmove(p, ClientId, ClientId[1]+2); /* client identifier */
 	p += ClientId[1] + 2;
 	*p = endOption;				/* end */
 }
@@ -725,7 +725,7 @@ mkDhcpRequestMsg(int flag, u_long serverInaddr, u_long leaseTime,
 	msg->xid	= xid;
 	msg->ciaddr = ciaddr;
 	msg->flags = htons(0);		/* do not set the broadcast flag here */
-	bzero((char *)p, sizeof(msg->options) - 4);	/* clear DHCP option field */
+	memset((char *)p, 0, sizeof(msg->options) - 4);	/* clear DHCP option field */
 
 	/* 1. Requested IP address must not be in the DHCPREQUEST message
 	 *    under the RFC1541 mode.
@@ -792,7 +792,7 @@ mkDhcpRequestMsg(int flag, u_long serverInaddr, u_long leaseTime,
 	*p++ = strlen(ClassId);
 	strcpy(p, ClassId);
 	p += strlen(ClassId);
-	bcopy(ClientId, p, ClientId[1]+2);	/* client identifier */
+	memmove(p, ClientId, ClientId[1]+2);	/* client identifier */
 	p += ClientId[1] + 2;
 	*p = endOption;						/* end */
 }
@@ -814,7 +814,7 @@ mkDhcpDeclineMsg(int flag, u_long serverInaddr, u_long ciaddr,
 		}
 	}
 
-	bzero((char *)p, sizeof(msg->options) - 4);
+	memset((char *)p, 0, sizeof(msg->options) - 4);
 	*p++ = dhcpMessageType;		/* DHCP message type */
 	*p++ = 1;
 	*p++ = (u_char)flag;
@@ -840,7 +840,7 @@ mkDhcpDeclineMsg(int flag, u_long serverInaddr, u_long ciaddr,
 		strncpy(p, Hostname, len);
 		p += len;
 	}
-	bcopy(ClientId, p, ClientId[1]+2); /* client identifier */
+	memmove(p, ClientId, ClientId[1]+2); /* client identifier */
 	p += ClientId[1] + 2;
 	*p = endOption;				/* end */
 }
@@ -850,7 +850,7 @@ sendDhcpDecline(int flag, u_long serverInaddr, u_long ciaddr)
 {
 	struct sockaddr_in	 addr;
 
-	bzero((char *)&addr, sizeof(addr));
+	memset((char *)&addr, 0, sizeof(addr));
 	addr.sin_family 	 = AF_INET;
 	addr.sin_port		 = htons(DHCP_SERVER_PORT);
 	switch ( flag ) {
diff --git a/user/dhcpcd/hostinfo.c b/user/dhcpcd/hostinfo.c
index 065d0d8..71ae266 100644
--- a/user/dhcpcd/hostinfo.c
+++ b/user/dhcpcd/hostinfo.c
@@ -57,7 +57,7 @@ setupOptInfo(u_char *dest[], const u_char *src[])
 				free(dest[i]);
 			}
 			dest[i] = smalloc(*src[i]+1);
-			bcopy(src[i], dest[i], *src[i]+1);
+			memmove(dest[i], src[i], *src[i]+1);
 		}
 	}
 }
diff --git a/user/dhcpcd/if.c b/user/dhcpcd/if.c
index 2b6a94c..34cab25 100644
--- a/user/dhcpcd/if.c
+++ b/user/dhcpcd/if.c
@@ -48,7 +48,7 @@ struct ifinfo Ifbuf;
 void
 ifReset(char *ifname)
 {
-	bzero((char *)&Ifbuf, sizeof(Ifbuf));
+	memset((char *)&Ifbuf, 0, sizeof(Ifbuf));
 	strncpy(Ifbuf.ifname, ifname, sizeof(Ifbuf.ifname));
 	Ifbuf.addr	= htonl(0);
 	Ifbuf.mask	= htonl(0);
@@ -78,7 +78,7 @@ ifConfig(struct ifinfo * ifinfo)
 	}
 	/* save hardware address of the interface
 	 */
-	bcopy(ifr.ifr_hwaddr.sa_data, ifinfo->haddr, sizeof(ifinfo->haddr));
+	memmove(ifinfo->haddr, ifr.ifr_hwaddr.sa_data, sizeof(ifinfo->haddr));
 
 	/* configure interface
 	 */
@@ -102,7 +102,7 @@ ifConfig(struct ifinfo * ifinfo)
 	}
 	/* set route to the interface
 	 */
-	bzero((char *)&rtent, sizeof(rtent));
+	memset((char *)&rtent, 0, sizeof(rtent));
 
 	p = (struct sockaddr_in *)&rtent.rt_dst;
 	p->sin_family		= AF_INET;
@@ -251,7 +251,7 @@ getIfInfo(struct ifinfo * ifinfo)
 	}
 	/* save hardware address of the interface
 	 */
-	bcopy(ifr.ifr_hwaddr.sa_data, ifinfo->haddr, sizeof(ifinfo->haddr));
+	memmove(ifinfo->haddr, ifr.ifr_hwaddr.sa_data, sizeof(ifinfo->haddr));
 
 	/* configure interface
 	 */
@@ -286,7 +286,7 @@ setDefRoute(const char *routers, struct ifinfo *ifinfo)
 	if ( (s = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
 		logSysExit("socket (setDefRoute)");
 	}
-	bzero((char *)&rtent, sizeof(rtent));
+	memset((char *)&rtent, 0, sizeof(rtent));
 	p = (struct sockaddr_in *)&rtent.rt_dst;
 	p->sin_family		= AF_INET;
 	p->sin_addr.s_addr	= 0;	/* dest. net address (default route) */
diff --git a/user/dhcpcd/llip.c b/user/dhcpcd/llip.c
index 1e8f317..7218b16 100644
--- a/user/dhcpcd/llip.c
+++ b/user/dhcpcd/llip.c
@@ -119,7 +119,7 @@ int set_address(char* ifname, unsigned long ip, unsigned long netmask, int skfd)
 	strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
 
         addr = (struct sockaddr_in *) &ifr.ifr_addr;
-        bzero(addr, sizeof(struct sockaddr_in));
+        memset(addr, 0, sizeof(struct sockaddr_in));
         addr->sin_family = AF_INET;
         addr->sin_addr.s_addr = ip;
         if ((result=ioctl(skfd, SIOCSIFADDR, &ifr))==-1)
@@ -129,7 +129,7 @@ int set_address(char* ifname, unsigned long ip, unsigned long netmask, int skfd)
         }
 	
 	addr = (struct sockaddr_in *) & ifr.ifr_broadaddr;
-	bzero(addr, sizeof(struct sockaddr_in));
+	memset(addr, 0, sizeof(struct sockaddr_in));
 	addr->sin_family = AF_INET;
 	addr->sin_addr.s_addr = ip & netmask | ~netmask;
         if ( ioctl(skfd, SIOCSIFBRDADDR, &ifr) == -1)
@@ -139,7 +139,7 @@ int set_address(char* ifname, unsigned long ip, unsigned long netmask, int skfd)
 	}
 
 	addr = (struct sockaddr_in *) &ifr.ifr_netmask;
-	bzero(addr, sizeof(struct sockaddr_in));
+	memset(addr, 0, sizeof(struct sockaddr_in));
 	addr->sin_family = AF_INET;
 	addr->sin_addr.s_addr = netmask;
 	if ((result=ioctl(skfd, SIOCSIFNETMASK, &ifr))==-1)
diff --git a/user/dhcpcd/llip_utils.c b/user/dhcpcd/llip_utils.c
index d69da4f..bd3604e 100644
--- a/user/dhcpcd/llip_utils.c
+++ b/user/dhcpcd/llip_utils.c
@@ -56,7 +56,7 @@ int llip_sendGratuitousArps(char* device_name, u_long address, unsigned char *so
 
 	/* send two arps two seconds apart */
 	llip_mkArpMsg(ARPOP_REPLY, 0xffffffffU, MAC_BCAST_ADDR, address, (u_char*) source_hw_addr, &arp);
-	bzero(&addr, sizeof(addr));
+	memset(&addr, 0, sizeof(addr));
 	strncpy(addr.sa_data, device_name, sizeof(addr.sa_data));
 
 	for(i=0; i<GRATUITOUS_ARPS; i++)
@@ -100,7 +100,7 @@ int llip_arpCheck(char* device_name, u_long test_addr, unsigned char *source_hw_
 
 	/* send arp probe */
 	llip_mkArpMsg(ARPOP_REQUEST, test_addr, MAC_BCAST_ADDR, 0 /* source=0.0.0.0 */, (u_char *) source_hw_addr, &arp);
-	bzero(&addr, sizeof(addr));
+	memset(&addr, 0, sizeof(addr));
 	strncpy(addr.sa_data, device_name, sizeof(addr.sa_data));
 
 	if ( sendto(s, &arp, sizeof(arp), 0, &addr, sizeof(addr)) < 0 ) {
@@ -155,9 +155,9 @@ int llip_arpCheck(char* device_name, u_long test_addr, unsigned char *source_hw_
 
 void llip_mkArpMsg(int opcode, u_long tInaddr, u_char *tHaddr,
 		 u_long sInaddr, u_char *sHaddr, struct arpMsg *msg) {
-	bzero(msg, sizeof(*msg));
-	bcopy(tHaddr, msg->ethhdr.h_dest, 6); /* MAC DA */
-	bcopy(sHaddr, msg->ethhdr.h_source, 6);	/* MAC SA */
+	memset(msg, 0, sizeof(*msg));
+	memmove(msg->ethhdr.h_dest, tHaddr, 6); /* MAC DA */
+	memmove(msg->ethhdr.h_source, sHaddr, msg->ethhdr.h_source, 6);	/* MAC SA */
 	msg->ethhdr.h_proto = htons(ETH_P_ARP);	/* protocol type (Ethernet) */
 	msg->htype = htons(ARPHRD_ETHER);		/* hardware type */
 	msg->ptype = htons(ETH_P_IP);			/* protocol type (ARP message) */
@@ -165,10 +165,10 @@ void llip_mkArpMsg(int opcode, u_long tInaddr, u_char *tHaddr,
 	msg->plen = 4;							/* protocol address length */
 	msg->operation = htons(opcode);			/* ARP op code */
 	*((u_int *)msg->sInaddr) = sInaddr;		/* source IP address */
-	bcopy(sHaddr, msg->sHaddr, 6);			/* source hardware address */
+	memmove(msg->sHaddr, sHaddr, 6);			/* source hardware address */
 	*((u_int *)msg->tInaddr) = tInaddr;		/* target IP address */
 	if ( opcode == ARPOP_REPLY ) {
-		bcopy(tHaddr, msg->tHaddr, 6);		/* target hardware address */
+		memmove(msg->tHaddr, tHaddr, 6);		/* target hardware address */
 	}
 }
 
diff --git a/user/dhcpcd/main.c b/user/dhcpcd/main.c
index 8cd3921..0baa30f 100644
--- a/user/dhcpcd/main.c
+++ b/user/dhcpcd/main.c
@@ -174,7 +174,7 @@ char *argv[];
 #endif
 	if(Hostname == NULL) {
 		Hostname = smalloc(32);
-		/*bzero(Hostname,32);*/
+		/*memset(Hostname,0,32);*/
 		gethostname(Hostname, 32);
 	}
 #endif
diff --git a/user/dhcpcd/options.c b/user/dhcpcd/options.c
index ed4889f..68139a7 100644
--- a/user/dhcpcd/options.c
+++ b/user/dhcpcd/options.c
@@ -114,7 +114,7 @@ getOptions(u_char *optp[], dhcpMessage *msg)
 	end = msg-> options + sizeof(msg->options);	/* last element + 1 */
 
 	i = 0;
-	bzero((u_char *)optp, sizeof(msg->options) * sizeof(u_char *));
+	memset((u_char *)optp, 0, sizeof(msg->options) * sizeof(u_char *));
 	while ( p < end ) {
 		if ( *p == endOption ) { /* end */
 			return;
@@ -159,7 +159,7 @@ parseDhcpMsg(u_char *optp[], dhcpMessage *msg)
 	if ( bcmp(msg->chaddr, DhcpMsgSend.chaddr, DhcpMsgSend.hlen) ) {
 		return 0;				/* NG */
 	}
-	bzero((char *)opt, sizeof(opt));
+	memset((char *)opt, 0, sizeof(opt));
 	getOptions(p, msg);			/* get pointers to each option */
 	for (; *p != NULL; ++p ) {
 		switch ( **p ) {
@@ -221,7 +221,7 @@ parseDhcpMsg(u_char *optp[], dhcpMessage *msg)
 			break;
 		}
 	}
-	bcopy(opt, optp, sizeof(opt));
+	memmove(optp, opt, sizeof(opt));
 
 	/* check option field
 	 */
diff --git a/user/dhcpcd/socket-if.c b/user/dhcpcd/socket-if.c
index 04320ed..32e1c39 100644
--- a/user/dhcpcd/socket-if.c
+++ b/user/dhcpcd/socket-if.c
@@ -39,7 +39,7 @@
 void
 setSockAddrIn(u_short port, u_long inaddr, struct sockaddr_in *saddr)
 {
-	bzero((char *)saddr, sizeof(*saddr));
+	memset((char *)saddr, 0, sizeof(*saddr));
 	saddr->sin_family		= AF_INET;
 	saddr->sin_addr.s_addr	= inaddr;
 	saddr->sin_port			= port;
@@ -120,8 +120,8 @@ rcvAndCheckDhcpMsg(int s, dhcpMessage *msg, u_long waitMsgType,
 	struct timeval tm;
 	int len;
 
-	bzero((char *)msg, sizeof(*msg));
-	bzero((char *)&addr, sizeof(addr));
+	memset((char *)msg, 0, sizeof(*msg));
+	memset((char *)&addr, 0, sizeof(addr));
 	tm.tv_sec = 0;
 	time(&prevTime); 
 	while ( timeout > 0 ) {
-- 
1.5.3.3

