From: jacmet at uclibc.org <jacmet@uclibc.org>
To: buildroot@busybox.net
Subject: [Buildroot] svn commit: trunk/buildroot/package/busybox
Date: Thu, 15 Mar 2007 01:36:20 -0700 (PDT) [thread overview]
Message-ID: <20070315083620.34B0E48022@busybox.net> (raw)
Author: jacmet
Date: 2007-03-15 01:36:18 -0700 (Thu, 15 Mar 2007)
New Revision: 18117
Log:
tftp patch
Added:
trunk/buildroot/package/busybox/busybox-1.4.1-tftp.patch
Changeset:
Added: trunk/buildroot/package/busybox/busybox-1.4.1-tftp.patch
===================================================================
--- trunk/buildroot/package/busybox/busybox-1.4.1-tftp.patch (rev 0)
+++ trunk/buildroot/package/busybox/busybox-1.4.1-tftp.patch 2007-03-15 08:36:18 UTC (rev 18117)
@@ -0,0 +1,112 @@
+--- busybox-1.4.1/include/libbb.h Wed Jan 24 22:34:48 2007
++++ busybox-1.4.1-tftp/include/libbb.h Sat Mar 3 00:02:34 2007
+@@ -290,7 +290,7 @@
+
+ /* "new" (ipv4+ipv6) API */
+ typedef struct len_and_sockaddr {
+- int len;
++ socklen_t len;
+ union {
+ struct sockaddr sa;
+ struct sockaddr_in sin;
+--- busybox-1.4.1/networking/tftp.c Wed Jan 24 22:34:34 2007
++++ busybox-1.4.1-tftp/networking/tftp.c Sat Mar 3 00:02:56 2007
+@@ -132,7 +132,7 @@
+ #if ENABLE_FEATURE_TFTP_GET && ENABLE_FEATURE_TFTP_PUT
+ const int cmd,
+ #endif
+- const len_and_sockaddr *peer_lsa,
++ len_and_sockaddr *peer_lsa,
+ const char *remotefile, const int localfd,
+ unsigned port, int tftp_bufsize)
+ {
+@@ -149,6 +149,9 @@
+
+ USE_FEATURE_TFTP_BLOCKSIZE(int want_option_ack = 0;)
+
++ unsigned org_port;
++ len_and_sockaddr *const from = alloca(offsetof(len_and_sockaddr, sa) + peer_lsa->len);
++
+ /* 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 */
+@@ -156,7 +159,7 @@
+ char *xbuf = xmalloc(tftp_bufsize += 4);
+ char *rbuf = xmalloc(tftp_bufsize);
+
+- port = htons(port);
++ port = org_port = htons(port);
+
+ socketfd = xsocket(peer_lsa->sa.sa_family, SOCK_DGRAM, 0);
+
+@@ -167,10 +170,10 @@
+ }
+
+ while (1) {
+-
+ cp = xbuf;
+
+ /* first create the opcode part */
++ /* (this 16bit store is aligned) */
+ *((uint16_t*)cp) = htons(opcode);
+ cp += 2;
+
+@@ -222,6 +225,7 @@
+ /* add ack and data */
+
+ if (CMD_GET(cmd) ? (opcode == TFTP_ACK) : (opcode == TFTP_DATA)) {
++ /* TODO: unaligned access! */
+ *((uint16_t*)cp) = htons(block_nr);
+ cp += 2;
+ block_nr++;
+@@ -273,28 +277,26 @@
+ FD_SET(socketfd, &rfds);
+
+ switch (select(socketfd + 1, &rfds, NULL, NULL, &tv)) {
+- struct sockaddr *from;
+- socklen_t fromlen;
+-
++ unsigned from_port;
+ case 1:
+- fromlen = peer_lsa->len;
+- from = alloca(fromlen);
+- memset(from, 0, fromlen);
+-
++ from->len = peer_lsa->len;
++ memset(&from->sa, 0, peer_lsa->len);
+ len = recvfrom(socketfd, rbuf, tftp_bufsize, 0,
+- from, &fromlen);
++ &from->sa, &from->len);
+ if (len < 0) {
+ bb_perror_msg("recvfrom");
+ break;
+ }
+-#if ENABLE_FEATURE_IPV6
+- if (from->sa_family == AF_INET6)
+- if (((struct sockaddr_in6*)from)->sin6_port != port)
+- goto recv_again;
+-#endif
+- if (from->sa_family == AF_INET)
+- if (((struct sockaddr_in*)from)->sin_port != port)
+- goto recv_again;
++ from_port = get_nport(from);
++ if (port == org_port) {
++ /* Our first query went to port 69
++ * but reply will come from different one.
++ * Remember and use this new port */
++ port = from_port;
++ set_nport(peer_lsa, from_port);
++ }
++ if (port != from_port)
++ goto recv_again;
+ timeout = 0;
+ break;
+ case 0:
+@@ -317,6 +319,7 @@
+ }
+
+ /* process received packet */
++ /* (both accesses seems to be aligned) */
+
+ opcode = ntohs( ((uint16_t*)rbuf)[0] );
+ tmp = ntohs( ((uint16_t*)rbuf)[1] );
next reply other threads:[~2007-03-15 8:36 UTC|newest]
Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-15 8:36 jacmet at uclibc.org [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-03-02 15:33 [Buildroot] svn commit: trunk/buildroot/package/busybox jacmet at uclibc.org
2009-02-18 14:16 jacmet at uclibc.org
2009-02-01 19:36 jacmet at uclibc.org
2009-01-29 11:29 jacmet at uclibc.org
2009-01-29 11:27 jacmet at uclibc.org
2009-01-20 19:26 jacmet at uclibc.org
2009-01-19 12:34 jacmet at uclibc.org
2009-01-12 9:36 jacmet at uclibc.org
2008-12-31 9:35 jacmet at uclibc.org
2008-12-30 19:15 jacmet at uclibc.org
2008-12-29 10:09 jacmet at uclibc.org
2008-12-11 9:35 jacmet at uclibc.org
2008-12-10 13:46 jacmet at uclibc.org
2008-12-07 21:22 jacmet at uclibc.org
2008-12-04 13:21 jacmet at uclibc.org
2008-11-29 20:12 jacmet at uclibc.org
2008-11-28 8:19 jacmet at uclibc.org
2008-11-22 6:49 jacmet at uclibc.org
2008-11-21 14:36 jacmet at uclibc.org
2008-11-21 10:59 jacmet at uclibc.org
2008-11-20 6:49 jacmet at uclibc.org
2008-11-17 7:40 jacmet at uclibc.org
2008-11-16 17:22 jacmet at uclibc.org
2008-11-16 23:46 ` Hamish Moffatt
2008-11-17 7:13 ` Peter Korsgaard
2008-11-17 12:38 ` Hamish Moffatt
2008-11-17 12:45 ` Peter Korsgaard
2008-11-15 21:25 jacmet at uclibc.org
2008-11-13 16:32 jacmet at uclibc.org
2008-11-14 16:42 ` hartleys
2008-11-15 21:29 ` Peter Korsgaard
2008-11-16 23:42 ` Hamish Moffatt
2008-11-17 7:13 ` Peter Korsgaard
2008-11-13 16:32 jacmet at uclibc.org
2008-11-07 10:16 jacmet at uclibc.org
2008-11-02 13:06 jacmet at uclibc.org
2008-10-13 12:42 jacmet at uclibc.org
2008-10-06 18:52 jacmet at uclibc.org
2008-09-28 19:28 jacmet at uclibc.org
2008-09-22 11:54 jacmet at uclibc.org
2008-09-09 8:50 jacmet at uclibc.org
2008-09-09 8:50 jacmet at uclibc.org
2008-09-10 1:32 ` Hamish Moffatt
2008-09-10 6:57 ` Peter Korsgaard
2008-08-31 21:45 jacmet at uclibc.org
2008-08-28 4:57 jacmet at uclibc.org
2008-08-26 1:05 hamish at uclibc.org
2008-08-21 5:08 jacmet at uclibc.org
2008-08-06 12:56 jacmet at uclibc.org
2008-08-06 6:37 jacmet at uclibc.org
2008-08-04 19:06 jacmet at uclibc.org
2008-07-23 6:01 jacmet at uclibc.org
2008-07-22 11:19 jacmet at uclibc.org
2008-07-11 22:19 jacmet at uclibc.org
2008-07-06 13:55 jacmet at uclibc.org
2008-07-01 14:04 jacmet at uclibc.org
2008-07-01 13:37 jacmet at uclibc.org
2008-06-28 20:53 jacmet at uclibc.org
2008-06-26 6:51 jacmet at uclibc.org
2008-06-26 6:51 jacmet at uclibc.org
2008-06-26 6:58 ` Peter Korsgaard
2008-06-27 9:05 ` Daniel Laird
2008-06-27 9:20 ` Peter Korsgaard
2008-06-27 12:00 ` Bernhard Fischer
2008-06-27 12:46 ` sjhill at realitydiluted.com
2008-06-27 12:53 ` Bernhard Fischer
2008-06-27 14:07 ` Peter Korsgaard
2008-06-27 12:49 ` Daniel Laird
2008-06-27 13:19 ` Peter Korsgaard
2008-06-26 6:51 jacmet at uclibc.org
2008-06-20 18:38 jacmet at uclibc.org
2008-06-13 20:49 jacmet at uclibc.org
2008-06-07 7:46 jacmet at uclibc.org
2008-05-31 12:58 jacmet at uclibc.org
2008-05-31 7:28 jacmet at uclibc.org
2008-05-31 7:39 ` Cristian Ionescu-Idbohrn
2008-05-31 12:59 ` Peter Korsgaard
2008-05-09 10:01 jacmet at uclibc.org
2008-05-05 17:17 jacmet at uclibc.org
2008-04-29 6:53 jacmet at uclibc.org
2008-04-22 9:37 jacmet at uclibc.org
2008-04-04 7:17 jacmet at uclibc.org
2008-04-01 10:00 jacmet at uclibc.org
2008-03-30 14:37 jacmet at uclibc.org
2008-03-26 21:53 jacmet at uclibc.org
2008-03-26 21:49 jacmet at uclibc.org
2008-03-25 14:38 jacmet at uclibc.org
2008-03-21 17:56 ninevoltz at uclibc.org
2008-03-21 10:14 jacmet at uclibc.org
2008-03-17 19:44 jacmet at uclibc.org
2008-03-11 8:17 jacmet at uclibc.org
2008-02-28 14:38 jacmet at uclibc.org
2008-02-14 15:49 jacmet at uclibc.org
2008-02-14 14:45 jacmet at uclibc.org
2008-02-02 21:49 jacmet at uclibc.org
2008-01-08 12:51 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:31 jacmet at uclibc.org
2007-09-30 12:50 aldot at uclibc.org
2007-09-30 12:48 aldot at uclibc.org
2007-09-22 17:29 aldot at uclibc.org
2007-09-22 10:25 aldot at uclibc.org
2007-09-20 16:58 aldot at uclibc.org
2007-09-15 18:14 aldot at uclibc.org
2007-09-10 7:38 jacmet at uclibc.org
2007-09-02 22:09 aldot at uclibc.org
2007-09-02 14:56 aldot at uclibc.org
2007-09-01 17:33 aldot at uclibc.org
2007-08-24 14:23 aldot at uclibc.org
2007-07-08 12:10 aldot at uclibc.org
2007-07-08 12:04 aldot at uclibc.org
2007-07-08 11:56 aldot at uclibc.org
2007-07-02 15:20 aldot at uclibc.org
2007-07-02 9:54 aldot at uclibc.org
2007-06-27 21:07 aldot at uclibc.org
2007-06-25 11:07 aldot at uclibc.org
2007-06-14 13:09 jacmet at uclibc.org
2007-06-02 13:13 aldot at uclibc.org
2007-05-15 9:34 aldot at uclibc.org
2007-05-07 4:07 sjhill at uclibc.org
2007-05-07 4:04 sjhill at uclibc.org
2007-04-25 7:11 jacmet at uclibc.org
2007-04-05 7:04 jacmet at uclibc.org
2007-03-24 12:09 aldot at uclibc.org
2007-03-23 13:26 aldot at uclibc.org
2007-03-23 13:24 aldot at uclibc.org
2007-03-20 9:51 aldot at uclibc.org
2007-03-20 8:53 aldot at uclibc.org
2007-03-14 13:02 aldot at uclibc.org
2007-02-27 9:04 jacmet at uclibc.org
2007-02-23 11:55 jacmet at uclibc.org
2007-02-16 15:19 aldot at uclibc.org
2007-02-12 14:43 jacmet at uclibc.org
2007-02-06 16:34 jacmet at uclibc.org
2007-02-06 16:31 jacmet at uclibc.org
2007-02-06 16:23 jacmet at uclibc.org
2007-02-06 16:20 jacmet at uclibc.org
2007-02-06 16:18 jacmet at uclibc.org
2007-02-02 16:15 aldot at uclibc.org
2007-02-01 12:30 aldot at uclibc.org
2007-01-31 14:21 aldot at uclibc.org
2007-01-30 16:47 jacmet at uclibc.org
2007-01-30 13:37 jacmet at uclibc.org
2007-01-30 13:36 jacmet at uclibc.org
2006-12-13 6:58 andersen at uclibc.org
2006-12-13 6:18 andersen at uclibc.org
2006-12-07 16:31 aldot at uclibc.org
2006-12-02 19:36 aldot at uclibc.org
2006-12-02 18:36 aldot at uclibc.org
2006-12-02 17:03 aldot at uclibc.org
2006-11-17 12:57 aldot at uclibc.org
2006-11-17 11:37 aldot at uclibc.org
2006-10-25 8:10 jacmet at uclibc.org
2006-08-29 16:45 aldot at uclibc.org
2006-08-24 19:48 aldot at uclibc.org
2006-07-31 9:01 jacmet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070315083620.34B0E48022@busybox.net \
--to=jacmet@uclibc.org \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox