svn commit: trunk/busybox: networking scripts util-linux

vda at busybox.net vda at busybox.net
Fri Mar 21 18:29:02 UTC 2008


Author: vda
Date: 2008-03-21 11:29:01 -0700 (Fri, 21 Mar 2008)
New Revision: 21444

Log:
*: fix build problems found with randomconfig



Modified:
   trunk/busybox/networking/tftp.c
   trunk/busybox/scripts/trylink
   trunk/busybox/util-linux/Config.in


Changeset:
Modified: trunk/busybox/networking/tftp.c
===================================================================
--- trunk/busybox/networking/tftp.c	2008-03-21 18:01:46 UTC (rev 21443)
+++ trunk/busybox/networking/tftp.c	2008-03-21 18:29:01 UTC (rev 21444)
@@ -25,10 +25,11 @@
 
 #if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
 
-#define TFTP_BLKSIZE_DEFAULT   512      /* according to RFC 1350, don't change */
-#define TFTP_TIMEOUT_MS         50
-#define TFTP_MAXTIMEOUT_MS    2000
-#define TFTP_NUM_RETRIES        12      /* number of backed-off retries */
+#define TFTP_BLKSIZE_DEFAULT       512  /* according to RFC 1350, don't change */
+#define TFTP_BLKSIZE_DEFAULT_STR "512"
+#define TFTP_TIMEOUT_MS             50
+#define TFTP_MAXTIMEOUT_MS        2000
+#define TFTP_NUM_RETRIES            12  /* number of backed-off retries */
 
 /* opcodes we support */
 #define TFTP_RRQ   1
@@ -181,7 +182,7 @@
 	int open_mode, local_fd;
 	int retries, waittime_ms;
 	int io_bufsize = blksize + 4;
-	char *cp = cp; /* for compiler */
+	char *cp;
 	/* Can't use RESERVE_CONFIG_BUFFER here since the allocation
 	 * size varies meaning BUFFERS_GO_ON_STACK would fail */
 	/* We must keep the transmit and receive buffers seperate */
@@ -193,6 +194,7 @@
 	setsockopt_reuseaddr(socket_fd);
 
 	block_nr = 1;
+	cp = xbuf + 2;
 
 	if (!ENABLE_TFTP || our_lsa) {
 		/* tftpd */
@@ -216,17 +218,6 @@
 			block_nr = 0;
 		}
 
