svn commit: trunk/busybox: networking scripts util-linux
vda at busybox.net
vda at busybox.net
Fri Mar 21 11:29:02 PDT 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