Commit Graph

60 Commits

Author SHA1 Message Date
Zhe Weng
3e68694bdf netutils/dhcpc: Set BOOTP BROADCAST flag when IPFORWARD is enabled
Socket binded to INADDR_ANY is not intended to receive unicast traffic before being fully configured, at least dhclient configured with socket-only won't do so on Linux and BSDs (https://github.com/isc-projects/dhcp/blob/v4_4_3/common/socket.c#L1201).
We can sometimes receive unicast traffic before being fully configured, it's good, but not always, so we need to set the broadcast flag under some situations.

Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2023-06-15 10:10:05 +08:00
zhanghongyu
44e5a5ecd7 dhcpc: adds errno to the dhcpc internal error
add errno to help analyze possible causes of dhcp failures

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2023-05-12 22:30:38 +08:00
zhanghongyu
96956ba83c dhcpc: under STATE_HAVE_OFFER, dont send DECLINE when offer from same server
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2023-02-11 14:37:19 +08:00
田昕
2b2c4805a4 netutils/dhcpc:fix dhcp hostname len error in dhcpc_sendmsg
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2023-01-10 21:52:31 +08:00
zhanghongyu
f6ab04addb dhcpc: codechecker issuse fix
presult->serverid.s_addr maybe is garbage or undefined

Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2022-10-21 16:31:13 +08:00
田昕
e69a032f20 dhcpc:fix xid error clear bug.
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-10-20 22:12:33 +08:00
Fotis Panagiotopoulos
bcbf3ae89d Fixes in DHCPc. 2022-10-13 22:59:54 +02:00
SunJ
162dc0996c netutils/dhcpc: Add dhcp client id option
Signed-off-by: SunJ <jsun@bouffalolab.com>
2022-09-27 12:20:34 +08:00
chao an
09dfbdf4c7 netutls/dhcpc: treat EINTR as normal errno
A return code of EINTR is perfectly normal, and isn't an error as such.
It's an indication that your program may need to do something because
a signal occurred, but if not, should re-call recv().

Signed-off-by: chao an <anchao@xiaomi.com>
2022-09-27 12:20:25 +08:00
chao an
cbcfe6be28 netutils/dhcpc: Set close-on-exec by default to avoid udp_conn leak
Signed-off-by: chao an <anchao@xiaomi.com>
2022-09-27 12:20:25 +08:00
田昕
21e1ef11da netutils/dhcpc:receiving unexpected packet not leading to dhcp retry.
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-09-08 14:48:56 +08:00
田昕
37b77a78fa netutils/dhcpc:Make DHCP xid random
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-09-06 19:33:38 +08:00
chao.an
995aef9d99 net/sockopt: move BINDTODEVICE to socket level
rename the UDP_BINDTODEVICE to SO_BINDTODEVICE to follow the linux
style to be compatible with non-UDP protocol binding requirements

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-08-25 00:11:23 +08:00
YAMAMOTO Takashi
83505e217b dhcpc: Rename timeout Kconfig
NETUTILS_DHCPC_RECV_TIMEOUT -> NETUTILS_DHCPC_RECV_TIMEOUT_MS

Recently its unit has been changed from second to millisecond. [1]
Using the same Kconfig name for a different meaning is a pitfall
for an upgrade. I was using 3ms timeout because of this.

This commit renames it so that at least the default value
is used for a careless user like me.

[1]
```
commit 8fd4b6105b
Author: zrrong <zrrong@bouffalolab.com>
Date:   Fri May 27 11:35:23 2022 +0800

    netutils/dhcpc: Change the timeout unit to milliseconds
```
2022-07-07 21:42:58 +08:00
zrrong
8fd4b6105b netutils/dhcpc: Change the timeout unit to milliseconds 2022-05-31 11:01:19 +03:00
songlinzhang
04dd2d70fd netutils/dhcpc: Fix dhcpc lease bug
Signed-off-by: songlinzhang <songlinzhang@xiaomi.com>
2022-01-05 18:27:59 +08:00
songlinzhang
e0fc53b23c netutils/dhcpc: add non-blocking interface
Signed-off-by: songlinzhang <songlinzhang@xiaomi.com>
2021-11-29 02:04:49 -06:00
songlinzhang
98dfaa3eff dhcpc abnormal block
The logic changes are as follows:
1、Loop sending the DISCOVER up to CONFIG_NETUTILS_DHCPC_RETRIES times
   and exit if failure
2、Loop sending the REQUEST up to CONFIG_NETUTILS_DHCPC_RETRIES times
   and exit if failure

Signed-off-by: songlinzhang <songlinzhang@xiaomi.com>
2021-10-22 09:20:25 -03:00
Beat Küng
7fdd751b7a dhcpc: fix potential invalid memory reads
- check for minimum packet length (44 bytes, which includes the fields we
  read next)
- pass the correct remaining buffer length to dhcpc_parseoptions()
- dhcpc_parseoptions(): ensure we never read past the end of the buffer
2021-06-30 03:00:42 -05:00
Alin Jerpelea
e78ef68927 netutils: fix relative path CI error
error: Path relative to repository other than nuttx must begin with the root directory
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-06-16 09:03:06 -05:00
chao.an
ebbf2fc072 netutils/dhcpc: configurable Bootstrap flags
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-02-11 21:38:43 -08:00
YAMAMOTO Takashi
37aa346da6 netutils/dhcpc/dhcpc.c: Fix syslog formats 2020-11-23 04:59:11 -08:00
Masayuki Ishikawa
e8a353af05 netutils: dhcpc: Fix dhcpc.c
Summary:
- dhcpc now uses gethostname() but the hostname might be empty
- This commit fixes this issue