-#if ENABLE_FEATURE_TFTP_BLOCKSIZE
-		if (blksize != TFTP_BLKSIZE_DEFAULT) {
-			/* Create and send OACK packet */
-			/* For the download case, block_nr is still 1 -
-			 * we expect 1st ACK from peer to be for (block_nr-1),
-			 * that is, for "block 0" which is our OACK pkt */
-			opcode = TFTP_OACK;
-			cp = xbuf + 2;
-			/* to be continued, see below */
-		}
-#endif
 		if (user_opt) {
 			struct passwd *pw = getpwnam(user_opt);
 			if (!pw)
@@ -263,11 +254,19 @@
 	if (!ENABLE_TFTP || our_lsa) {
 #if ENABLE_FEATURE_TFTP_BLOCKSIZE
 		if (blksize != TFTP_BLKSIZE_DEFAULT) {
-			/* Create and send OACK packet. continued */
+			/* Create and send OACK packet. */
+			/* For the download case, block_nr is still 1 -
+			 * we expect 1st ACK from peer to be for (block_nr-1),
+			 * that is, for "block 0" which is our OACK pkt */
+			opcode = TFTP_OACK;
 			goto add_blksize_opt;
 		}
 #endif
-	} else {
+	}
+	else {
+/* Removing it, or using if() statement instead may lead to
+ * "warning: null argument where non-null required": */
+#if ENABLE_TFTP
 		/* tftp */
 
 		/* We can't (and don't really need to) bind the socket:
@@ -286,7 +285,6 @@
 		if (CMD_GET(option_mask32)) {
 			opcode = TFTP_RRQ;
 		}
-		cp = xbuf + 2;
 		/* add filename and mode */
 		/* fill in packet if the filename fits into xbuf */
 		len = strlen(remote_file) + 1;
@@ -301,20 +299,25 @@
 		cp += sizeof("octet");
 
 #if ENABLE_FEATURE_TFTP_BLOCKSIZE
-		if (blksize != TFTP_BLKSIZE_DEFAULT) {
-			/* rfc2348 says that 65464 is a max allowed value */
-			if ((&xbuf[io_bufsize - 1] - cp) < sizeof("blksize NNNNN")) {
-				bb_error_msg("remote filename is too long");
-				goto ret;
-			}
-			want_option_ack = 1;
- add_blksize_opt:
-			/* add "blksize", <nul>, blksize, <nul> */
-			strcpy(cp, "blksize");
-			cp += sizeof("blksize");
-			cp += snprintf(cp, 6, "%d", blksize) + 1;
+		if (blksize == TFTP_BLKSIZE_DEFAULT)
+			goto send_pkt;
+
+		/* Non-standard blocksize: add option to pkt */
+		if ((&xbuf[io_bufsize - 1] - cp) < sizeof("blksize NNNNN")) {
+			bb_error_msg("remote filename is too long");
+			goto ret;
 		}
+		want_option_ack = 1;
 #endif
+#endif /* ENABLE_TFTP */
+
+#if ENABLE_FEATURE_TFTP_BLOCKSIZE
+ add_blksize_opt:
+		/* add "blksize", <nul>, blksize, <nul> */
+		strcpy(cp, "blksize");
+		cp += sizeof("blksize");
+		cp += snprintf(cp, 6, "%d", blksize) + 1;
+#endif
 		/* First packet is built, so skip packet generation */
 		goto send_pkt;
 	}
@@ -540,7 +543,9 @@
 	len_and_sockaddr *peer_lsa;
 	const char *local_file = NULL;
 	const char *remote_file = NULL;
-	const char *blksize_str = "512";
+#if ENABLE_FEATURE_TFTP_BLOCKSIZE
+	const char *blksize_str = TFTP_BLKSIZE_DEFAULT_STR;
+#endif
 	int blksize;
 	int result;
 	int port;
@@ -567,6 +572,8 @@
 		//bb_error_msg("bad block size");
 		return EXIT_FAILURE;
 	}
+#else
+	blksize = TFTP_BLKSIZE_DEFAULT;
 #endif
 
 	if (!local_file)
@@ -647,7 +654,7 @@
 	opcode = ntohs(*(uint16_t*)block_buf);
 	if (result < 4 || result >= sizeof(block_buf)
 	 || block_buf[result-1] != '\0'
-	 || (USE_FEATURE_TFTP_GET(opcode != TFTP_RRQ) /* not download */
+	 || (USE_FEATURE_TFTP_PUT(opcode != TFTP_RRQ) /* not download */
 	     USE_GETPUT(&&)
 	     USE_FEATURE_TFTP_GET(opcode != TFTP_WRQ) /* not upload */
 	    )

Modified: trunk/busybox/scripts/trylink
===================================================================
--- trunk/busybox/scripts/trylink	2008-03-21 18:01:46 UTC (rev 21443)
+++ trunk/busybox/scripts/trylink	2008-03-21 18:29:01 UTC (rev 21444)
@@ -116,7 +116,7 @@
 	-Wl,--start-group $O_FILES $A_FILES -Wl,--end-group \
 	$l_list \
 || {
-    echo "Failed: $* $l_list"
+    echo "Failed: $l_list"
     cat $EXE.out
     exit 1
 }

Modified: trunk/busybox/util-linux/Config.in
===================================================================
--- trunk/busybox/util-linux/Config.in	2008-03-21 18:01:46 UTC (rev 21443)
+++ trunk/busybox/util-linux/Config.in	2008-03-21 18:29:01 UTC (rev 21444)
@@ -639,6 +639,7 @@
 	bool "Support specifiying devices by label or UUID"
 	default n
 	depends on MOUNT
+	select VOLUMEID
 	help
 	  This allows for specifying a device by label or uuid, rather than by
 	  name.  This feature utilizes the same functionality as findfs.




More information about the busybox-cvs mailing list