From 84a180d585686cda693bf8c6ed6b86f7c5dd5eee Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Mon, 23 Aug 2021 19:31:39 +0800 Subject: [PATCH] feat: add interface of dhcp_is_bound add interface of dhcp_is_bound close: #I46W08 Signed-off-by: liujiandong --- .../net/lwip-2.1/enhancement/src/fixme.c | 21 ++++++++++ .../net/lwip-2.1/porting/include/lwip/dhcp.h | 38 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 components/net/lwip-2.1/porting/include/lwip/dhcp.h diff --git a/components/net/lwip-2.1/enhancement/src/fixme.c b/components/net/lwip-2.1/enhancement/src/fixme.c index 5985736b..19e83eb9 100644 --- a/components/net/lwip-2.1/enhancement/src/fixme.c +++ b/components/net/lwip-2.1/enhancement/src/fixme.c @@ -39,6 +39,27 @@ #define NETIFAPI_VAR_ALLOC(name) API_VAR_ALLOC(struct netifapi_msg, MEMP_NETIFAPI_MSG, name, ERR_MEM) #define NETIFAPI_VAR_FREE(name) API_VAR_FREE(MEMP_NETIFAPI_MSG, name) +#if LWIP_DHCP +#include +#include + +err_t dhcp_is_bound(struct netif *netif) +{ + struct dhcp *dhcp = NULL; + + LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG); + + dhcp = netif_dhcp_data(netif); + LWIP_ERROR("netif->dhcp != NULL", (dhcp != NULL), return ERR_ARG); + + if (dhcp->state == DHCP_STATE_BOUND) { + return ERR_OK; + } else { + return ERR_INPROGRESS; + } +} +#endif /* LWIP_DHCP */ + static struct netif *netif_find_by_name(const char *name) { struct netif *netif = NULL; diff --git a/components/net/lwip-2.1/porting/include/lwip/dhcp.h b/components/net/lwip-2.1/porting/include/lwip/dhcp.h new file mode 100644 index 00000000..70f9b9bf --- /dev/null +++ b/components/net/lwip-2.1/porting/include/lwip/dhcp.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2021-2021 Huawei Device Co., Ltd. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used + * to endorse or promote products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LWIP_PORTING_DHCP_H_ +#define _LWIP_PORTING_DHCP_H_ + +#include_next + +err_t dhcp_is_bound(struct netif *netif); + +#endif /* _LWIP_PORTING_DHCP_H_ */