Commit Graph

681 Commits

Author SHA1 Message Date
YAMAMOTO Takashi
ab86da4639 netutils/ntpclient/Kconfig: Add NETUTILS_NTPCLIENT_STAY_ON
It's used in the code but missing in Kconfig.
I guess the PR [1] forgot to add this.

Make it "y" by default because it seems like the original behavior
before the PR [1].  I have no strong opinions on the default
either ways.

[1] https://github.com/apache/incubator-nuttx-apps/pull/570
2021-02-15 01:53:37 -08:00
YAMAMOTO Takashi
f613da4f92 webclient.c: Remove a space after a negative sign
from:

    return - ECONNABORTED;

to:

    return -ECONNABORTED;

The latter style is more commonly used within NuttX code base.

Note: nxstyle doesn't complain on either of them.
2021-02-12 08:51:23 +00: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
ca6907ccbe ntpclient.c: Avoid integer overflows in offset calculation
The current calculation easily overflows if the local time is
around the unix epoch.  I guess it isn't too unusual for
devices without RTC.  Or, the battery is dead.  Or, whatever.

This commit avoids the overflow by simply dividing everything by 2.
While more sophisticated and precise solutions are possible,
I feel that they are overkill for this simple implementation.

For example,

The unix epoch (1970) is 0x83aa7e8000000000 in
64-bit NTP timestamp. (1900-origin)
The timestamp now, as of writing this, is 0xe3cda16b00000000.

With the code before this commit, the offset will be:

(lldb) p (long long)((0xe3cda16b00000000 - 0x83aa7e8000000000) + (0xe3cda16b00000000 - 0x83aa7e8000000000)) / 2
(long long) $16 = -2295952992316162048
(lldb)

with the new code, it would be:

(lldb) p (long long)((0xe3cda16b00000000 / 2 - 0x83aa7e8000000000 / 2) + (0xe3cda16b00000    / 2 - 0x83aa7e8000000000 / 2))
(long long) $17 = 6927419044538613760
(lldb)

It's the correct offset from the unix epoch:

(lldb) p 6927419044538613760 >> 32
(long) $0 = 1612915435
(lldb)

spacetanuki% date -r 1612915435
Wed Feb 10 09:03:55 JST 2021
spacetanuki%
2021-02-09 22:47:20 -08:00
Masayuki Ishikawa
f14e98c942 netutils: iperf: Add pthread_join() to wait for completion
Summary:
- I noticed that lc823450-xgevk:rndis does not work with iperf
- Finally, I found that it does not call pthread_join()
- This commit fixes this issue

Impact:
- No impact