Impact:
- All use cases which use dhcpc

Testing:
- Tested with spresense:wifi

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-09-20 08:19:38 -07:00
chao.an
77aa0e8908 netutils/dhcpc: try to get the host name via syscall first
Change-Id: I22aa8316f5c126bf3bafe9476a27a43c01da6129
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-09-19 01:13:05 -07:00
chao.an
24407f16f5 net/sockopt: change the socket option style from Linux to BSD
Linux Programmer's Manual
...
IP(7)
...
NOTES
...
    Using the SOL_IP socket options level isn't portable;
    BSD-based stacks use the IPPROTO_IP level.

Change-Id: I143477d8884dd44913c5685028ee62854e4c11ac
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-06-29 21:07:04 -05:00
YAMAMOTO Takashi
6b00c37a65 dhcpc.c: Fix an nxstyle complaint 2020-05-25 23:53:29 +08:00
YAMAMOTO Takashi
1cb82e58ac dhcpc: Don't use an uninitialized variable 2020-05-25 23:53:29 +08:00
chao.an
c6b678fa60 netutils/dhcpc: fix nxstyle warning
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-04-03 18:11:27 -06:00
chao.an
70bb13ce3b netutils/dhcpc: configurable timeout and retry count.
Change-Id: I92e77bd24ddd7ffff39de9215f4b7c05a7b55bee
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-04-03 18:11:27 -06:00
Xiang Xiao
857158451b Unify the void cast usage
1.Remove void cast for function because many place ignore the returned value witout cast
2.Replace void cast for variable with UNUSED macro

Change-Id: Ie644129a563244a6397036789c4c3ea83c4e9b09
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-01-02 23:21:01 +08:00
Masayuki Ishikawa
811086ff85 Merged in masayuki2009/nuttx.apps/dhcpc_host_name (pull request #197)
netutils/dhcpc: Add host name support to dhcp client

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2019-08-14 11:29:18 +00:00
Kevin Liu
721bb64e52 apps/netutils/dhcpc/dhcpc.c: Fix an error for DHCP REQUEST receiving a NAK.In DHCP Request operation, no need to update ciaddr to the client address and keep it as 0. 2019-01-30 07:49:37 -06:00
Gregory Nutt
0c615ed586 Fix a few typos. 2018-12-27 08:48:52 -06:00
Gregory Nutt
4d8b8fa177 apps/netutils/dhcpc: Activates BINDTODEVICE if available, and break up some long lines 2018-06-25 15:19:01 -06:00
Gregory Nutt
2984fa3911 apps/system/dhcpc: Add a command to renew or establish a lease on an IPv4 address. 2017-05-21 10:51:26 -06:00
Gregory Nutt
82debd80dc Fix some coding standard issues. 2017-05-19 15:41:28 -06:00
Sebastien Lorquet
ea1025ead2 DHCPC: Remove hard-coded interface device. Now passed as a parameter to dhcpc_open(). 2017-05-19 15:31:22 -06:00
Gregory Nutt
4ba1f8665d netutils/dhcpc: Make the network device name a configuration option. Was hardcoded to eth0 but may, instead, need to be wlan0 2017-05-02 08:20:05 -06:00
Sebastien Lorquet
2cbad44f1d This is the Pokemon patch to change all includes fronm <apps/bla/bla.h> to "bla/bla.h" 2016-07-11 10:11:18 -06:00
Gregory Nutt
a50383db3d apps/graphics and netutils: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition. 2016-06-14 17:53:47 -06:00
Gregory Nutt
586b0aa7e0 Change names of *dbg() * *err() 2016-06-11 15:51:27 -06:00
Gregory Nutt
344c92e2a4 Replace all occurrences of vdbg with vinfo 2016-06-11 11:55:38 -06:00
Gregory Nutt
e3ad56043e Standardize naming used for public data and function groupings 2015-10-02 16:20:33 -06:00
Gregory Nutt
e9447c6058 Standardize nameing of the pre-processor definitiongs group header 2015-10-02 14:06:11 -06:00
Gregory Nutt
fe20f19afe Some files that now include sys/time.h should no longer include timer.h 2015-02-15 16:38:18 -06:00
Gregory Nutt
23dfce6275 Suffer the consequences of moving struct timeval to its correct location 2015-02-15 15:18:35 -06:00
Gregory Nutt
953c0fb069 Rename IPv4 netlib functions and files to make room in the namespace for corresponding IPv6 functions and files 2015-01-18 14:17:00 -06:00
Gregory Nutt
42d4d7a7e0 NET: Most of the contents of include/nuttx/net/udp.h moved to net/pkt/udp.h 2014-07-05 14:40:29 -06:00
Gregory Nutt
633fae427d NET: emoved all includes of uip.h; added includes of ip.h wherever needed. Tried to fix problems of the now missing sneak inclusions because uip.h was removed. There are probably a few of these that were missed. 2014-07-04 19:13:08 -06:00
Gregory Nutt
069c43a5dd Remove all inclusion of uip.h 2014-07-04 16:58:22 -06:00