summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2024-11-22 14:43:17 -0600
committerTom Rini <[email protected]>2024-11-22 15:04:54 -0600
commit52c0e5f8a39ef022ee5ab2dfd67661d1d34941c7 (patch)
treeecb418b0233d67abb0e946128fc5f383c3caac5f /net
parent35d5ad6cf25f8c0ac39f90a8a51eb77e6e002d0d (diff)
parent0e3cd1313f031acd7e2e29b5742e625f842b52fa (diff)
Merge branch '2024-11-22-assorted-fixes'
- Assorted additional lwIP fixes - Assorted test fixes - Assorted other localized fixes
Diffstat (limited to 'net')
-rw-r--r--net/lwip/dhcp.c20
-rw-r--r--net/lwip/net-lwip.c6
-rw-r--r--net/lwip/wget.c6
3 files changed, 21 insertions, 11 deletions
diff --git a/net/lwip/dhcp.c b/net/lwip/dhcp.c
index 23b56226921..9b882cf5b87 100644
--- a/net/lwip/dhcp.c
+++ b/net/lwip/dhcp.c
@@ -27,9 +27,9 @@ static void call_lwip_dhcp_fine_tmr(void *ctx)
static int dhcp_loop(struct udevice *udev)
{
- char *ipstr = "ipaddr\0\0";
- char *maskstr = "netmask\0\0";
- char *gwstr = "gatewayip\0\0";
+ char ipstr[] = "ipaddr\0\0";
+ char maskstr[] = "netmask\0\0";
+ char gwstr[] = "gatewayip\0\0";
unsigned long start;
struct netif *netif;
struct dhcp *dhcp;
@@ -111,9 +111,21 @@ static int dhcp_loop(struct udevice *udev)
int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
+ int ret;
+
eth_set_current();
- return dhcp_loop(eth_get_dev());
+ ret = dhcp_loop(eth_get_dev());
+ if (ret)
+ return ret;
+
+ if (argc > 1) {
+ struct cmd_tbl cmdtp = {};
+
+ return do_tftpb(&cmdtp, 0, argc, argv);
+ }
+
+ return CMD_RET_SUCCESS;
}
int dhcp_run(ulong addr, const char *fname, bool autoload)
diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c
index 470217781a4..b863047f598 100644
--- a/net/lwip/net-lwip.c
+++ b/net/lwip/net-lwip.c
@@ -91,9 +91,9 @@ struct netif *net_lwip_get_netif(void)
static int get_udev_ipv4_info(struct udevice *dev, ip4_addr_t *ip,
ip4_addr_t *mask, ip4_addr_t *gw)
{
- char *ipstr = "ipaddr\0\0";
- char *maskstr = "netmask\0\0";
- char *gwstr = "gatewayip\0\0";
+ char ipstr[] = "ipaddr\0\0";
+ char maskstr[] = "netmask\0\0";
+ char gwstr[] = "gatewayip\0\0";
int idx = dev_seq(dev);
char *env;
diff --git a/net/lwip/wget.c b/net/lwip/wget.c
index e85d57bc1dd..062aa7c44f0 100644
--- a/net/lwip/wget.c
+++ b/net/lwip/wget.c
@@ -42,7 +42,6 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len,
size_t *olen)
{
struct udevice *dev;
- u64 rng = 0;
int ret;
*olen = 0;
@@ -52,12 +51,11 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len,
log_err("Failed to get an rng: %d\n", ret);
return ret;
}
- ret = dm_rng_read(dev, &rng, sizeof(rng));
+ ret = dm_rng_read(dev, output, len);
if (ret)
return ret;
- memcpy(output, &rng, len);
- *olen = sizeof(rng);
+ *olen = len;
return 0;
}