busybox: rename udhcpc-remove-code-which-requires-server-ID-to-be-on patch
authorHans Dedecker <dedeckeh@gmail.com>
Thu, 21 Jun 2018 20:44:19 +0000 (22:44 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Thu, 21 Jun 2018 20:48:23 +0000 (22:48 +0200)
Move udhcpc-remove-code-which-requires-server-ID-to-be-on patch from 500
to 400

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
package/utils/busybox/patches/400-udhcpc-remove-code-which-requires-server-ID-to-be-on.patch [new file with mode: 0644]
package/utils/busybox/patches/500-udhcpc-remove-code-which-requires-server-ID-to-be-on.patch [deleted file]

diff --git a/package/utils/busybox/patches/400-udhcpc-remove-code-which-requires-server-ID-to-be-on.patch b/package/utils/busybox/patches/400-udhcpc-remove-code-which-requires-server-ID-to-be-on.patch
new file mode 100644 (file)
index 0000000..6770391
--- /dev/null
@@ -0,0 +1,117 @@
+From 148788eb0ee96026105755cf3fd1ad3d94f49cd2 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Thu, 21 Jun 2018 17:36:22 +0200
+Subject: [PATCH] udhcpc: remove code which requires server ID to be on local
+ network
+
+This reverts "udhcpc: paranoia when using kernel UDP mode
+for sending renew: server ID may be bogus".
+
+Users complain that they do have servers behind routers
+(with DHCP relays).
+
+function                                             old     new   delta
+send_packet                                          168     166      -2
+bcast_or_ucast                                        25      23      -2
+udhcp_send_kernel_packet                             301     295      -6
+------------------------------------------------------------------------------
+(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-10)             Total: -10 bytes
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ networking/udhcp/common.h   |  4 +---
+ networking/udhcp/d6_dhcpc.c |  4 +---
+ networking/udhcp/dhcpc.c    | 10 ++--------
+ networking/udhcp/dhcpd.c    |  4 +---
+ networking/udhcp/packet.c   |  7 +++----
+ 5 files changed, 8 insertions(+), 21 deletions(-)
+
+--- a/networking/udhcp/common.h
++++ b/networking/udhcp/common.h
+@@ -308,9 +308,7 @@ int udhcp_send_raw_packet(struct dhcp_pa
+ int udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
+               uint32_t source_nip, int source_port,
+-              uint32_t dest_nip, int dest_port,
+-              int send_flags
+-) FAST_FUNC;
++              uint32_t dest_nip, int dest_port) FAST_FUNC;
+ void udhcp_sp_setup(void) FAST_FUNC;
+ void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC;
+--- a/networking/udhcp/d6_dhcpc.c
++++ b/networking/udhcp/d6_dhcpc.c
+@@ -702,15 +702,13 @@ static NOINLINE int send_d6_renew(uint32
+       opt_ptr = add_d6_client_options(opt_ptr);
+       bb_error_msg("sending %s", "renew");
+-      if (server_ipv6) {
++      if (server_ipv6)
+               return d6_send_kernel_packet(
+                       &packet, (opt_ptr - (uint8_t*) &packet),
+                       our_cur_ipv6, CLIENT_PORT6,
+                       server_ipv6, SERVER_PORT6,
+                       client_config.ifindex
+-                      /* TODO? send_flags: MSG_DONTROUTE (see IPv4 code for reason why) */
+               );
+-      }
+       return d6_mcast_from_client_config_ifindex(&packet, opt_ptr);
+ }
+--- a/networking/udhcp/dhcpc.c
++++ b/networking/udhcp/dhcpc.c
+@@ -693,16 +693,10 @@ static int raw_bcast_from_client_config_
+ static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server)
+ {
+-      if (server) {
+-              /* Without MSG_DONTROUTE, the packet was seen routed over
+-               * _other interface_ if server ID is bogus (example: 1.1.1.1).
+-               */
++      if (server)
+               return udhcp_send_kernel_packet(packet,
+                       ciaddr, CLIENT_PORT,
+-                      server, SERVER_PORT,
+-                      /*send_flags: "to hosts only on directly connected networks" */ MSG_DONTROUTE
+-              );
+-      }
++                      server, SERVER_PORT);
+       return raw_bcast_from_client_config_ifindex(packet, ciaddr);
+ }
+--- a/networking/udhcp/dhcpd.c
++++ b/networking/udhcp/dhcpd.c
+@@ -588,9 +588,7 @@ static void send_packet_to_relay(struct
+       udhcp_send_kernel_packet(dhcp_pkt,
+                       server_config.server_nip, SERVER_PORT,
+-                      dhcp_pkt->gateway_nip, SERVER_PORT,
+-                      /*send_flags:*/ 0
+-      );
++                      dhcp_pkt->gateway_nip, SERVER_PORT);
+ }
+ static void send_packet(struct dhcp_packet *dhcp_pkt, int force_broadcast)
+--- a/networking/udhcp/packet.c
++++ b/networking/udhcp/packet.c
+@@ -189,8 +189,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+ /* Let the kernel do all the work for packet generation */
+ int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
+               uint32_t source_nip, int source_port,
+-              uint32_t dest_nip, int dest_port,
+-              int send_flags)
++              uint32_t dest_nip, int dest_port)
+ {
+       struct sockaddr_in sa;
+       unsigned padding;
+@@ -227,8 +226,8 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+       padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
+       if (padding > DHCP_SIZE - 300)
+               padding = DHCP_SIZE - 300;
+-      result = send(fd, dhcp_pkt, DHCP_SIZE - padding, send_flags);
+-      msg = "send";
++      result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
++      msg = "write";
+  ret_close:
+       close(fd);
+       if (result < 0) {
diff --git a/package/utils/busybox/patches/500-udhcpc-remove-code-which-requires-server-ID-to-be-on.patch b/package/utils/busybox/patches/500-udhcpc-remove-code-which-requires-server-ID-to-be-on.patch
deleted file mode 100644 (file)
index 6770391..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From 148788eb0ee96026105755cf3fd1ad3d94f49cd2 Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Thu, 21 Jun 2018 17:36:22 +0200
-Subject: [PATCH] udhcpc: remove code which requires server ID to be on local
- network
-
-This reverts "udhcpc: paranoia when using kernel UDP mode
-for sending renew: server ID may be bogus".
-
-Users complain that they do have servers behind routers
-(with DHCP relays).
-
-function                                             old     new   delta
-send_packet                                          168     166      -2
-bcast_or_ucast                                        25      23      -2
-udhcp_send_kernel_packet                             301     295      -6
-------------------------------------------------------------------------------
-(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-10)             Total: -10 bytes
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- networking/udhcp/common.h   |  4 +---
- networking/udhcp/d6_dhcpc.c |  4 +---
- networking/udhcp/dhcpc.c    | 10 ++--------
- networking/udhcp/dhcpd.c    |  4 +---
- networking/udhcp/packet.c   |  7 +++----
- 5 files changed, 8 insertions(+), 21 deletions(-)
-
---- a/networking/udhcp/common.h
-+++ b/networking/udhcp/common.h
-@@ -308,9 +308,7 @@ int udhcp_send_raw_packet(struct dhcp_pa
- int udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
-               uint32_t source_nip, int source_port,
--              uint32_t dest_nip, int dest_port,
--              int send_flags
--) FAST_FUNC;
-+              uint32_t dest_nip, int dest_port) FAST_FUNC;
- void udhcp_sp_setup(void) FAST_FUNC;
- void udhcp_sp_fd_set(struct pollfd *pfds, int extra_fd) FAST_FUNC;
---- a/networking/udhcp/d6_dhcpc.c
-+++ b/networking/udhcp/d6_dhcpc.c
-@@ -702,15 +702,13 @@ static NOINLINE int send_d6_renew(uint32
-       opt_ptr = add_d6_client_options(opt_ptr);
-       bb_error_msg("sending %s", "renew");
--      if (server_ipv6) {
-+      if (server_ipv6)
-               return d6_send_kernel_packet(
-                       &packet, (opt_ptr - (uint8_t*) &packet),
-                       our_cur_ipv6, CLIENT_PORT6,
-                       server_ipv6, SERVER_PORT6,
-                       client_config.ifindex
--                      /* TODO? send_flags: MSG_DONTROUTE (see IPv4 code for reason why) */
-               );
--      }
-       return d6_mcast_from_client_config_ifindex(&packet, opt_ptr);
- }
---- a/networking/udhcp/dhcpc.c
-+++ b/networking/udhcp/dhcpc.c
-@@ -693,16 +693,10 @@ static int raw_bcast_from_client_config_
- static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server)
- {
--      if (server) {
--              /* Without MSG_DONTROUTE, the packet was seen routed over
--               * _other interface_ if server ID is bogus (example: 1.1.1.1).
--               */
-+      if (server)
-               return udhcp_send_kernel_packet(packet,
-                       ciaddr, CLIENT_PORT,
--                      server, SERVER_PORT,
--                      /*send_flags: "to hosts only on directly connected networks" */ MSG_DONTROUTE
--              );
--      }
-+                      server, SERVER_PORT);
-       return raw_bcast_from_client_config_ifindex(packet, ciaddr);
- }
---- a/networking/udhcp/dhcpd.c
-+++ b/networking/udhcp/dhcpd.c
-@@ -588,9 +588,7 @@ static void send_packet_to_relay(struct
-       udhcp_send_kernel_packet(dhcp_pkt,
-                       server_config.server_nip, SERVER_PORT,
--                      dhcp_pkt->gateway_nip, SERVER_PORT,
--                      /*send_flags:*/ 0
--      );
-+                      dhcp_pkt->gateway_nip, SERVER_PORT);
- }
- static void send_packet(struct dhcp_packet *dhcp_pkt, int force_broadcast)
---- a/networking/udhcp/packet.c
-+++ b/networking/udhcp/packet.c
-@@ -189,8 +189,7 @@ int FAST_FUNC udhcp_send_raw_packet(stru
- /* Let the kernel do all the work for packet generation */
- int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
-               uint32_t source_nip, int source_port,
--              uint32_t dest_nip, int dest_port,
--              int send_flags)
-+              uint32_t dest_nip, int dest_port)
- {
-       struct sockaddr_in sa;
-       unsigned padding;
-@@ -227,8 +226,8 @@ int FAST_FUNC udhcp_send_kernel_packet(s
-       padding = DHCP_OPTIONS_BUFSIZE - 1 - udhcp_end_option(dhcp_pkt->options);
-       if (padding > DHCP_SIZE - 300)
-               padding = DHCP_SIZE - 300;
--      result = send(fd, dhcp_pkt, DHCP_SIZE - padding, send_flags);
--      msg = "send";
-+      result = safe_write(fd, dhcp_pkt, DHCP_SIZE - padding);
-+      msg = "write";
-  ret_close:
-       close(fd);
-       if (result < 0) {