Testing:
- Tested with lc823450-xgevk:rndis
- NOTE: need to add iperf in the defconfig

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-02-01 18:21:36 -08:00
YAMAMOTO Takashi
8a19fe36e1 netcat_server: do not loop forever
To make it similar to other implementations.
(I followed the behavior of NetBSD's nc, which came from OpenBSD.)
2021-01-28 01:18:45 -08:00
YAMAMOTO Takashi
eb996e5650 netcat: Rewrite the i/o loop
* Stop echoing back the input.
  It isn't the responsibility of this app, IMO.

* Allow non-text data

* Error checks and cleanups
2021-01-28 01:18:45 -08:00
YAMAMOTO Takashi
8093aa7487 netcat: Fix the usage output 2021-01-28 01:18:45 -08:00
YAMAMOTO Takashi
87c876c1cc netcat: Fix a buffer overflow
The buffer doesn't have the space for the terminating NUL.
Fix it by replacing it with fwrite, as there seems to be little reason
to use fprintf and NUL-terminated string in the first place.
2021-01-27 11:28:10 +01:00
Juha Niskanen
3b21cd9ceb netutils/ntpclient: add more features
Allow multiple NTP servers, also with runtime configurable list
Add validation of received NTP packets
NTPv4 support with 'Kiss o' Death' message handling
IPv6 support
Collect multiple NTP samples and filter outsiders
Check if system clock has been altered during NTP (if CONFIG_CLOCK_MONOTONIC)

Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-01-26 03:23:27 -08:00
YAMAMOTO Takashi
412cf2b955 webclient: Fix a use of uninitialized variable
Detected by clang static analyzer.
2021-01-19 19:06:24 -08:00
Juha Niskanen
e800609e7b netutils/tftpc: typos, nxstyle 2021-01-19 19:51:33 +01:00
YAMAMOTO Takashi
ee1f4fdcdb webclient: Don't call the sink callback if no data is available
This happened frequently for me with Docker Desktop's
/var/run/docker.sock on macOS.
But I believe it can happen on other environments, even with TCP.

Alternatively, this case can be handled by the callback
implementations.  But it's simpler to handle the corner case here.
2021-01-17 18:44:17 -08:00
YAMAMOTO Takashi
1131cbe14d webclient: Implement AF_LOCAL 2021-01-17 18:44:17 -08:00
Masayuki Ishikawa
7f079d1c3c netutils : iperf: Fix compile warnings with Arm GCC 9.3.1
Summary:
- This commit fixes compile warnings with Arm GCC 9.3.1

Impact:
- None

Testing:
- Tested with lm3s6965-ek:discover
- NOTE: need to add the following configs
  +CONFIG_EXAMPLES_IPERF=y
  +CONFIG_EXAMPLES_IPERFTEST_DEVNAME="eth0"

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-01-15 02:22:40 -06:00
Juha Niskanen
35535655c5 ntpclient: change sinfo to ninfo
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-01-14 11:07:58 -06:00
YAMAMOTO Takashi
ebe3b0d302 webclient: Report unexpected connection loss as an explicit error
Otherwise, it can end up with mysterious results in user apps.
2021-01-13 20:51:06 -06:00
Juha Niskanen
eceaeb926a netutils/ftpd, examples/ftpd: code cleanup and nxstyle
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-01-13 20:22:55 -06:00
Juha Niskanen
31f52a1971 netutils/ftpd: fix compilation on dual-stack systems
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-01-13 20:22:55 -06:00
Juha Niskanen
5c8d6934a5 netutils/ftpd: fix hardfault when initial socket, bind or listen fails
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-01-13 20:22:55 -06:00
chenwen
756dc32fd0 netutils/iperf: Add iperf example.
system/argtable3: Add an ANSI C library for command-line parsing.
2021-01-07 08:43:26 -06:00
YAMAMOTO Takashi
f6f99c43aa netinit: Make the default SSID and passphrase empty
* It doesn't make much sense to have the default values for
  these highly environment-dependent settings.

* netutils/netinit/netinit_associate.c calls wpa_driver_wext_associate
  if the SSID is not empty. Depending on the environment, it can take
  long to fail. It slows down the boot of some configurations
  considerably. eg. esp32-devkitc:wapi
2020-12-22 01:23:55 -06:00
Huang Qi
3040c59ae9 Replace all wget with curl
wget is missing from some system (like macOS and Windows native),
it's better to use curl to simplify build environment.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2020-12-21 22:45:46 -06:00
Juha Niskanen
2a11d60246 netutils/ftpc: fix incorrect comments, nxstyle
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2020-12-13 11:14:43 -06:00
Juha Niskanen
810398de01 netutils/ftpc: add some error checks
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2020-12-13 11:14:43 -06:00
Juha Niskanen
4a56546811 netutils/ftpc: add config for using binary type for size command
This is handy for FOTA clients and others that always get binary files.

Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2020-12-13 11:14:43 -06:00
Juha Niskanen
8f0e872384 netutils/ftpc/ftpc_listdir.c: fix hardfault when issuing 'ls' before 'login'
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2020-12-13 11:14:43 -06:00
YAMAMOTO Takashi
ab83a12cff netutils/chat/chat.c: Avoid assumping debug macro expansion 2020-12-01 07:45:05 +01:00
YAMAMOTO Takashi
12a98433b7 netutils/chat/chat.c: Appease nxstyle
The following nxstyle error is intentionally left.
It's a nested function. I guess nxstyle doesn't support it.

netutils/chat/chat.c:110:8: error: Bad comment alignment
2020-12-01 07:45:05 +01:00
YAMAMOTO Takashi
3e015320e3 netutils/ftpd/ftpd.c: Fix syslog formats 2020-11-27 02:43:30 -06:00
YAMAMOTO Takashi
d1821c9bf0 netutils/thttpd/thttpd.c: Fix syslog formats 2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
c04f59cb2e netutils/thttpd/thttpd.c: Appease nxstyle
The following nxstyle errors are intentionally left.
The first one is in the copyright notice.
The others are identifiers like ClientData etc.

netutils/thttpd/thttpd.c:10:81: error: Long line found
netutils/thttpd/thttpd.c:99:2: error: Mixed case identifier found
netutils/thttpd/thttpd.c💯2: error: Mixed case identifier found
netutils/thttpd/thttpd.c:131:17: error: Mixed case identifier found
netutils/thttpd/thttpd.c:131:57: error: Mixed case identifier found
netutils/thttpd/thttpd.c:132:36: error: Mixed case identifier found
netutils/thttpd/thttpd.c:133:52: error: Mixed case identifier found
netutils/thttpd/thttpd.c:134:23: error: Mixed case identifier found
netutils/thttpd/thttpd.c:134:63: error: Mixed case identifier found
netutils/thttpd/thttpd.c:527:2: error: Mixed case identifier found
netutils/thttpd/thttpd.c:597:17: error: Mixed case identifier found
netutils/thttpd/thttpd.c:597:57: error: Mixed case identifier found
netutils/thttpd/thttpd.c:608:14: error: Mixed case identifier found
netutils/thttpd/thttpd.c:615:38: error: Mixed case identifier found
netutils/thttpd/thttpd.c:620:14: error: Mixed case identifier found
netutils/thttpd/thttpd.c:625:37: error: Mixed case identifier found
netutils/thttpd/thttpd.c:632:36: error: Mixed case identifier found
netutils/thttpd/thttpd.c:633:52: error: Mixed case identifier found
netutils/thttpd/thttpd.c:643:23: error: Mixed case identifier found
netutils/thttpd/thttpd.c:643:63: error: Mixed case identifier found
netutils/thttpd/thttpd.c:730:35: error: Mixed case identifier found
netutils/thttpd/thttpd.c:739:29: error: Mixed case identifier found
2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
92843ede9d netutils/thttpd/thttpd.c: Replace a non-ascii character
Replace a character (0xa9, which is the copyright sign in ISO 8859)
with "(C)".
2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
9aeade97d5 netutils/thttpd/fdwatch.c: Fix syslog formats 2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
d4f751f41f netutils/thttpd/fdwatch.c: Replace a non-ascii character
Replace a character (0xa9, which is the copyright sign in ISO 8859)
with "(C)".
2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
e1cfa52efa netutils/dhcpd/dhcpd.c: Fix syslog formats 2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
6520eb65b3 netutils/webserver/httpd.c: Fix syslog formats 2020-11-26 19:28:14 -08:00
YAMAMOTO Takashi
72d9b34fb1 netutils/tftpc/tftpc_put.c: Fix syslog formats 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
5a4bf6b349 netutils/tftpc/tftpc_get.c: Fix a syslog format 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
eeded9daa1 netutils/ntpclient/ntpclient.c: Fix syslog formats 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
13424fc404 netutils/ftpc/ftpc_putfile.c: Fix syslog formats 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
2a3f2ea8c6 netutils/ftpc/ftpc_putfile.c: Appease nxstyle 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
7b3ccfa9da netutils/ftpc/ftpc_getfile.c: Fix a syslog format 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
f83caca9ac netutils/ftpc/ftpc_getfile.c: Appease nxstyle 2020-11-24 18:44:23 -08:00
YAMAMOTO Takashi
5065d470ce netutils/netlib/netlib_ipmsfilter.c: Fix a syslog format 2020-11-23 04:59:11 -08:00
YAMAMOTO Takashi
cbaf05bfd0 netutils/netlib/netlib_ipmsfilter.c: Appease nxstyle 2020-11-23 04:59:11 -08:00
YAMAMOTO Takashi
37aa346da6 netutils/dhcpc/dhcpc.c: Fix syslog formats 2020-11-23 04:59:11 -08:00
YAMAMOTO Takashi
73fb7baa05 webclient: Distinguish request size and buffer size in body callback
This fixes the case when webclient_set_static_body is used
for data larger than webclient_context::buflen.

Note: as of writing this, webclient_set_static_body is the
only user of body_callback in NuttX apps tree.
2020-11-19 18:46:38 -08:00
Philippe Coval
4a5152fc91 netutils/netcat: Add netcat tool
Check readme for usage and demo:

[![weboftwins-osvehicle-2020-rzr](
https://files.mastodon.social/media_attachments/files/105/163/916/892/863/178/original/05468e28b4463f95.png
)](
https://mastodon.social/@rzr/105225153152922220#weboftwins-osvehicle-2020-rzr
"weboftwins-osvehicle-2020-rzr")

Change-Id: I2eac915954ca6cf585f01addb53df581631a7ae6
Bug: https://github.com/apache/incubator-nuttx/pull/1999
Relate-to: https://github.com/rzr/aframe-smart-home/issues/3
Origin: https://github.com/CrossStream/nuttx-apps/tree/sandbox/rzr/review/master/netutils/netcat
Forwarded: https://github.com/apache/incubator-nuttx-apps/pull/482
Signed-off-by: Philippe Coval <rzr@users.sf.net>
2020-11-17 09:12:54 -08:00
YAMAMOTO Takashi
b4651db64f netutils/webserver/httpd_dirlist.c: Fix a printf format warning 2020-11-13 05:51:23 -08:00