From: kang Date: Fri, 1 Sep 2017 02:34:30 +0000 (+0900) Subject: Move network modules from the netutils folder to external X-Git-Tag: 1.1_Public_Release~297^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b97b9db235f58ddda3b618468b71b40b9cce7333;p=rtos%2Ftinyara.git Move network modules from the netutils folder to external --- diff --git a/apps/examples/artik_demo/artik_demo.c b/apps/examples/artik_demo/artik_demo.c index 9c898cd..3644e68 100644 --- a/apps/examples/artik_demo/artik_demo.c +++ b/apps/examples/artik_demo/artik_demo.c @@ -30,16 +30,16 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include #include -#include +#include /**************************************************************************** * Definitions diff --git a/apps/examples/easysetup/easysetup_main.c b/apps/examples/easysetup/easysetup_main.c index 624b8a5..0247a28 100644 --- a/apps/examples/easysetup/easysetup_main.c +++ b/apps/examples/easysetup/easysetup_main.c @@ -14,9 +14,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include "wifi_api.h" /**************************************************************************** diff --git a/apps/examples/ftpd/ftpd_main.c b/apps/examples/ftpd/ftpd_main.c index 6e662db..2a25192 100644 --- a/apps/examples/ftpd/ftpd_main.c +++ b/apps/examples/ftpd/ftpd_main.c @@ -63,8 +63,8 @@ #include #include -#include -#include +#include +#include #include "ftpd.h" diff --git a/apps/examples/iotivity_simpleserver/simpleServer.c b/apps/examples/iotivity_simpleserver/simpleServer.c index 5c4464e..2eb7043 100644 --- a/apps/examples/iotivity_simpleserver/simpleServer.c +++ b/apps/examples/iotivity_simpleserver/simpleServer.c @@ -68,7 +68,7 @@ #include #include #include -#include +#include /**************************************************************************** * Definitions diff --git a/apps/examples/libcoap_client/libcoap-client.c b/apps/examples/libcoap_client/libcoap-client.c index e3d03ec..cdd9ab3 100644 --- a/apps/examples/libcoap_client/libcoap-client.c +++ b/apps/examples/libcoap_client/libcoap-client.c @@ -21,7 +21,7 @@ #include #include -#include +#include #ifdef WITH_MBEDTLS #define COAP_MBEDTLS_CIPHERSUIT "TLS-PSK-WITH-AES-128-CBC-SHA" diff --git a/apps/examples/libcoap_server/libcoap-server.c b/apps/examples/libcoap_server/libcoap-server.c index ef59c82..9683d12 100644 --- a/apps/examples/libcoap_server/libcoap-server.c +++ b/apps/examples/libcoap_server/libcoap-server.c @@ -23,7 +23,7 @@ #include #include -#include +#include #define COAP_RESOURCE_CHECK_TIME 2 diff --git a/apps/examples/mdns_test/mdns_main.c b/apps/examples/mdns_test/mdns_main.c index 4b0a813..6eaba95 100644 --- a/apps/examples/mdns_test/mdns_main.c +++ b/apps/examples/mdns_test/mdns_main.c @@ -62,7 +62,7 @@ #include #include -#include +#include #include #include diff --git a/apps/examples/mqtt_test/mqtt_client_pub.c b/apps/examples/mqtt_test/mqtt_client_pub.c index ba24de9..e760b77 100644 --- a/apps/examples/mqtt_test/mqtt_client_pub.c +++ b/apps/examples/mqtt_test/mqtt_client_pub.c @@ -34,7 +34,7 @@ #include #include -#include +#include #if defined(CONFIG_NETUTILS_MQTT_SECURITY) #include "tls/x509_crt.h" diff --git a/apps/examples/mqtt_test/mqtt_client_sub.c b/apps/examples/mqtt_test/mqtt_client_sub.c index 8c4d547..1927595 100644 --- a/apps/examples/mqtt_test/mqtt_client_sub.c +++ b/apps/examples/mqtt_test/mqtt_client_sub.c @@ -32,7 +32,7 @@ #include #include -#include +#include #if defined(CONFIG_NETUTILS_MQTT_SECURITY) #include "tls/x509_crt.h" diff --git a/apps/examples/nettest/nettest.c b/apps/examples/nettest/nettest.c index 297745e..4a8e74d 100644 --- a/apps/examples/nettest/nettest.c +++ b/apps/examples/nettest/nettest.c @@ -102,7 +102,7 @@ #include #include #include -#include +#include #include #include diff --git a/apps/examples/ntpclient_test/ntpclient_main.c b/apps/examples/ntpclient_test/ntpclient_main.c index 2f5c0c9..a28ff09 100644 --- a/apps/examples/ntpclient_test/ntpclient_main.c +++ b/apps/examples/ntpclient_test/ntpclient_main.c @@ -64,7 +64,7 @@ #include #include -#include +#include /**************************************************************************** * Definitions diff --git a/apps/examples/slsiwifi/nettest_functions.c b/apps/examples/slsiwifi/nettest_functions.c index 45f406f..06568be 100644 --- a/apps/examples/slsiwifi/nettest_functions.c +++ b/apps/examples/slsiwifi/nettest_functions.c @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/apps/examples/telnetd/telnetd.c b/apps/examples/telnetd/telnetd.c index 93729ca..2182b1e 100644 --- a/apps/examples/telnetd/telnetd.c +++ b/apps/examples/telnetd/telnetd.c @@ -64,8 +64,8 @@ #include #include #include -#include -#include +#include +#include #include "telnetd.h" /**************************************************************************** diff --git a/apps/examples/testcase/le_tc/network/tc_net_accept.c b/apps/examples/testcase/le_tc/network/tc_net_accept.c index 6d427c5..6366727 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_accept.c +++ b/apps/examples/testcase/le_tc/network/tc_net_accept.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_bind.c b/apps/examples/testcase/le_tc/network/tc_net_bind.c index f7e7c4a..db35329 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_bind.c +++ b/apps/examples/testcase/le_tc/network/tc_net_bind.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_close.c b/apps/examples/testcase/le_tc/network/tc_net_close.c index 30521f5..c31e7da 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_close.c +++ b/apps/examples/testcase/le_tc/network/tc_net_close.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include #include "tc_internal.h" diff --git a/apps/examples/testcase/le_tc/network/tc_net_connect.c b/apps/examples/testcase/le_tc/network/tc_net_connect.c index abe9b27..4f8df69 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_connect.c +++ b/apps/examples/testcase/le_tc/network/tc_net_connect.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_dhcpc.c b/apps/examples/testcase/le_tc/network/tc_net_dhcpc.c index 473e00b..3af5a11 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_dhcpc.c +++ b/apps/examples/testcase/le_tc/network/tc_net_dhcpc.c @@ -28,7 +28,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_ether.c b/apps/examples/testcase/le_tc/network/tc_net_ether.c index ac1de1e..33455d0 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_ether.c +++ b/apps/examples/testcase/le_tc/network/tc_net_ether.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_fcntl.c b/apps/examples/testcase/le_tc/network/tc_net_fcntl.c index f691310..336b164 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_fcntl.c +++ b/apps/examples/testcase/le_tc/network/tc_net_fcntl.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_getpeername.c b/apps/examples/testcase/le_tc/network/tc_net_getpeername.c index 7ec1ffe..a28c605 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_getpeername.c +++ b/apps/examples/testcase/le_tc/network/tc_net_getpeername.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_getsockname.c b/apps/examples/testcase/le_tc/network/tc_net_getsockname.c index 587464b..aaf5ebc 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_getsockname.c +++ b/apps/examples/testcase/le_tc/network/tc_net_getsockname.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_getsockopt.c b/apps/examples/testcase/le_tc/network/tc_net_getsockopt.c index c26fe76..2c12698 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_getsockopt.c +++ b/apps/examples/testcase/le_tc/network/tc_net_getsockopt.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_inet.c b/apps/examples/testcase/le_tc/network/tc_net_inet.c index 797d870..577c6bf 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_inet.c +++ b/apps/examples/testcase/le_tc/network/tc_net_inet.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_ioctl.c b/apps/examples/testcase/le_tc/network/tc_net_ioctl.c index b89d06e..c873a3d 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_ioctl.c +++ b/apps/examples/testcase/le_tc/network/tc_net_ioctl.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_listen.c b/apps/examples/testcase/le_tc/network/tc_net_listen.c index 9b43c2e..9443ae9 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_listen.c +++ b/apps/examples/testcase/le_tc/network/tc_net_listen.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_netdb.c b/apps/examples/testcase/le_tc/network/tc_net_netdb.c index b6c343a..7e27d29 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_netdb.c +++ b/apps/examples/testcase/le_tc/network/tc_net_netdb.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #ifdef CONFIG_LIBC_NETDB diff --git a/apps/examples/testcase/le_tc/network/tc_net_recv.c b/apps/examples/testcase/le_tc/network/tc_net_recv.c index c8e8a3b..3ee4f2c 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_recv.c +++ b/apps/examples/testcase/le_tc/network/tc_net_recv.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "tc_internal.h" #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_recvfrom.c b/apps/examples/testcase/le_tc/network/tc_net_recvfrom.c index b48a51a..6750697 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_recvfrom.c +++ b/apps/examples/testcase/le_tc/network/tc_net_recvfrom.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "tc_internal.h" #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_send.c b/apps/examples/testcase/le_tc/network/tc_net_send.c index f9823c9..76f2c8f 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_send.c +++ b/apps/examples/testcase/le_tc/network/tc_net_send.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "tc_internal.h" #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_sendto.c b/apps/examples/testcase/le_tc/network/tc_net_sendto.c index 7c04803..5816c7d 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_sendto.c +++ b/apps/examples/testcase/le_tc/network/tc_net_sendto.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "tc_internal.h" #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_setsockopt.c b/apps/examples/testcase/le_tc/network/tc_net_setsockopt.c index 3ec7c0b..a3db6fb 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_setsockopt.c +++ b/apps/examples/testcase/le_tc/network/tc_net_setsockopt.c @@ -27,7 +27,7 @@ #include #include //#include -#include +#include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_shutdown.c b/apps/examples/testcase/le_tc/network/tc_net_shutdown.c index 32fb09a..fdb64b5 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_shutdown.c +++ b/apps/examples/testcase/le_tc/network/tc_net_shutdown.c @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include "tc_internal.h" #include #include diff --git a/apps/examples/testcase/le_tc/network/tc_net_socket.c b/apps/examples/testcase/le_tc/network/tc_net_socket.c index 6e93069..a8c19b3 100644 --- a/apps/examples/testcase/le_tc/network/tc_net_socket.c +++ b/apps/examples/testcase/le_tc/network/tc_net_socket.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include diff --git a/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_conn.c b/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_conn.c index 03446cf..b809523 100644 --- a/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_conn.c +++ b/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_conn.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include diff --git a/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_lwm2m.c b/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_lwm2m.c index b656af4..98c200e 100644 --- a/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_lwm2m.c +++ b/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_lwm2m.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include "itc_internal.h" #include "dm_lwm2m.h" diff --git a/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_main.c b/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_main.c index a33b998..433ae9a 100644 --- a/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_main.c +++ b/apps/examples/testcase/ta_tc/device_management/itc/itc_dm_main.c @@ -27,9 +27,9 @@ #include #include -#include +#include -#include +#include #define NET_DEVNAME "wl1" diff --git a/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_conn.c b/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_conn.c index 2750c20..5e02a89 100644 --- a/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_conn.c +++ b/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_conn.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include diff --git a/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_lwm2m.c b/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_lwm2m.c index 683022e..7937665 100644 --- a/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_lwm2m.c +++ b/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_lwm2m.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include "utc_internal.h" diff --git a/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_main.c b/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_main.c index 6c68c94..dbc4281 100644 --- a/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_main.c +++ b/apps/examples/testcase/ta_tc/device_management/utc/utc_dm_main.c @@ -27,8 +27,8 @@ #include #include -#include -#include +#include +#include #define NET_DEVNAME "wl1" diff --git a/apps/examples/wakaama_client/wakaama_client.c b/apps/examples/wakaama_client/wakaama_client.c index 7ab6af8..1e17d37 100644 --- a/apps/examples/wakaama_client/wakaama_client.c +++ b/apps/examples/wakaama_client/wakaama_client.c @@ -27,9 +27,9 @@ #include #include -#include +#include -#include +#include #define NET_DEVNAME "wl1" diff --git a/apps/examples/webclient/webclient_main.c b/apps/examples/webclient/webclient_main.c index 9814c82..a0ce4f0 100644 --- a/apps/examples/webclient/webclient_main.c +++ b/apps/examples/webclient/webclient_main.c @@ -72,7 +72,7 @@ #include #include -#include +#include /**************************************************************************** * Preprocessor Definitions diff --git a/apps/examples/webserver/webserver_main.c b/apps/examples/webserver/webserver_main.c index d80d09d..15a9b0a 100644 --- a/apps/examples/webserver/webserver_main.c +++ b/apps/examples/webserver/webserver_main.c @@ -62,9 +62,9 @@ #include #include -#include -#include -#include +#include +#include +#include #define WEBSERVER_STACK_SIZE (1024 * 8) #define WEBSERVER_SCHED_PRI 100 diff --git a/apps/examples/websocket/websocket_main.c b/apps/examples/websocket/websocket_main.c index ec5be8e..494ab49 100644 --- a/apps/examples/websocket/websocket_main.c +++ b/apps/examples/websocket/websocket_main.c @@ -117,7 +117,7 @@ #include #include -#include +#include #include #include diff --git a/apps/examples/xmlrpc/calls.c b/apps/examples/xmlrpc/calls.c index 17317e2..13fe718 100644 --- a/apps/examples/xmlrpc/calls.c +++ b/apps/examples/xmlrpc/calls.c @@ -62,7 +62,7 @@ ****************************************************************************/ #include -#include +#include /**************************************************************************** * Private Function Prototypes diff --git a/apps/examples/xmlrpc/xmlrpc_main.c b/apps/examples/xmlrpc/xmlrpc_main.c index 263ff15..8b6941e 100644 --- a/apps/examples/xmlrpc/xmlrpc_main.c +++ b/apps/examples/xmlrpc/xmlrpc_main.c @@ -82,8 +82,8 @@ #include #include -#include -#include +#include +#include /**************************************************************************** * Private Data diff --git a/apps/system/utils/netcmd.c b/apps/system/utils/netcmd.c index 33d902e..7c104d2 100644 --- a/apps/system/utils/netcmd.c +++ b/apps/system/utils/netcmd.c @@ -46,19 +46,19 @@ #include #include #include -#include +#include #ifdef CONFIG_NETUTILS_NETLIB -#include +#include #endif -#include -#include +#include +#include #ifdef CONFIG_HAVE_GETHOSTBYNAME #include #endif -#include +#include #ifndef DNS_DEFAULT_PORT #define DNS_DEFAULT_PORT 53 #endif diff --git a/apps/system/utils/netcmd_dhcpd.c b/apps/system/utils/netcmd_dhcpd.c index 3a89140..6cab704 100644 --- a/apps/system/utils/netcmd_dhcpd.c +++ b/apps/system/utils/netcmd_dhcpd.c @@ -64,7 +64,7 @@ #include -#include +#include /**************************************************************************** * Preprocessor Definitions diff --git a/apps/system/utils/netcmd_tftpc.c b/apps/system/utils/netcmd_tftpc.c index 73e639f..09b88a3 100644 --- a/apps/system/utils/netcmd_tftpc.c +++ b/apps/system/utils/netcmd_tftpc.c @@ -55,7 +55,7 @@ #include #include #include "netcmd.h" -#include +#include #if defined(CONFIG_NETUTILS_TFTPC) struct tftpc_args_s { diff --git a/external/Kconfig b/external/Kconfig index 3a29ab0..51a5ecf 100644 --- a/external/Kconfig +++ b/external/Kconfig @@ -174,4 +174,7 @@ config AWS_SDK ---help--- enable AWS IoT Device SDK +source "$EXTERNALDIR/json/Kconfig" +source "$EXTERNALDIR/codecs/Kconfig" + diff --git a/external/Makefile b/external/Makefile index 9ab6feb..b131523 100644 --- a/external/Makefile +++ b/external/Makefile @@ -77,8 +77,25 @@ include aws/Make.defs include aws/src/Make.defs endif -#DHCPD -include dhcpd/Make.defs + +include dhcpd/Make.defs #DHCPD +include xmlrpc/Make.defs +include ntpclient/Make.defs +include webserver/Make.defs +include ftpc/Make.defs +include mdns/Make.defs +include webclient/Make.defs +include mosquitto/Make.defs +include ftpd/Make.defs +include dhcpc/Make.defs +include websocket/Make.defs +include libcoap/Make.defs +include tftpc/Make.defs +include telnetd/Make.defs +include smtp/Make.defs +include netlib/Make.defs +include json/Make.defs + AOBJS = $(ASRCS:.S=$(OBJEXT)) COBJS = $(CSRCS:.c=$(OBJEXT)) diff --git a/apps/netutils/codecs/.gitignore b/external/codecs/.gitignore similarity index 100% rename from apps/netutils/codecs/.gitignore rename to external/codecs/.gitignore diff --git a/apps/netutils/codecs/Kconfig b/external/codecs/Kconfig similarity index 100% rename from apps/netutils/codecs/Kconfig rename to external/codecs/Kconfig diff --git a/apps/netutils/ftpc/Make.defs b/external/codecs/Make.defs similarity index 88% rename from apps/netutils/ftpc/Make.defs rename to external/codecs/Make.defs index 93a0b79..b4e4fc4 100644 --- a/apps/netutils/ftpc/Make.defs +++ b/external/codecs/Make.defs @@ -15,7 +15,7 @@ # language governing permissions and limitations under the License. # ########################################################################### -# apps/netutils/ftpc/Make.defs +# apps/netutils/codecs/Make.defs # Adds selected applications to apps/ build # # Copyright (C) 2016 Gregory Nutt. All rights reserved. @@ -50,7 +50,19 @@ # ############################################################################ -ifeq ($(CONFIG_NETUTILS_FTPC),y) -CONFIGURED_APPS += netutils/ftpc +ifeq ($(CONFIG_NETUTILS_CODECS),y) + +ifeq ($(CONFIG_CODECS_BASE64),y) +CSRCS += codecs/base64.c +endif +ifeq ($(CONFIG_CODECS_HASH_MD5),y) +CSRCS += codecs/md5.c +endif +ifeq ($(CONFIG_CODECS_URLCODE),y) +CSRCS += codecs/urldecode.c +endif + +DEPPATH += --dep-path codecs +VPATH += :codecs endif diff --git a/apps/netutils/codecs/Makefile b/external/codecs/Makefile similarity index 100% rename from apps/netutils/codecs/Makefile rename to external/codecs/Makefile diff --git a/apps/netutils/codecs/base64.c b/external/codecs/base64.c similarity index 100% rename from apps/netutils/codecs/base64.c rename to external/codecs/base64.c diff --git a/apps/netutils/codecs/md5.c b/external/codecs/md5.c similarity index 100% rename from apps/netutils/codecs/md5.c rename to external/codecs/md5.c diff --git a/apps/netutils/codecs/urldecode.c b/external/codecs/urldecode.c similarity index 100% rename from apps/netutils/codecs/urldecode.c rename to external/codecs/urldecode.c diff --git a/apps/netutils/xmlrpc/.gitignore b/external/dhcpc/.gitignore similarity index 100% rename from apps/netutils/xmlrpc/.gitignore rename to external/dhcpc/.gitignore diff --git a/apps/netutils/dhcpc/Kconfig b/external/dhcpc/Kconfig.protocol similarity index 100% rename from apps/netutils/dhcpc/Kconfig rename to external/dhcpc/Kconfig.protocol diff --git a/apps/netutils/dhcpc/Make.defs b/external/dhcpc/Make.defs similarity index 97% rename from apps/netutils/dhcpc/Make.defs rename to external/dhcpc/Make.defs index d69965e..2dccb9d 100644 --- a/apps/netutils/dhcpc/Make.defs +++ b/external/dhcpc/Make.defs @@ -51,6 +51,11 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_DHCPC),y) -CONFIGURED_APPS += netutils/dhcpc + +CSRCS += dhcpc/dhcpc.c + +DEPPATH += --dep-path dhcpc +VPATH += :dhcpc + endif diff --git a/apps/netutils/dhcpc/Makefile b/external/dhcpc/Makefile similarity index 100% rename from apps/netutils/dhcpc/Makefile rename to external/dhcpc/Makefile diff --git a/apps/netutils/dhcpc/dhcpc.c b/external/dhcpc/dhcpc.c similarity index 99% rename from apps/netutils/dhcpc/dhcpc.c rename to external/dhcpc/dhcpc.c index ed979dd..470d4d7 100644 --- a/apps/netutils/dhcpc/dhcpc.c +++ b/external/dhcpc/dhcpc.c @@ -71,8 +71,8 @@ #include #include -#include -#include +#include +#include #if defined(CONFIG_NETDB_DNSCLIENT) && defined(CONFIG_NETDB_DNSSERVER_BY_DHCP) #include diff --git a/apps/netutils/webclient/.gitignore b/external/dhcpd/.gitignore similarity index 100% rename from apps/netutils/webclient/.gitignore rename to external/dhcpd/.gitignore diff --git a/external/dhcpd/Kconfig.protocol b/external/dhcpd/Kconfig.protocol new file mode 100644 index 0000000..e0e301e --- /dev/null +++ b/external/dhcpd/Kconfig.protocol @@ -0,0 +1,89 @@ +# +# For a description of the syntax of this configuration file, +# see kconfig-language at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt +# + +config NETUTILS_DHCPD + bool "DHCP server" + default n + depends on NET_IPv4 + ---help--- + Enable support for the DHCP server. + +if NETUTILS_DHCPD + +config NETUTILS_DHCPD_HOST + bool "Host-based DHCPD build" + default n + depends on EXPERIMENTAL + ---help--- + DHCPD supports a host based build for testing on a PC. It is + enabled by this configuration, however, ti cannot really be used + in the context to the TinyAra build as it currently stands. + +config NETUTILS_DHCPD_IGNOREBROADCAST + bool "Ignore client broadcast" + default y + ---help--- + This is a hack. I've had problems with Windows machines responding + to unicast. I think this is associated with a Windows registry key in + HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters: + The IgnoreBroadcastFlag value controls this behavior: A value of 1 will + cause the server to ignore the client broadcast flag and always respond + with multicast; the value 0 to allows clients to request unicast. + +config NETUTILS_DHCPD_INTERFACE + string "DHCPD network interface" + default "wl1" + +config NETUTILS_DHCPD_LEASETIME + int "Lease time (seconds)" + default 864000 + ---help--- + Default: 10 days + +config NETUTILS_DHCPD_MINLEASETIME + int "Minimum lease time (seconds)" + default 86400 + ---help--- + Default: 1 days + +config NETUTILS_DHCPD_MAXLEASETIME + int "Maximum lease time (seconds)" + default 2592000 + ---help--- + Default: 30 days + +config NETUTILS_DHCPD_MAXLEASES + int "Maximum number of leases" + default 6 + +config NETUTILS_DHCPD_STARTIP + hex "First IP address" + default 0xc0a82f02 + +config NETUTILS_DHCPD_ROUTERIP + hex "Router IP (0 to disable)" + default 0xc0a82f01 + +config NETUTILS_DHCPD_NETMASK + hex "Netmask (0 to disable)" + default 0xffffff00 + +config NETUTILS_DHCPD_DNSIP + hex "DNS (0 to disable)" + default 0x08080808 + +config NETUTILS_DHCPD_OFFERTIME + int "Offer time (seconds)" + default 3600 + ---help--- + Default: 1 hour + +config NETUTILS_DHCPD_DECLINETIME + int "Decline time (seconds)" + default 3600 + ---help--- + Default: 1 hour + +endif diff --git a/apps/netutils/codecs/Make.defs b/external/dhcpd/Make.defs similarity index 94% rename from apps/netutils/codecs/Make.defs rename to external/dhcpd/Make.defs index 32b6bab..78f8ada 100644 --- a/apps/netutils/codecs/Make.defs +++ b/external/dhcpd/Make.defs @@ -15,7 +15,7 @@ # language governing permissions and limitations under the License. # ########################################################################### -# apps/netutils/codecs/Make.defs +# apps/netutils/dhcpd/Make.defs # Adds selected applications to apps/ build # # Copyright (C) 2016 Gregory Nutt. All rights reserved. @@ -50,7 +50,12 @@ # ############################################################################ -ifeq ($(CONFIG_NETUTILS_CODECS),y) -CONFIGURED_APPS += netutils/codecs +ifeq ($(CONFIG_NETUTILS_DHCPD),y) + +CSRCS += dhcpd/dhcpd.c + +DEPPATH += --dep-path dhcpd +VPATH += :dhcpd + endif diff --git a/external/dhcpd/dhcpd.c b/external/dhcpd/dhcpd.c new file mode 100644 index 0000000..e6ee3c9 --- /dev/null +++ b/external/dhcpd/dhcpd.c @@ -0,0 +1,1741 @@ +/**************************************************************************** + * netutils/dhcpd/dhcpd.c + * + * Copyright 2016 Samsung Electronics All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + ****************************************************************************/ +/**************************************************************************** + * netutils/dhcpd/dhcpd.c + * + * Copyright (C) 2007-2009, 2011-2014 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * 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 NuttX 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 OWNER 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. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#ifdef CONFIG_NETUTILS_DHCPD_HOST +#include + +#define HTONS(a) htons(a) +#define HTONL(a) htonl(a) + +#define CONFIG_CPP_HAVE_WARNING 1 +#define FAR + +#define ndbg(...) printf(__VA_ARGS__) +#define nvdbg(...) printf(__VA_ARGS__) + +#define ERROR (-1) +#define OK (0) +#else +#include /* TinyAra configuration */ +#include /* For ndbg, vdbg */ +#include /* For CONFIG_CPP_HAVE_WARNING */ +#include /* For irqstore() and friends -- REVISIT */ +#include /* For net_lock() and friends */ +#include /* Advertised DHCPD APIs */ +#endif /* CONFIG_NETUTILS_DHCPD_HOST */ + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/**************************************************************************** + * Global Data + ****************************************************************************/ + +/**************************************************************************** + * Private Data + ****************************************************************************/ +#define DHCPD_SELECT 1 + +#define DHCP_SERVER_PORT 67 +#define DHCP_CLIENT_PORT 68 + +/* Option codes understood in this file */ +/* Code Data Description */ +/* Length */ +#define DHCP_OPTION_PAD 0 /* 1 Pad */ +#define DHCP_OPTION_SUBNET_MASK 1 /* 1 Subnet Mask */ +#define DHCP_OPTION_ROUTER 3 /* 4 Router */ +#define DHCP_OPTION_DNS_SERVER 6 /* 4N DNS */ +#define DHCP_OPTION_REQ_IPADDR 50 /* 4 Requested IP Address */ +#define DHCP_OPTION_LEASE_TIME 51 /* 4 IP address lease time */ +#define DHCP_OPTION_OVERLOAD 52 /* 1 Option overload */ +#define DHCP_OPTION_MSG_TYPE 53 /* 1 DHCP message type */ +#define DHCP_OPTION_SERVER_ID 54 /* 4 Server identifier */ +#define DHCP_OPTION_END 255 /* 0 End */ + +/* Values for the dhcp msg 'op' field */ + +#define DHCP_REQUEST 1 +#define DHCP_REPLY 2 + +/* DHCP message types understood in this file */ + +#define DHCPDISCOVER 1 /* Received from client only */ +#define DHCPOFFER 2 /* Sent from server only */ +#define DHCPREQUEST 3 /* Received from client only */ +#define DHCPDECLINE 4 /* Received from client only */ +#define DHCPACK 5 /* Sent from server only */ +#define DHCPNAK 6 /* Sent from server only */ +#define DHCPRELEASE 7 /* Received from client only */ +#define DHCPINFORM 8 /* Not used */ + +/* The form of an option is: + * code - 1 byte + * length - 1 byte + * data - variable number of bytes + */ + +#define DHCPD_OPTION_CODE 0 +#define DHCPD_OPTION_LENGTH 1 +#define DHCPD_OPTION_DATA 2 + +/* Size of options in DHCP message */ + +#define DHCPD_OPTIONS_SIZE 312 + +/* Values for htype and hlen field */ + +#define DHCP_HTYPE_ETHERNET 1 +#define DHCP_HLEN_ETHERNET 6 + +/* Values for flags field */ + +#define BOOTP_BROADCAST 0x8000 + +/* Legal values for this option are: + * + * 1 the 'file' field is used to hold options + * 2 the 'sname' field is used to hold options + * 3 both fields are used to hold options + */ + +#define DHCPD_OPTION_FIELD 0 +#define DHCPD_FILE_FIELD 1 +#define DHCPD_SNAME_FIELD 2 + +#ifndef CONFIG_NETUTILS_DHCPD_LEASETIME +#define CONFIG_NETUTILS_DHCPD_LEASETIME (60*60*24*10) /* 10 days */ +#undef CONFIG_NETUTILS_DHCPD_MINLEASETIME +#undef CONFIG_NETUTILS_DHCPD_MAXLEASETIME +#endif + +#ifndef CONFIG_NETUTILS_DHCPD_MINLEASETIME +#define CONFIG_NETUTILS_DHCPD_MINLEASETIME (60*60*24*1) /* 1 days */ +#endif + +#ifndef CONFIG_NETUTILS_DHCPD_MAXLEASETIME +#define CONFIG_NETUTILS_DHCPD_MAXLEASETIME (60*60*24*30) /* 30 days */ +#endif + +#ifndef CONFIG_NETUTILS_DHCPD_INTERFACE +#define CONFIG_NETUTILS_DHCPD_INTERFACE "eth0" +#endif + +#ifndef CONFIG_NETUTILS_DHCPD_MAXLEASES +#define CONFIG_NETUTILS_DHCPD_MAXLEASES 16 +#endif + +#ifndef CONFIG_NETUTILS_DHCPD_STARTIP +#define CONFIG_NETUTILS_DHCPD_STARTIP (192L<<24|168L<<16|0L<<8|3L) +#endif + +#undef CONFIG_NETUTILS_DHCP_OPTION_ENDIP +#define CONFIG_NETUTILS_DHCP_OPTION_ENDIP (CONFIG_NETUTILS_DHCPD_STARTIP + CONFIG_NETUTILS_DHCPD_MAXLEASES - 1) + +#ifndef CONFIG_NETUTILS_DHCPD_OFFERTIME +#define CONFIG_NETUTILS_DHCPD_OFFERTIME (60*60) /* 1 hour */ +#endif + +#ifndef CONFIG_NETUTILS_DHCPD_DECLINETIME +#define CONFIG_NETUTILS_DHCPD_DECLINETIME (60*60) /* 1 hour */ +#endif + +#undef HAVE_ROUTERIP +#if defined(CONFIG_NETUTILS_DHCPD_ROUTERIP) && CONFIG_NETUTILS_DHCPD_ROUTERIP +#define HAVE_ROUTERIP 1 +#endif + +#undef HAVE_NETMASK +#if defined(CONFIG_NETUTILS_DHCPD_NETMASK) && CONFIG_NETUTILS_DHCPD_NETMASK +#define HAVE_NETMASK 1 +#endif + +#undef HAVE_DNSIP +#if defined(CONFIG_NETUTILS_DHCPD_DNSIP) && CONFIG_NETUTILS_DHCPD_DNSIP +#define HAVE_DNSIP 1 +#endif + +#undef HAVE_LEASE_TIME +#if defined(CONFIG_NETUTILS_DHCPD_HOST) || !defined(CONFIG_DISABLE_POSIX_TIMERS) +#define HAVE_LEASE_TIME 1 +#endif + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/* This structure describes one element in the lease table. There is one slot + * in the lease table for each assign-able IP address (hence, the IP address + * itself does not have to be in the table. + */ + +struct lease_s { + uint8_t mac[DHCP_HLEN_ETHERNET]; /* MAC address (network order) -- could be larger! */ + bool allocated; /* true: IP address is allocated */ +#ifdef HAVE_LEASE_TIME + time_t expiry; /* Lease expiration time (seconds past Epoch) */ +#endif +}; + +struct dhcpmsg_s { + uint8_t op; + uint8_t htype; + uint8_t hlen; + uint8_t hops; + uint8_t xid[4]; + uint16_t secs; + uint16_t flags; + uint8_t ciaddr[4]; + uint8_t yiaddr[4]; + uint8_t siaddr[4]; + uint8_t giaddr[4]; + uint8_t chaddr[16]; +#ifndef CONFIG_NET_DHCP_LIGHT + uint8_t sname[64]; + uint8_t file[128]; +#endif + uint8_t options[312]; +}; + +struct dhcpd_state_s { + /* Server configuration */ + + in_addr_t ds_serverip; /* The server IP address */ + + /* Message buffers */ + + struct dhcpmsg_s ds_inpacket; /* Holds the incoming DHCP client message */ + struct dhcpmsg_s ds_outpacket; /* Holds the outgoing DHCP server message */ + + /* Parsed options from the incoming DHCP client message */ + + uint8_t ds_optmsgtype; /* Incoming DHCP message type */ + in_addr_t ds_optreqip; /* Requested IP address (host order) */ + in_addr_t ds_optserverip; /* Serverip IP address (host order) */ + time_t ds_optleasetime; /* Requested lease time (host order) */ + + /* End option pointer for outgoing DHCP server message */ + + uint8_t *ds_optend; + + /* Leases */ + + struct lease_s ds_leases[CONFIG_NETUTILS_DHCPD_MAXLEASES]; +}; + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static const uint8_t g_magiccookie[4] = { 99, 130, 83, 99 }; +static const uint8_t g_anyipaddr[4] = { 0, 0, 0, 0 }; + +static struct dhcpd_state_s g_state; + +static int g_dhcpd_running = 0; +static int g_dhcpd_quit = 0; + +static pthread_t g_tid = 0; + +static char DHCPD_IFNAME[IFNAMSIZ] = {0,}; + +#if DHCPD_SELECT +static struct timeval g_select_timeout = {10, 0}; +#endif + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dhcpd_arpupdate + ****************************************************************************/ + +#ifndef CONFIG_NETUTILS_DHCPD_HOST +#ifndef CONFIG_NET_LWIP +static inline void dhcpd_arpupdate(uint16_t *pipaddr, uint8_t *phwaddr) +{ + net_lock_t flags; + + /* Disable interrupts and update the ARP table -- very non-portable hack. + * REVISIT -- switch to the SIOCSARP ioctl call if/when it is implemented. + */ + + flags = net_lock(); + arp_update(pipaddr, phwaddr); + net_unlock(flags); +} +#else +#define dhcpd_arpupdate(pipaddr, phwaddr) +#endif /* CONFIG_NET_LWIP */ +#else +#define dhcpd_arpupdate(pipaddr, phwaddr) +#endif + +/**************************************************************************** + * Name: dhcpd_time + ****************************************************************************/ + +#ifdef CONFIG_NETUTILS_DHCPD_HOST +#define dhcpd_time() time(0) +#elif defined(HAVE_LEASE_TIME) +static time_t dhcpd_time(void) +{ + struct timespec ts; + time_t ret = 0; + + if (clock_gettime(CLOCK_REALTIME, &ts) == OK) { + ret = ts.tv_sec; + } + + return ret; +} +#else +#define dhcpd_time() (0) +#endif + +/**************************************************************************** + * Name: dhcpd_leaseexpired + ****************************************************************************/ + +#ifdef HAVE_LEASE_TIME +static inline bool dhcpd_leaseexpired(struct lease_s *lease) +{ + ndbg("dhcpd_leaseexpired is called!!\n"); + + return false; + + if (lease->expiry < dhcpd_time()) { + return false; + } else { +// memset(lease, 0, sizeof(struct lease_s)); + return true; + } +} +#else +#define dhcpd_leaseexpired(lease) (false) +#endif + +/**************************************************************************** + * Name: dhcpd_setlease + ****************************************************************************/ + +struct lease_s *dhcpd_setlease(const uint8_t *mac, in_addr_t ipaddr, time_t expiry) +{ + /* Calculate the offset from the first IP address managed by DHCPD. + * ipaddr must be in host order! + */ + + int ndx = ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP; + struct lease_s *ret = NULL; + + nvdbg("ipaddr: %08x ipaddr: %08x ndx: %d MAX: %d\n", ipaddr, CONFIG_NETUTILS_DHCPD_STARTIP, ndx, CONFIG_NETUTILS_DHCPD_MAXLEASES); + + /* Verify that the address offset is within the supported range */ + + if (ndx >= 0 && ndx < CONFIG_NETUTILS_DHCPD_MAXLEASES) { + ret = &g_state.ds_leases[ndx]; + memcpy(ret->mac, mac, DHCP_HLEN_ETHERNET); + ret->allocated = true; +#ifdef HAVE_LEASE_TIME + ret->expiry = dhcpd_time() + expiry; +#endif + } + + return ret; +} + +/**************************************************************************** + * Name: dhcp_leaseipaddr + ****************************************************************************/ + +static inline in_addr_t dhcp_leaseipaddr(struct lease_s *lease) +{ + /* Return IP address in host order */ + + return (in_addr_t)(lease - g_state.ds_leases) + CONFIG_NETUTILS_DHCPD_STARTIP; +} + +/**************************************************************************** + * Name: dhcpd_findbymac + ****************************************************************************/ + +static struct lease_s *dhcpd_findbymac(const uint8_t *mac) +{ + int i; + + for (i = 0; i < CONFIG_NETUTILS_DHCPD_MAXLEASES; i++) { + if (memcmp(g_state.ds_leases[i].mac, mac, DHCP_HLEN_ETHERNET) == 0) { + return &(g_state.ds_leases[i]); + } + } + + return NULL; +} + +/**************************************************************************** + * Name: dhcpd_findbyipaddr + ****************************************************************************/ + +static struct lease_s *dhcpd_findbyipaddr(in_addr_t ipaddr) +{ + if (ipaddr >= CONFIG_NETUTILS_DHCPD_STARTIP && ipaddr <= CONFIG_NETUTILS_DHCP_OPTION_ENDIP) { + + struct lease_s *lease = &g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP]; + ndbg("dhcpd_findbyipaddr lease index = %d\n", ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP); + + if (lease->allocated > 0) { + ndbg("returen lease %d %d\n", ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP, g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].allocated); + return lease; + } + } + + ndbg("returen null\n"); + + return NULL; +} + +/**************************************************************************** + * Name: dhcpd_allocipaddr + ****************************************************************************/ + +static in_addr_t dhcpd_allocipaddr(void) +{ + struct lease_s *lease = NULL; + in_addr_t ipaddr; + + ipaddr = CONFIG_NETUTILS_DHCPD_STARTIP; + for (; ipaddr <= CONFIG_NETUTILS_DHCP_OPTION_ENDIP; ipaddr++) { + /* Skip over address ending in 0 or 255 */ + + if ((ipaddr & 0xff) == 0 || (ipaddr & 0xff) == 0xff) { + continue; + } + + /* Is there already a lease on this address? If so, has it expired? */ + + lease = dhcpd_findbyipaddr(ipaddr); + if ((lease == NULL || dhcpd_leaseexpired(lease))) { + ndbg("lease pass!!\n"); +#ifdef CONFIG_CPP_HAVE_WARNING +/** +#warning "FIXME: Should check if anything responds to an ARP request or ping" +#warning " to verify that there is no other user of this IP address" +**/ +#endif + + ndbg("leases talbe = %d %d \n", ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP, g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].allocated); + + memset(g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].mac, 0, DHCP_HLEN_ETHERNET); + g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].allocated = true; +#ifdef HAVE_LEASE_TIME + g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].expiry = dhcpd_time() + + CONFIG_NETUTILS_DHCPD_OFFERTIME; +#endif + /* Return the address in host order */ + + ndbg("return ipaddr\n"); + return ipaddr; + } + } + ndbg("return ipaddr = 0\n"); + return 0; +} + +/**************************************************************************** + * Name: dhcpd_parseoptions + ****************************************************************************/ + +static inline bool dhcpd_parseoptions(void) +{ + uint32_t tmp; + uint8_t *ptr; +#ifndef CONFIG_NET_DHCP_LIGHT + uint8_t overloaded; + uint8_t currfield; +#endif + int optlen = 0; + int remaining; + + /* Verify that the option field starts with a valid magic number */ + + ptr = g_state.ds_inpacket.options; + if (memcmp(ptr, g_magiccookie, 4) != 0) { + /* Bad magic number... skip g_state.ds_outpacket */ + + ndbg("Bad magic: %d,%d,%d,%d\n", ptr[0], ptr[1], ptr[2], ptr[3]); + return false; + } + + /* Set up to parse the options */ + + ptr += 4; + remaining = DHCPD_OPTIONS_SIZE - 4; +#ifndef CONFIG_NET_DHCP_LIGHT + overloaded = DHCPD_OPTION_FIELD; + currfield = DHCPD_OPTION_FIELD; +#endif + + /* Set all options to the default value */ + + g_state.ds_optmsgtype = 0; /* Incoming DHCP message type */ + g_state.ds_optreqip = 0; /* Requested IP address (host order) */ + g_state.ds_optserverip = 0; /* Serverip IP address (host order) */ + g_state.ds_optleasetime = 0; /* Requested lease time (host order) */ + g_state.ds_optend = NULL; + + do { + /* The form of an option is: + * code - 1 byte + * length - 1 byte + * data - variable number of bytes + */ + + switch (ptr[DHCPD_OPTION_CODE]) { + /* Skip over any padding bytes */ + + case DHCP_OPTION_PAD: + optlen = 1; + break; + + /* the Overload option is used to indicate that the DHCP 'sname' or 'file' + * fields are being overloaded by using them to carry DHCP options. A DHCP + * server inserts this option if the returned parameters will exceed the + * usual space allotted for options. + * + * If this option is present, the client interprets the specified additional + * fields after it concludes interpretation of the standard option fields. + * + * Legal values for this option are: + * + * 1 the 'file' field is used to hold options + * 2 the 'sname' field is used to hold options + * 3 both fields are used to hold options + */ + +#ifndef CONFIG_NET_DHCP_LIGHT + case DHCP_OPTION_OVERLOAD: + optlen = ptr[DHCPD_OPTION_LENGTH] + 2; + if (optlen >= 1 && optlen < remaining) { + overloaded = ptr[DHCPD_OPTION_DATA]; + } + break; +#endif + + case DHCP_OPTION_END: +#ifndef CONFIG_NET_DHCP_LIGHT + if (currfield == DHCPD_OPTION_FIELD && (overloaded & DHCPD_FILE_FIELD) != 0) { + ptr = g_state.ds_inpacket.file; + remaining = sizeof(g_state.ds_inpacket.file); + currfield = DHCPD_FILE_FIELD; + } else if (currfield == DHCPD_FILE_FIELD && (overloaded & DHCPD_SNAME_FIELD) != 0) { + ptr = g_state.ds_inpacket.sname; + remaining = sizeof(g_state.ds_inpacket.sname); + currfield = DHCPD_SNAME_FIELD; + } else { + return true; + } + break; +#else + return true; +#endif + + case DHCP_OPTION_REQ_IPADDR: /* Requested IP Address */ + optlen = ptr[DHCPD_OPTION_LENGTH] + 2; + if (optlen >= 4 && optlen < remaining) { + memcpy(&tmp, &ptr[DHCPD_OPTION_DATA], 4); + g_state.ds_optreqip = (in_addr_t)ntohl(tmp); + } + break; + + case DHCP_OPTION_LEASE_TIME: /* IP address lease time */ + optlen = ptr[DHCPD_OPTION_LENGTH] + 2; + if (optlen >= 4 && optlen < remaining) { + memcpy(&tmp, &ptr[DHCPD_OPTION_DATA], 4); + g_state.ds_optleasetime = (time_t)ntohl(tmp); + } + break; + + case DHCP_OPTION_MSG_TYPE: /* DHCP message type */ + optlen = ptr[DHCPD_OPTION_LENGTH] + 2; + if (optlen >= 1 && optlen < remaining) { + g_state.ds_optmsgtype = ptr[DHCPD_OPTION_DATA]; + } + break; + + case DHCP_OPTION_SERVER_ID: /* Server identifier */ + optlen = ptr[DHCPD_OPTION_LENGTH] + 2; + if (optlen >= 4 && optlen < remaining) { + memcpy(&tmp, &ptr[DHCPD_OPTION_DATA], 4); + g_state.ds_optserverip = (in_addr_t)ntohl(tmp); + } + break; + + default: + /* Skip over unsupported options */ + + optlen = ptr[DHCPD_OPTION_LENGTH] + 2; + break; + } + + /* Advance to the next option */ + + ptr += optlen; + remaining -= optlen; + } while (remaining > 0); + + return false; +} + +/**************************************************************************** + * Name: dhcpd_verifyreqip + ****************************************************************************/ + +static inline bool dhcpd_verifyreqip(void) +{ + struct lease_s *lease; + + /* Verify that the requested IP address is within the supported lease range */ + + if (g_state.ds_optreqip >= CONFIG_NETUTILS_DHCPD_STARTIP && g_state.ds_optreqip <= CONFIG_NETUTILS_DHCP_OPTION_ENDIP) { + /* And verify that the lease has not already been taken or offered + * (unless the lease/offer is expired, then the address is free game). + */ + + lease = dhcpd_findbyipaddr(g_state.ds_optreqip); + ndbg(" lease = %d\n", lease); + if (!lease || dhcpd_leaseexpired(lease)) { + ndbg("can use IP %08lx\n", (long)g_state.ds_optreqip); + return true; + } + } + ndbg("can't use IP %08lx\n", (long)g_state.ds_optreqip); + return false; +} + +/**************************************************************************** + * Name: dhcpd_verifyreqleasetime + ****************************************************************************/ + +static inline bool dhcpd_verifyreqleasetime(uint32_t *leasetime) +{ + uint32_t tmp = g_state.ds_optleasetime; + + /* Did the client request a specific lease time? */ + + if (tmp != 0) { + /* Yes.. Verify that the requested lease time is within a valid range */ + + if (tmp > CONFIG_NETUTILS_DHCPD_MAXLEASETIME) { + tmp = CONFIG_NETUTILS_DHCPD_MAXLEASETIME; + } else if (tmp < CONFIG_NETUTILS_DHCPD_MINLEASETIME) { + tmp = CONFIG_NETUTILS_DHCPD_MINLEASETIME; + } + + /* Return the clipped lease time */ + + *leasetime = tmp; + return true; + } + + return false; +} + +/**************************************************************************** + * Name: dhcpd_addoption + ****************************************************************************/ + +static int dhcpd_addoption(uint8_t *option) +{ + int offset; + int len = 4; + + if (g_state.ds_optend) { + offset = g_state.ds_outpacket.options - g_state.ds_optend; + len = option[DHCPD_OPTION_LENGTH] + 2; + + /* Check if the option will fit into the options array */ + + if (offset + len + 1 < DHCPD_OPTIONS_SIZE) { + /* Copy the option into the option array */ + + memcpy(g_state.ds_optend, option, len); + g_state.ds_optend += len; + *g_state.ds_optend = DHCP_OPTION_END; + } + } + + return len; +} + +/**************************************************************************** + * Name: dhcpd_addoption8 + ****************************************************************************/ + +static int dhcpd_addoption8(uint8_t code, uint8_t value) +{ + uint8_t option[3]; + + /* Construct the option sequence */ + + option[DHCPD_OPTION_CODE] = code; + option[DHCPD_OPTION_LENGTH] = 1; + option[DHCPD_OPTION_DATA] = value; + + /* Add the option sequence to the response */ + + return dhcpd_addoption(option); +} + +/**************************************************************************** + * Name: dhcpd_addoption32 + ****************************************************************************/ + +static int dhcpd_addoption32(uint8_t code, uint32_t value) +{ + uint8_t option[6]; + + /* Construct the option sequence */ + + option[DHCPD_OPTION_CODE] = code; + option[DHCPD_OPTION_LENGTH] = 4; + memcpy(&option[DHCPD_OPTION_DATA], &value, 4); + + /* Add the option sequence to the response */ + + return dhcpd_addoption(option); +} + +/**************************************************************************** + * Name: dhcp_addoption32p + ****************************************************************************/ + +#if HAVE_DNSIP +static int dhcp_addoption32p(uint8_t code, FAR uint8_t *value) +{ + uint8_t option[6]; + + /* Construct the option sequence */ + + option[DHCPD_OPTION_CODE] = code; + option[DHCPD_OPTION_LENGTH] = 4; + memcpy(&option[DHCPD_OPTION_DATA], value, 4); + + /* Add the option sequence to the response */ + + return dhcpd_addoption(option); +} +#endif + +/**************************************************************************** + * Name: dhcpd_soclet + ****************************************************************************/ + +static inline int dhcpd_socket(void) +{ + int sockfd; + int optval; + int ret; + + /* Create a socket to listen for requests from DHCP clients */ + + sockfd = socket(PF_INET, SOCK_DGRAM, 0); + if (sockfd < 0) { + ndbg("socket failed: %d\n", errno); + return ERROR; + } + + /* Configure the socket */ + optval = 1; + ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (void *)&optval, sizeof(int)); + if (ret < 0) { + ndbg("setsockopt SO_REUSEADDR failed: %d\n", errno); + close(sockfd); + return ERROR; + } + + optval = 1; + ret = setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (void *)&optval, sizeof(int)); + if (ret < 0) { + ndbg("setsockopt SO_BROADCAST failed: %d\n", errno); + close(sockfd); + return ERROR; + } + + return sockfd; + +} + +/**************************************************************************** + * Name: dhcpd_openresponder + ****************************************************************************/ + +static inline int dhcpd_openresponder(void) +{ + struct sockaddr_in addr; + int sockfd; + int ret; + + nvdbg("Responder: %08lx\n", ntohl(g_state.ds_serverip)); + + /* Create a socket to listen for requests from DHCP clients */ + + sockfd = dhcpd_socket(); + if (sockfd < 0) { + ndbg("socket failed: %d\n", errno); + return ERROR; + } + + /* Bind the socket to a local port. */ + + addr.sin_family = AF_INET; + addr.sin_port = HTONS(DHCP_SERVER_PORT); + addr.sin_addr.s_addr = g_state.ds_serverip; + + ret = bind(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)); + if (ret < 0) { + ndbg("bind failed, port=%d addr=%08lx: %d\n", addr.sin_port, (long)addr.sin_addr.s_addr, errno); + close(sockfd); + return ERROR; + } + + return sockfd; +} + +/**************************************************************************** + * Name: dhcpd_initpacket + ****************************************************************************/ + +static void dhcpd_initpacket(uint8_t mtype) +{ + uint32_t nulladdr = 0; + + /* Set up the generic parts of the DHCP server message */ + + memset(&g_state.ds_outpacket, 0, sizeof(struct dhcpmsg_s)); + + g_state.ds_outpacket.op = DHCP_REPLY; + g_state.ds_outpacket.htype = g_state.ds_inpacket.htype; + g_state.ds_outpacket.hlen = g_state.ds_inpacket.hlen; + + memcpy(&g_state.ds_outpacket.xid, &g_state.ds_inpacket.xid, 4); + memcpy(g_state.ds_outpacket.chaddr, g_state.ds_inpacket.chaddr, 16); + + if (memcmp(g_state.ds_outpacket.giaddr, &nulladdr, 4) != 0) { + g_state.ds_outpacket.flags = g_state.ds_inpacket.flags; + } else { + g_state.ds_outpacket.flags = 0; + } + memset(g_state.ds_outpacket.giaddr, 0, 4); + + /* Add the generic options */ + + memcpy(g_state.ds_outpacket.options, g_magiccookie, 4); + g_state.ds_optend = &g_state.ds_outpacket.options[4]; + *g_state.ds_optend = DHCP_OPTION_END; + dhcpd_addoption8(DHCP_OPTION_MSG_TYPE, mtype); + dhcpd_addoption32(DHCP_OPTION_SERVER_ID, g_state.ds_serverip); +} + +/**************************************************************************** + * Name: dhcpd_sendpacket + ****************************************************************************/ + +static int dhcpd_sendpacket(int bbroadcast) +{ + struct sockaddr_in addr; + in_addr_t ipaddr; + int sockfd; + int len; + int ret = ERROR; + +#ifdef CONFIG_NETUTILS_DHCPD_IGNOREBROADCAST + /* This is a hack. I've had problems with Windows machines responding + * to unicast. I think this is associated with a Windows registry key in + * HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters: + * The IgnoreBroadcastFlag value controls this behavior: A value of 1 will + * cause the server to ignore the client broadcast flag and always respond + * with multicast; the value 0 to allows clients to request unicast. + */ + + ipaddr = INADDR_BROADCAST; +#else + /* Determine which address to respond to (or if we need to broadcast the response) + * + * (1) If he caller know that it needs to multicast the response, it will set bbroadcast. + * (2) Otherwise, if the client already has and address (ciaddr), then use that for uni-cast + * (3) Broadcast if the client says it can't handle uni-cast (BOOTP_BROADCAST set) + * (4) Otherwise, the client claims it can handle the uni-casst response and we + * will uni-cast to the offered address (yiaddr). + * + * NOTE: We really should also check the giaddr field. If no zero, the server should + * send any return messages to the 'DHCP server' port on the BOOTP relay agent whose + * address appears in 'giaddr'. + */ + + if (bbroadcast) { + ipaddr = INADDR_BROADCAST; + } else if (memcmp(g_state.ds_outpacket.ciaddr, g_anyipaddr, 4) != 0) { + dhcpd_arpupdate((uint16_t *)g_state.ds_outpacket.ciaddr, g_state.ds_outpacket.chaddr); + memcpy(&ipaddr, g_state.ds_outpacket.ciaddr, 4); + } else if (g_state.ds_outpacket.flags & HTONS(BOOTP_BROADCAST)) { + ipaddr = INADDR_BROADCAST; + } else { + dhcpd_arpupdate((uint16_t *)g_state.ds_outpacket.yiaddr, g_state.ds_outpacket.chaddr); + memcpy(&ipaddr, g_state.ds_outpacket.yiaddr, 4); + } +#endif + + /* Create a socket to respond with a packet to the client. We + * cannot re-use the listener socket because it is not bound correctly + */ + + sockfd = dhcpd_openresponder(); + if (sockfd >= 0) { + /* Then send the reponse to the DHCP client port at that address */ + + memset(&addr, 0, sizeof(struct sockaddr_in)); + addr.sin_family = AF_INET; + addr.sin_port = HTONS(DHCP_CLIENT_PORT); + addr.sin_addr.s_addr = ipaddr; + + /* Send the minimum sized packet that includes the END option */ + + len = (g_state.ds_optend - (uint8_t *)&g_state.ds_outpacket) + 1; + nvdbg("sendto %08lx:%04x len=%d\n", (long)ntohl(addr.sin_addr.s_addr), ntohs(addr.sin_port), len); + ret = sendto(sockfd, &g_state.ds_outpacket, len, 0, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)); + close(sockfd); + } else { + ndbg("create socket failed : %d\n", sockfd); + } + + return ret; +} + +/**************************************************************************** + * Name: dhcpd_send_offerpacket + ****************************************************************************/ + +static int dhcpd_send_offerpacket(void) +{ + struct sockaddr_in addr; + in_addr_t ipaddr; + int sockfd; + int len; + int ret = ERROR; + + memcpy(&ipaddr, g_state.ds_outpacket.yiaddr, 4); + +#if HAVE_NETMASK + /* A dhcp offer message should be sent as broadcast message + * Some platform might discard 255.255.255.255 broadcast message, so replace it to subnet broadcast message + */ + ipaddr |= (~htonl(CONFIG_NETUTILS_DHCPD_NETMASK)); +#else + ipaddr = htonl(IPADDR_BROADCAST); +#endif + + sockfd = dhcpd_openresponder(); + if (sockfd >= 0) { + /* Then send the reponse to the DHCP client port at that address */ + + memset(&addr, 0, sizeof(struct sockaddr_in)); + addr.sin_family = AF_INET; + addr.sin_port = HTONS(DHCP_CLIENT_PORT); + addr.sin_addr.s_addr = ipaddr; + + /* Send the minimum sized packet that includes the END option */ + + len = (g_state.ds_optend - (uint8_t *)&g_state.ds_outpacket) + 1; + nvdbg("dhcp offer sendto %08lx:%04x len=%d\n", (long)ntohl(addr.sin_addr.s_addr), ntohs(addr.sin_port), len); + ret = sendto(sockfd, &g_state.ds_outpacket, len, 0, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)); + close(sockfd); + } else { + ndbg("create socket failed : %d\n", sockfd); + } + + return ret; +} + + +/**************************************************************************** + * Name: dhcpd_sendoffer + ****************************************************************************/ + +static inline int dhcpd_sendoffer(in_addr_t ipaddr, uint32_t leasetime) +{ + in_addr_t netaddr; +#if HAVE_DNSIP + uint32_t dnsaddr; + dnsaddr = htonl(CONFIG_NETUTILS_DHCPD_DNSIP); +#endif + /* IP address is in host order */ + + nvdbg("Sending offer: %08lx\n", (long)ipaddr); + + /* Initialize the outgoing packet */ + + dhcpd_initpacket(DHCPOFFER); + + /* Add the address offered to the client (converting to network order) */ + + netaddr = htonl(ipaddr); + memcpy(g_state.ds_outpacket.yiaddr, &netaddr, 4); + + /* Add the leasetime to the response options */ + + dhcpd_addoption32(DHCP_OPTION_LEASE_TIME, htonl(leasetime)); +#if HAVE_NETMASK + dhcpd_addoption32(DHCP_OPTION_SUBNET_MASK, htonl(CONFIG_NETUTILS_DHCPD_NETMASK)); +#endif +#if HAVE_ROUTERIP + dhcpd_addoption32(DHCP_OPTION_ROUTER, htonl(CONFIG_NETUTILS_DHCPD_ROUTERIP)); +#endif +#if HAVE_DNSIP + dhcp_addoption32p(DHCP_OPTION_DNS_SERVER, (FAR uint8_t *)&dnsaddr); +#endif + + /* Send the offer response */ + return dhcpd_send_offerpacket(); +} + +/**************************************************************************** + * Name: dhcpd_sendnak + ****************************************************************************/ + +static int dhcpd_sendnak(void) +{ + /* Initialize and send the NAK response */ + + dhcpd_initpacket(DHCPNAK); + memcpy(g_state.ds_outpacket.ciaddr, g_state.ds_inpacket.ciaddr, 4); + return dhcpd_sendpacket(true); +} + +/**************************************************************************** + * Name: dhcpd_sendack + ****************************************************************************/ + +int dhcpd_sendack(in_addr_t ipaddr) +{ + uint32_t leasetime = CONFIG_NETUTILS_DHCPD_LEASETIME; + in_addr_t netaddr; +#if HAVE_DNSIP + uint32_t dnsaddr; + dnsaddr = htonl(CONFIG_NETUTILS_DHCPD_DNSIP); +#endif + + /* Initialize the ACK response */ + + dhcpd_initpacket(DHCPACK); + memcpy(g_state.ds_outpacket.ciaddr, g_state.ds_inpacket.ciaddr, 4); + + /* Add the IP address assigned to the client */ + + netaddr = htonl(ipaddr); + memcpy(g_state.ds_outpacket.yiaddr, &netaddr, 4); + + /* Did the client request a specific lease time? */ + + (void)dhcpd_verifyreqleasetime(&leasetime); + + /* Add the lease time to the response */ + + dhcpd_addoption32(DHCP_OPTION_LEASE_TIME, htonl(leasetime)); +#if HAVE_NETMASK + dhcpd_addoption32(DHCP_OPTION_SUBNET_MASK, htonl(CONFIG_NETUTILS_DHCPD_NETMASK)); +#endif +#if HAVE_ROUTERIP + dhcpd_addoption32(DHCP_OPTION_ROUTER, htonl(CONFIG_NETUTILS_DHCPD_ROUTERIP)); +#endif +#if HAVE_DNSIP + dhcp_addoption32p(DHCP_OPTION_DNS_SERVER, (FAR uint8_t *)&dnsaddr); +#endif + + if (dhcpd_sendpacket(true) < 0) { + return ERROR; + } + + dhcpd_setlease(g_state.ds_inpacket.chaddr, ipaddr, leasetime); + return OK; +} + +/**************************************************************************** + * Name: dhcpd_discover + ****************************************************************************/ + +static inline int dhcpd_discover(void) +{ + struct lease_s *lease; + in_addr_t ipaddr; + uint32_t leasetime = CONFIG_NETUTILS_DHCPD_LEASETIME; + + /* Check if the client is aleady in the lease table */ + + lease = dhcpd_findbymac(g_state.ds_inpacket.chaddr); + if (lease) { + /* Yes... get the remaining time on the lease */ + +#ifdef HAVE_LEASE_TIME + if (!dhcpd_leaseexpired(lease)) { + leasetime = lease->expiry - dhcpd_time(); + if (leasetime < CONFIG_NETUTILS_DHCPD_MINLEASETIME) { + leasetime = CONFIG_NETUTILS_DHCPD_MINLEASETIME; + } + } +#endif + /* Get the IP address associated with the lease (host order) */ + + ipaddr = dhcp_leaseipaddr(lease); + ndbg("Already have lease for IP %08lx\n", (long)ipaddr); + } + + /* Check if the client has requested a specific IP address */ + + else if (dhcpd_verifyreqip()) { + /* Use the requested IP address (host order) */ + + ipaddr = g_state.ds_optreqip; + + ndbg("User requested IP %08lx\n", (long)ipaddr); + } else { + /* No... allocate a new IP address (host order) */ + + ipaddr = dhcpd_allocipaddr(); + ndbg("Allocated IP %08lx\n", (long)ipaddr); + } + + /* Did we get any IP address? */ + + if (!ipaddr) { + /* Nope... return failure */ + + ndbg("Failed to get IP address\n"); + return ERROR; + } + + /* Reserve the leased IP for a shorter time for the offer */ + + if (!dhcpd_setlease(g_state.ds_inpacket.chaddr, ipaddr, CONFIG_NETUTILS_DHCPD_OFFERTIME)) { + ndbg("Failed to set lease\n"); + return ERROR; + } + + /* Check if the client has requested a specific lease time */ + + (void)dhcpd_verifyreqleasetime(&leasetime); + + /* Send the offer response */ + + return dhcpd_sendoffer(ipaddr, leasetime); +} + +/**************************************************************************** + * Name: dhcpd_request + ****************************************************************************/ + +static inline int dhcpd_request(void) +{ + struct lease_s *lease; + in_addr_t ipaddr = 0; + uint8_t response = 0; + + /* Check if this client already holds a lease. This can happen when the client (1) + * the IP is reserved for the client from a previous offer, or (2) the client is + * re-initializing or rebooting while the lease is still valid. + */ + + lease = dhcpd_findbymac(g_state.ds_inpacket.chaddr); + if (lease) { + /* Yes.. the client already holds a lease. Verify that the request is consistent + * with the existing lease (host order). + */ + + ipaddr = dhcp_leaseipaddr(lease); + ndbg("Lease ipaddr: %08x Server IP: %08x Requested IP: %08x\n", ipaddr, g_state.ds_optserverip, g_state.ds_optreqip); + + if (g_state.ds_optserverip) { + /* ACK if the serverip is correct and the requested IP address is the one + * already offered to the client. + */ + + if (g_state.ds_optserverip == ntohl(g_state.ds_serverip) && (g_state.ds_optreqip != 0 || g_state.ds_optreqip == ipaddr)) { + response = DHCPACK; + } else { + response = DHCPNAK; + } + } + + /* We have the lease and no server IP was requested. Was a specific IP address + * requested? (host order) + */ + + else if (g_state.ds_optreqip) { + /* Yes..ACK if the requested IP address is the one already leased. + * Both addresses are in host order. + */ + + if (ipaddr == g_state.ds_optreqip) { + response = DHCPACK; + } else { + response = DHCPNAK; + } + } + + /* The client has specified neither a server IP nor requested IP address */ + + else { + /* ACK if the IP used by the client is the one already assigned to it. + * NOTE ipaddr is in host order; ciaddr is network order! + */ + + uint32_t tmp = htonl(ipaddr); + if (memcmp(&tmp, g_state.ds_inpacket.ciaddr, 4) == 0) { + response = DHCPACK; + } else { + response = DHCPNAK; + } + } + } + + /* The client does not hold a lease (referenced by its MAC address) and is + * requesting a specific IP address that was, apparently, never offered to + * to the client. Perform some sanity checks before sending the NAK. + */ + + else if (g_state.ds_optreqip && !g_state.ds_optserverip) { + ndbg("Server IP: %08x Requested IP: %08x\n", g_state.ds_optserverip, g_state.ds_optreqip); + + /* Is this IP address already assigned? */ + + lease = dhcpd_findbyipaddr(g_state.ds_optreqip); + if (lease) { + /* Yes.. Send NAK unless the lease has expired */ + + if (!dhcpd_leaseexpired(lease)) { + response = DHCPNAK; + } + } + + /* No.. is the requested IP address in range? NAK if not */ + + else if (g_state.ds_optreqip < CONFIG_NETUTILS_DHCPD_STARTIP || g_state.ds_optreqip > CONFIG_NETUTILS_DHCP_OPTION_ENDIP) { + response = DHCPNAK; + } + } + + /* Otherwise, the client does not hold a lease and is not requesting any + * specific IP address. + */ + + /* Finally, either (1) send the ACK, (2) send a NAK, or (3) remain silent + * based on the checks above. + */ + + if (response == DHCPACK) { + ndbg("ACK IP %08lx\n", (long)ipaddr); + + memset(g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].mac, 0, DHCP_HLEN_ETHERNET); + g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].allocated = true; +#ifdef HAVE_LEASE_TIME + g_state.ds_leases[ipaddr - CONFIG_NETUTILS_DHCPD_STARTIP].expiry = dhcpd_time() + CONFIG_NETUTILS_DHCPD_OFFERTIME; +#endif + if (dhcpd_sendack(ipaddr) == ERROR) { + ndbg("Failed to send ACK\n"); + return ERROR; + } + } else if (response == DHCPNAK) { + ndbg("NAK IP %08lx\n", (long)ipaddr); + if (dhcpd_sendnak() == ERROR) { + ndbg("Failed to send NAK\n"); + return ERROR; + } + } else { + ndbg("Remaining silent IP %08lx\n", (long)ipaddr); + } + + return OK; +} + +/**************************************************************************** + * Name: dhcpd_decline + ****************************************************************************/ + +static inline int dhcpd_decline(void) +{ + struct lease_s *lease; + + /* Find the lease associated with this hardware address */ + + lease = dhcpd_findbymac(g_state.ds_inpacket.chaddr); + if (lease) { + /* Disassociate the IP from the MAC, but prevent re-used of this + * address for a period of time. + */ + + memset(lease->mac, 0, DHCP_HLEN_ETHERNET); +#ifdef HAVE_LEASE_TIME + lease->expiry = dhcpd_time() + CONFIG_NETUTILS_DHCPD_DECLINETIME; +#endif + } + + return OK; +} + +static inline int dhcpd_release(void) +{ + struct lease_s *lease; + + /* Find the lease associated with this hardware address */ + + lease = dhcpd_findbymac(g_state.ds_inpacket.chaddr); + if (lease) { + /* Release the IP address now */ + + memset(lease, 0, sizeof(struct lease_s)); + } + + return OK; +} + +/**************************************************************************** + * Name: dhcpd_openlistener + ****************************************************************************/ + +static inline int dhcpd_openlistener(void) +{ + struct sockaddr_in addr; + struct ifreq req; + int sockfd; + int ret; + + /* Create a socket to listen for requests from DHCP clients */ + + sockfd = dhcpd_socket(); + if (sockfd < 0) { + ndbg("socket failed: %d\n", errno); + return ERROR; + } + + /* Get the IP address of the selected device */ + + strncpy(req.ifr_name, DHCPD_IFNAME, IFNAMSIZ); + ret = ioctl(sockfd, SIOCGIFADDR, (unsigned long)&req); + if (ret < 0) { + ndbg("setsockopt SIOCGIFADDR failed: %d\n", errno); + close(sockfd); + return ERROR; + } + + g_state.ds_serverip = ((struct sockaddr_in *)&req.ifr_addr)->sin_addr.s_addr; + nvdbg("serverip: %08lx\n", ntohl(g_state.ds_serverip)); + + /* Bind the socket to a local port. We have to bind to INADDRY_ANY to + * receive broadcast messages. + */ + + addr.sin_family = AF_INET; + addr.sin_port = htons(DHCP_SERVER_PORT); + addr.sin_addr.s_addr = INADDR_ANY; + + ret = bind(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)); + if (ret < 0) { + ndbg("bind failed, port=%d addr=%08lx: %d\n", addr.sin_port, (long)addr.sin_addr.s_addr, errno); + close(sockfd); + return ERROR; + } + + return sockfd; +} + + +/**************************************************************************** + * Private Functions + ****************************************************************************/ +/**************************************************************************** + * Name: dhcpd_netif_init + ****************************************************************************/ +static int dhcpd_netif_init(char *intf) +{ + struct in_addr server_ipaddr; + struct in_addr netmask_ipaddr; + + server_ipaddr.s_addr = htonl(CONFIG_NETUTILS_DHCPD_ROUTERIP); + netmask_ipaddr.s_addr = htonl(CONFIG_NETUTILS_DHCPD_NETMASK); + + if (netlib_set_ipv4addr(intf, &server_ipaddr) == ERROR) { + ndbg("failed to set server IP address\n"); + return -1; + } + + if (netlib_set_ipv4netmask(intf, &netmask_ipaddr.s_addr) == ERROR) { + ndbg("failed to set netmask\n"); + return -1; + } + + if (netlib_set_dripv4addr(intf, &server_ipaddr) == ERROR) { + ndbg("failed to set default gateway\n"); + return -1; + } + + ndbg("\n"); + + ndbg("Server IP address set : %u.%u.%u.%u\n", + (unsigned char)((htonl(server_ipaddr.s_addr) >> 24) & 0xff), + (unsigned char)((htonl(server_ipaddr.s_addr) >> 16) & 0xff), + (unsigned char)((htonl(server_ipaddr.s_addr) >> 8) & 0xff), + (unsigned char)((htonl(server_ipaddr.s_addr) >> 0) & 0xff)); + + ndbg("Server netmask address set : %u.%u.%u.%u\n", + (unsigned char)((htonl(netmask_ipaddr.s_addr) >> 24) & 0xff), + (unsigned char)((htonl(netmask_ipaddr.s_addr) >> 16) & 0xff), + (unsigned char)((htonl(netmask_ipaddr.s_addr) >> 8) & 0xff), + (unsigned char)((htonl(netmask_ipaddr.s_addr) >> 0) & 0xff)); + + ndbg("Server default gateway address set : %u.%u.%u.%u\n", + (unsigned char)((htonl(server_ipaddr.s_addr) >> 24) & 0xff), + (unsigned char)((htonl(server_ipaddr.s_addr) >> 16) & 0xff), + (unsigned char)((htonl(server_ipaddr.s_addr) >> 8) & 0xff), + (unsigned char)((htonl(server_ipaddr.s_addr) >> 0) & 0xff)); + + ndbg("\n"); + return 0; +} + + +/**************************************************************************** + * Private Functions + ****************************************************************************/ +/**************************************************************************** + * Name: dhcpd_netif_deinit + ****************************************************************************/ +static int dhcpd_netif_deinit(char *intf) +{ + struct in_addr server_ipaddr; + struct in_addr netmask_ipaddr; + + server_ipaddr.s_addr = IPADDR_ANY; + netmask_ipaddr.s_addr = IPADDR_NONE; + + if (netlib_set_ipv4addr(intf, &server_ipaddr) == ERROR) { + ndbg("failed to set server IP address\n"); + return -1; + } + + if (netlib_set_ipv4netmask(intf, &netmask_ipaddr.s_addr) == ERROR) { + ndbg("failed to set netmask\n"); + return -1; + } + + if (netlib_set_dripv4addr(intf, &server_ipaddr) == ERROR) { + ndbg("failed to set default gateway\n"); + return -1; + } + + return 0; +} + + +/**************************************************************************** + * Public Functions + ****************************************************************************/ +/**************************************************************************** + * Name: dhcpd_status + ****************************************************************************/ +int dhcpd_status(void) +{ + return g_dhcpd_running; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ +/**************************************************************************** + * Name: dhcpd_stop + ****************************************************************************/ +void dhcpd_stop(void) +{ + g_dhcpd_quit = 1; +#if DHCPD_SELECT + ndbg("WARN : dhcpd will be stopped after %d seconds\n", g_select_timeout.tv_sec); +#endif +} + + +/**************************************************************************** + * Public Functions + ****************************************************************************/ +/**************************************************************************** + * Name: dhcpd_run + ****************************************************************************/ + +int dhcpd_run(void *arg) +{ + int sockfd; + int nbytes; +#if DHCPD_SELECT + int ret = OK; + fd_set sockfd_set; +#endif + ndbg("Started on %s\n", DHCPD_IFNAME); + + /* Initialize everything to zero */ + + memset(&g_state, 0, sizeof(struct dhcpd_state_s)); + + /* Initialize netif address (ip address, netmask, default gateway) */ + + if (dhcpd_netif_init(DHCPD_IFNAME) < 0) { + ndbg("Failed to initialize network interface %s\n", DHCPD_IFNAME); + ret = ERROR; + return ret; + } + + /* Now loop indefinitely, reading packets from the DHCP server socket */ + + sockfd = -1; + + g_dhcpd_quit = 0; + g_dhcpd_running = 1; + + while (!g_dhcpd_quit) { + /* Create a socket to listen for requests from DHCP clients */ + + /* TODO : Need to add cancellation point */ + + if (sockfd < 0) { + sockfd = dhcpd_openlistener(); + if (sockfd < 0) { + ndbg("Failed to create socket\n"); + ret = ERROR; + break; + } + } +#if DHCPD_SELECT + nbytes = -1; + FD_ZERO(&sockfd_set); + FD_SET(sockfd, &sockfd_set); + + ret = select(sockfd+1, &sockfd_set, NULL, NULL, &g_select_timeout); + if ((ret > 0) && FD_ISSET(sockfd, &sockfd_set)) { + /* Read the next g_state.ds_outpacket */ + nbytes = recv(sockfd, &g_state.ds_inpacket, sizeof(struct dhcpmsg_s), 0); + } else if (ret == 0) { + if (!g_dhcpd_quit) + continue; + else { + ndbg("select timeout exit\n"); + break; + } + } else { + /* Debugging purpose : Error case*/ + ndbg("ERROR, select ret %d [errno %d]\n", ret, errno); + break; + } +#else + nbytes = recv(sockfd, &g_state.ds_inpacket, sizeof(struct dhcpmsg_s), 0); +#endif + if (nbytes < 0) { + /* On errors (other EINTR), close the socket and try again */ + + ndbg("recv failed: %d\n", errno); + if (errno != EINTR) { + close(sockfd); + sockfd = -1; + } + continue; + } + + /* Parse the incoming message options */ + + if (!dhcpd_parseoptions()) { + /* Failed to parse the message options */ + + ndbg("No msg type\n"); + + continue; + } +#ifdef CONFIG_NETUTILS_DHCPD_HOST + /* Get the poor little uC a change to get its recvfrom in place */ + + usleep(500 * 1000); +#endif + + /* Now process the incoming DHCP message by its message type */ + + switch (g_state.ds_optmsgtype) { + case DHCPDISCOVER: + ndbg("DHCPDISCOVER\n"); + if (dhcpd_discover() == ERROR) { + ndbg("DHCPDISCOVER : Failed to send DHCP Discover, errno %d\n", errno); + } + break; + + case DHCPREQUEST: + ndbg("DHCPREQUEST\n"); + dhcpd_request(); + break; + + case DHCPDECLINE: + ndbg("DHCPDECLINE\n"); + dhcpd_decline(); + break; + + case DHCPRELEASE: + ndbg("DHCPRELEASE\n"); + dhcpd_release(); + break; + + case DHCPINFORM: /* Not supported */ + default: + ndbg("Unsupported message type: %d\n", g_state.ds_optmsgtype); + break; + } + } + + if (sockfd != -1) { + close(sockfd); + } + g_dhcpd_running = 0; + + /* de-initialize netif address (ip address, netmask, default gateway) */ + + if (dhcpd_netif_deinit(DHCPD_IFNAME) < 0) { + ndbg("Failed to deinit netif %s\n", DHCPD_IFNAME); + } + + return ret; +} + + +/**************************************************************************** + * Public Functions + ****************************************************************************/ +/**************************************************************************** + * Name: dhcpd_start + ****************************************************************************/ + +#define DHCPD_STACK_SIZE 20480 +#define DHCPD_SCHED_PRI 100 +#define DHCPD_SCHED_POLICY SCHED_RR + +int dhcpd_start(char *intf) +{ + pthread_attr_t attr; + int status; + struct sched_param sparam; + + /* Set network interface name for DHCPD */ + if (intf) { + strncpy(DHCPD_IFNAME, intf, strlen(intf)); + } else { + strncpy(DHCPD_IFNAME, CONFIG_NETUTILS_DHCPD_INTERFACE, IFNAMSIZ); + } + + status = pthread_attr_init(&attr); + if (status != 0) { + ndbg("failed to start dhcpd\n"); + goto err_exit; + } + + sparam.sched_priority = DHCPD_SCHED_PRI; + status = pthread_attr_setschedparam(&attr, &sparam); + if (status != 0) { + ndbg("failed to pthread_attr_setschedparam, ret %d, errno %d\n", + status, errno); + goto err_exit; + } + + status = pthread_attr_setschedpolicy(&attr, DHCPD_SCHED_POLICY); + if (status != 0) { + ndbg("failed to pthread_attr_setchedpolicy, ret %d, errno %d\n", + status, errno); + goto err_exit; + } + + status = pthread_attr_setstacksize(&attr, DHCPD_STACK_SIZE); + if (status != 0) { + ndbg("failed to pthread_attr_setstacksize, ret %d, errno %d\n", + status, errno); + goto err_exit; + } + + status = pthread_create(&g_tid, &attr, (pthread_startroutine_t)dhcpd_run, NULL); + if (status != 0) { + ndbg("failed to start dhcpd\n"); + goto err_exit; + } + + pthread_setname_np(g_tid, "dhcpd"); + pthread_detach(g_tid); + + return 0; +err_exit: + return -1; +} diff --git a/apps/netutils/tftpc/.gitignore b/external/ftpc/.gitignore similarity index 100% rename from apps/netutils/tftpc/.gitignore rename to external/ftpc/.gitignore diff --git a/apps/netutils/ftpc/Kconfig b/external/ftpc/Kconfig.protocol similarity index 100% rename from apps/netutils/ftpc/Kconfig rename to external/ftpc/Kconfig.protocol diff --git a/external/ftpc/Make.defs b/external/ftpc/Make.defs new file mode 100644 index 0000000..4832ea5 --- /dev/null +++ b/external/ftpc/Make.defs @@ -0,0 +1,95 @@ +########################################################################### +# +# Copyright 2017 Samsung Electronics All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +# +########################################################################### +# apps/netutils/ftpc/Make.defs +# Adds selected applications to apps/ build +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# 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 NuttX 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 OWNER 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. +# +############################################################################ + +ifeq ($(CONFIG_NETUTILS_FTPC),y) + +# FTP connection management +CSRCS += ftpc/ftpc_connect.c \ + ftpc/ftpc_disconnect.c + +# FTP commands +CSRCS += ftpc/ftpc_cdup.c \ + ftpc/ftpc_chdir.c \ + ftpc/ftpc_chmod.c \ + ftpc/ftpc_filesize.c \ + ftpc/ftpc_filetime.c +CSRCS += ftpc/ftpc_help.c \ + ftpc/ftpc_idle.c \ + ftpc/ftpc_listdir.c \ + ftpc/ftpc_login.c \ + ftpc/ftpc_mkdir.c +CSRCS += ftpc/ftpc_noop.c \ + ftpc/ftpc_rpwd.c \ + ftpc/ftpc_quit.c \ + ftpc/ftpc_rename.c \ + ftpc/ftpc_rmdir.c \ + ftpc/ftpc_unlink.c +CSRCS += ftpc/ftpc_cmd.c + +# FTP transfers +CSRCS += ftpc/ftpc_getfile.c \ + ftpc/ftpc_putfile.c \ + ftpc/ftpc_transfer.c + +# FTP responses +CSRCS += ftpc/ftpc_response.c \ + ftpc/ftpc_getreply.c + +# FTP helpers +CSRCS += ftpc/ftpc_utils.c \ + ftpc/ftpc_socket.c + +DEPPATH += --dep-path ftpc +VPATH += :ftpc + +endif + diff --git a/apps/netutils/ftpc/Makefile b/external/ftpc/Makefile similarity index 100% rename from apps/netutils/ftpc/Makefile rename to external/ftpc/Makefile diff --git a/apps/netutils/ftpc/README.txt b/external/ftpc/README.txt similarity index 100% rename from apps/netutils/ftpc/README.txt rename to external/ftpc/README.txt diff --git a/apps/netutils/ftpc/ftpc_cdup.c b/external/ftpc/ftpc_cdup.c similarity index 100% rename from apps/netutils/ftpc/ftpc_cdup.c rename to external/ftpc/ftpc_cdup.c diff --git a/apps/netutils/ftpc/ftpc_chdir.c b/external/ftpc/ftpc_chdir.c similarity index 100% rename from apps/netutils/ftpc/ftpc_chdir.c rename to external/ftpc/ftpc_chdir.c diff --git a/apps/netutils/ftpc/ftpc_chmod.c b/external/ftpc/ftpc_chmod.c similarity index 100% rename from apps/netutils/ftpc/ftpc_chmod.c rename to external/ftpc/ftpc_chmod.c diff --git a/apps/netutils/ftpc/ftpc_cmd.c b/external/ftpc/ftpc_cmd.c similarity index 100% rename from apps/netutils/ftpc/ftpc_cmd.c rename to external/ftpc/ftpc_cmd.c diff --git a/apps/netutils/ftpc/ftpc_config.h b/external/ftpc/ftpc_config.h similarity index 100% rename from apps/netutils/ftpc/ftpc_config.h rename to external/ftpc/ftpc_config.h diff --git a/apps/netutils/ftpc/ftpc_connect.c b/external/ftpc/ftpc_connect.c similarity index 100% rename from apps/netutils/ftpc/ftpc_connect.c rename to external/ftpc/ftpc_connect.c diff --git a/apps/netutils/ftpc/ftpc_disconnect.c b/external/ftpc/ftpc_disconnect.c similarity index 100% rename from apps/netutils/ftpc/ftpc_disconnect.c rename to external/ftpc/ftpc_disconnect.c diff --git a/apps/netutils/ftpc/ftpc_filesize.c b/external/ftpc/ftpc_filesize.c similarity index 100% rename from apps/netutils/ftpc/ftpc_filesize.c rename to external/ftpc/ftpc_filesize.c diff --git a/apps/netutils/ftpc/ftpc_filetime.c b/external/ftpc/ftpc_filetime.c similarity index 100% rename from apps/netutils/ftpc/ftpc_filetime.c rename to external/ftpc/ftpc_filetime.c diff --git a/apps/netutils/ftpc/ftpc_getfile.c b/external/ftpc/ftpc_getfile.c similarity index 100% rename from apps/netutils/ftpc/ftpc_getfile.c rename to external/ftpc/ftpc_getfile.c diff --git a/apps/netutils/ftpc/ftpc_getreply.c b/external/ftpc/ftpc_getreply.c similarity index 100% rename from apps/netutils/ftpc/ftpc_getreply.c rename to external/ftpc/ftpc_getreply.c diff --git a/apps/netutils/ftpc/ftpc_help.c b/external/ftpc/ftpc_help.c similarity index 100% rename from apps/netutils/ftpc/ftpc_help.c rename to external/ftpc/ftpc_help.c diff --git a/apps/netutils/ftpc/ftpc_idle.c b/external/ftpc/ftpc_idle.c similarity index 100% rename from apps/netutils/ftpc/ftpc_idle.c rename to external/ftpc/ftpc_idle.c diff --git a/apps/netutils/ftpc/ftpc_internal.h b/external/ftpc/ftpc_internal.h similarity index 100% rename from apps/netutils/ftpc/ftpc_internal.h rename to external/ftpc/ftpc_internal.h diff --git a/apps/netutils/ftpc/ftpc_listdir.c b/external/ftpc/ftpc_listdir.c similarity index 100% rename from apps/netutils/ftpc/ftpc_listdir.c rename to external/ftpc/ftpc_listdir.c diff --git a/apps/netutils/ftpc/ftpc_login.c b/external/ftpc/ftpc_login.c similarity index 100% rename from apps/netutils/ftpc/ftpc_login.c rename to external/ftpc/ftpc_login.c diff --git a/apps/netutils/ftpc/ftpc_mkdir.c b/external/ftpc/ftpc_mkdir.c similarity index 100% rename from apps/netutils/ftpc/ftpc_mkdir.c rename to external/ftpc/ftpc_mkdir.c diff --git a/apps/netutils/ftpc/ftpc_noop.c b/external/ftpc/ftpc_noop.c similarity index 100% rename from apps/netutils/ftpc/ftpc_noop.c rename to external/ftpc/ftpc_noop.c diff --git a/apps/netutils/ftpc/ftpc_putfile.c b/external/ftpc/ftpc_putfile.c similarity index 100% rename from apps/netutils/ftpc/ftpc_putfile.c rename to external/ftpc/ftpc_putfile.c diff --git a/apps/netutils/ftpc/ftpc_quit.c b/external/ftpc/ftpc_quit.c similarity index 100% rename from apps/netutils/ftpc/ftpc_quit.c rename to external/ftpc/ftpc_quit.c diff --git a/apps/netutils/ftpc/ftpc_rename.c b/external/ftpc/ftpc_rename.c similarity index 100% rename from apps/netutils/ftpc/ftpc_rename.c rename to external/ftpc/ftpc_rename.c diff --git a/apps/netutils/ftpc/ftpc_response.c b/external/ftpc/ftpc_response.c similarity index 100% rename from apps/netutils/ftpc/ftpc_response.c rename to external/ftpc/ftpc_response.c diff --git a/apps/netutils/ftpc/ftpc_rmdir.c b/external/ftpc/ftpc_rmdir.c similarity index 100% rename from apps/netutils/ftpc/ftpc_rmdir.c rename to external/ftpc/ftpc_rmdir.c diff --git a/apps/netutils/ftpc/ftpc_rpwd.c b/external/ftpc/ftpc_rpwd.c similarity index 100% rename from apps/netutils/ftpc/ftpc_rpwd.c rename to external/ftpc/ftpc_rpwd.c diff --git a/apps/netutils/ftpc/ftpc_socket.c b/external/ftpc/ftpc_socket.c similarity index 100% rename from apps/netutils/ftpc/ftpc_socket.c rename to external/ftpc/ftpc_socket.c diff --git a/apps/netutils/ftpc/ftpc_transfer.c b/external/ftpc/ftpc_transfer.c similarity index 100% rename from apps/netutils/ftpc/ftpc_transfer.c rename to external/ftpc/ftpc_transfer.c diff --git a/apps/netutils/ftpc/ftpc_unlink.c b/external/ftpc/ftpc_unlink.c similarity index 100% rename from apps/netutils/ftpc/ftpc_unlink.c rename to external/ftpc/ftpc_unlink.c diff --git a/apps/netutils/ftpc/ftpc_utils.c b/external/ftpc/ftpc_utils.c similarity index 100% rename from apps/netutils/ftpc/ftpc_utils.c rename to external/ftpc/ftpc_utils.c diff --git a/apps/netutils/telnetd/.gitignore b/external/ftpd/.gitignore similarity index 100% rename from apps/netutils/telnetd/.gitignore rename to external/ftpd/.gitignore diff --git a/apps/netutils/ftpd/Kconfig b/external/ftpd/Kconfig.protocol similarity index 100% rename from apps/netutils/ftpd/Kconfig rename to external/ftpd/Kconfig.protocol diff --git a/apps/netutils/ftpd/Make.defs b/external/ftpd/Make.defs similarity index 96% rename from apps/netutils/ftpd/Make.defs rename to external/ftpd/Make.defs index 268548b..bf5fe8d 100644 --- a/apps/netutils/ftpd/Make.defs +++ b/external/ftpd/Make.defs @@ -51,6 +51,13 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_FTPD),y) -CONFIGURED_APPS += netutils/ftpd + +ifeq ($(CONFIG_NET_LWIP),y) +CSRCS += ftpd/ftpd.c +endif + +DEPPATH += --dep-path ftpd +VPATH += :ftpd + endif diff --git a/apps/netutils/ftpd/Makefile b/external/ftpd/Makefile similarity index 100% rename from apps/netutils/ftpd/Makefile rename to external/ftpd/Makefile diff --git a/apps/netutils/ftpd/ftpd.c b/external/ftpd/ftpd.c similarity index 99% rename from apps/netutils/ftpd/ftpd.c rename to external/ftpd/ftpd.c index cd785d8..9935c8b 100644 --- a/apps/netutils/ftpd/ftpd.c +++ b/external/ftpd/ftpd.c @@ -79,7 +79,7 @@ #include -#include +#include #include "ftpd.h" diff --git a/apps/netutils/ftpd/ftpd.h b/external/ftpd/ftpd.h similarity index 100% rename from apps/netutils/ftpd/ftpd.h rename to external/ftpd/ftpd.h diff --git a/apps/include/netutils/cJSON.h b/external/include/json/cJSON.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/cJSON.h rename to external/include/json/cJSON.h diff --git a/apps/include/netutils/base64.h b/external/include/protocols/base64.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/base64.h rename to external/include/protocols/base64.h diff --git a/apps/include/netutils/dhcpc.h b/external/include/protocols/dhcpc.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/dhcpc.h rename to external/include/protocols/dhcpc.h diff --git a/external/include/protocols/dhcpd.h b/external/include/protocols/dhcpd.h new file mode 100755 index 0000000..fb2531f --- /dev/null +++ b/external/include/protocols/dhcpd.h @@ -0,0 +1,113 @@ +/**************************************************************************** + * + * Copyright 2016 Samsung Electronics All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + ****************************************************************************/ +/**************************************************************************** + * apps/include/netutils/dhcpd.h + * + * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * This logic was leveraged from uIP which also has a BSD-style license: + * + * Copyright (c) 2005, Swedish Institute of Computer Science + * 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 Institute 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 INSTITUTE 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 INSTITUTE 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. + */ + /** + * @addtogroup DHCP + * @ingroup NETWORK + * @{ + */ + +/** + * @file netif.h + * @brief netif API (to be used from lwIP TCPIP thread) + */ + +#ifndef __APPS_INCLUDE_NETUTILS_DHCPD_H +#define __APPS_INCLUDE_NETUTILS_DHCPD_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" { +#else +#define EXTERN extern +#endif + +/** + * @brief Starts DHCP server which is attached given network interface. + * + * @param[in] intf the name of network interface to run DHCP server + * @return On success, 0. On failure, returns error +*/ +int dhcpd_run(void *arg); + +/** + * @brief Starts DHCP server as daemon which is attached given network interface. + * + * @param[in] intf the name of network interface to run DHCP server + * @return On success, 0. On failure, returns -1 +*/ +int dhcpd_start(char *intf); + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* __APPS_INCLUDE_NETUTILS_DHCPD_H */ +/** @} */ diff --git a/apps/include/netutils/discover.h b/external/include/protocols/discover.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/discover.h rename to external/include/protocols/discover.h diff --git a/apps/include/netutils/ftpd.h b/external/include/protocols/ftpd.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/ftpd.h rename to external/include/protocols/ftpd.h diff --git a/apps/include/netutils/ipmsfilter.h b/external/include/protocols/ipmsfilter.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/ipmsfilter.h rename to external/include/protocols/ipmsfilter.h diff --git a/apps/netutils/libcoap/LICENSE.BSD b/external/include/protocols/libcoap/LICENSE.BSD similarity index 100% rename from apps/netutils/libcoap/LICENSE.BSD rename to external/include/protocols/libcoap/LICENSE.BSD diff --git a/apps/netutils/libcoap/LICENSE.GPL b/external/include/protocols/libcoap/LICENSE.GPL similarity index 100% rename from apps/netutils/libcoap/LICENSE.GPL rename to external/include/protocols/libcoap/LICENSE.GPL diff --git a/apps/include/netutils/libcoap/address.h b/external/include/protocols/libcoap/address.h similarity index 99% rename from apps/include/netutils/libcoap/address.h rename to external/include/protocols/libcoap/address.h index 1e2bfc3..2326402 100644 --- a/apps/include/netutils/libcoap/address.h +++ b/external/include/protocols/libcoap/address.h @@ -31,7 +31,7 @@ #ifndef _COAP_ADDRESS_H_ #define _COAP_ADDRESS_H_ -#include +#include #ifdef HAVE_ASSERT_H #include diff --git a/apps/include/netutils/libcoap/async.h b/external/include/protocols/libcoap/async.h similarity index 98% rename from apps/include/netutils/libcoap/async.h rename to external/include/protocols/libcoap/async.h index 8b4e4be..1885228 100644 --- a/apps/include/netutils/libcoap/async.h +++ b/external/include/protocols/libcoap/async.h @@ -31,8 +31,8 @@ #ifndef _COAP_ASYNC_H_ #define _COAP_ASYNC_H_ -#include -#include +#include +#include #ifndef WITHOUT_ASYNC diff --git a/apps/include/netutils/libcoap/bits.h b/external/include/protocols/libcoap/bits.h similarity index 100% rename from apps/include/netutils/libcoap/bits.h rename to external/include/protocols/libcoap/bits.h diff --git a/apps/include/netutils/libcoap/block.h b/external/include/protocols/libcoap/block.h similarity index 98% rename from apps/include/netutils/libcoap/block.h rename to external/include/protocols/libcoap/block.h index 9d8d31f..d450b18 100644 --- a/apps/include/netutils/libcoap/block.h +++ b/external/include/protocols/libcoap/block.h @@ -26,9 +26,9 @@ #ifndef _COAP_BLOCK_H_ #define _COAP_BLOCK_H_ -#include -#include -#include +#include +#include +#include /** * @defgroup block Block Transfer diff --git a/apps/include/netutils/libcoap/coap.h b/external/include/protocols/libcoap/coap.h similarity index 65% rename from apps/include/netutils/libcoap/coap.h rename to external/include/protocols/libcoap/coap.h index 13dc8d1..bcce1b1 100644 --- a/apps/include/netutils/libcoap/coap.h +++ b/external/include/protocols/libcoap/coap.h @@ -30,20 +30,20 @@ extern "C" { #endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #ifdef __cplusplus } diff --git a/apps/include/netutils/libcoap/coap_list.h b/external/include/protocols/libcoap/coap_list.h similarity index 100% rename from apps/include/netutils/libcoap/coap_list.h rename to external/include/protocols/libcoap/coap_list.h diff --git a/apps/include/netutils/libcoap/coap_time.h b/external/include/protocols/libcoap/coap_time.h similarity index 98% rename from apps/include/netutils/libcoap/coap_time.h rename to external/include/protocols/libcoap/coap_time.h index 891448e..e33777f 100644 --- a/apps/include/netutils/libcoap/coap_time.h +++ b/external/include/protocols/libcoap/coap_time.h @@ -38,7 +38,7 @@ extern "C" { #endif -#include +#include /** * @defgroup clock Clock Handling diff --git a/apps/include/netutils/libcoap/config.h b/external/include/protocols/libcoap/config.h similarity index 100% rename from apps/include/netutils/libcoap/config.h rename to external/include/protocols/libcoap/config.h diff --git a/apps/include/netutils/libcoap/debug.h b/external/include/protocols/libcoap/debug.h similarity index 96% rename from apps/include/netutils/libcoap/debug.h rename to external/include/protocols/libcoap/debug.h index 85c2e28..dc445a2 100644 --- a/apps/include/netutils/libcoap/debug.h +++ b/external/include/protocols/libcoap/debug.h @@ -26,7 +26,7 @@ #ifndef _COAP_DEBUG_H_ #define _COAP_DEBUG_H_ -#include +#include #ifndef COAP_DEBUG_FD #define COAP_DEBUG_FD stdout @@ -71,7 +71,7 @@ void coap_log_impl(coap_log_t level, const char *format, ...); #define warn(...) coap_log(LOG_WARNING, __VA_ARGS__) #define debug(...) coap_log(LOG_DEBUG, __VA_ARGS__) -#include +#include void coap_show_pdu2(const coap_pdu_t *, coap_protocol_t protocol); void coap_show_pdu(const coap_pdu_t *); diff --git a/apps/include/netutils/libcoap/encode.h b/external/include/protocols/libcoap/encode.h similarity index 98% rename from apps/include/netutils/libcoap/encode.h rename to external/include/protocols/libcoap/encode.h index bc6eda3..b6e954a 100644 --- a/apps/include/netutils/libcoap/encode.h +++ b/external/include/protocols/libcoap/encode.h @@ -26,7 +26,7 @@ #ifndef _COAP_ENCODE_H_ #define _COAP_ENCODE_H_ -#include +#include #if defined (__TINYARA__) #include diff --git a/apps/include/netutils/libcoap/hashkey.h b/external/include/protocols/libcoap/hashkey.h similarity index 98% rename from apps/include/netutils/libcoap/hashkey.h rename to external/include/protocols/libcoap/hashkey.h index 367bab8..2f6f14b 100644 --- a/apps/include/netutils/libcoap/hashkey.h +++ b/external/include/protocols/libcoap/hashkey.h @@ -31,7 +31,7 @@ #ifndef _COAP_HASHKEY_H_ #define _COAP_HASHKEY_H_ -#include +#include typedef unsigned char coap_key_t[4]; diff --git a/apps/include/netutils/libcoap/mem.h b/external/include/protocols/libcoap/mem.h similarity index 100% rename from apps/include/netutils/libcoap/mem.h rename to external/include/protocols/libcoap/mem.h diff --git a/apps/include/netutils/libcoap/net.h b/external/include/protocols/libcoap/net.h similarity index 98% rename from apps/include/netutils/libcoap/net.h rename to external/include/protocols/libcoap/net.h index 485698a..2f7f38a 100644 --- a/apps/include/netutils/libcoap/net.h +++ b/external/include/protocols/libcoap/net.h @@ -30,7 +30,7 @@ extern "C" { #endif -#include +#include #ifdef HAVE_ASSERT_H #include @@ -57,11 +57,11 @@ extern "C" { #include #endif -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #ifdef WITH_MBEDTLS #include "tls/certs.h" diff --git a/apps/include/netutils/libcoap/option.h b/external/include/protocols/libcoap/option.h similarity index 99% rename from apps/include/netutils/libcoap/option.h rename to external/include/protocols/libcoap/option.h index 4abe1b2..007f98d 100644 --- a/apps/include/netutils/libcoap/option.h +++ b/external/include/protocols/libcoap/option.h @@ -32,8 +32,8 @@ #ifndef _OPTION_H_ #define _OPTION_H_ -#include -#include +#include +#include /** * Use byte-oriented access methods here because sliding a complex diff --git a/apps/include/netutils/libcoap/pdu.h b/external/include/protocols/libcoap/pdu.h similarity index 99% rename from apps/include/netutils/libcoap/pdu.h rename to external/include/protocols/libcoap/pdu.h index bd6a269..b54eb6c 100644 --- a/apps/include/netutils/libcoap/pdu.h +++ b/external/include/protocols/libcoap/pdu.h @@ -26,9 +26,9 @@ #ifndef _PDU_H_ #define _PDU_H_ -#include -#include -#include +#include +#include +#include #ifdef WITH_LWIP #include diff --git a/apps/include/netutils/libcoap/prng.h b/external/include/protocols/libcoap/prng.h similarity index 98% rename from apps/include/netutils/libcoap/prng.h rename to external/include/protocols/libcoap/prng.h index 9a54911..8f20dab 100644 --- a/apps/include/netutils/libcoap/prng.h +++ b/external/include/protocols/libcoap/prng.h @@ -31,7 +31,7 @@ #ifndef _COAP_PRNG_H_ #define _COAP_PRNG_H_ -#include +#include /** * @defgroup prng Pseudo Random Numbers diff --git a/apps/include/netutils/libcoap/resource.h b/external/include/protocols/libcoap/resource.h similarity index 96% rename from apps/include/netutils/libcoap/resource.h rename to external/include/protocols/libcoap/resource.h index 484217f..8c0bc9c 100644 --- a/apps/include/netutils/libcoap/resource.h +++ b/external/include/protocols/libcoap/resource.h @@ -31,8 +31,8 @@ #ifndef _COAP_RESOURCE_H_ #define _COAP_RESOURCE_H_ -#include -#include +#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include @@ -45,18 +45,18 @@ #ifndef WITH_CONTIKI #ifdef COAP_RESOURCES_NOHASH -#include +#include #else -#include +#include #endif #else /* WITH_CONTIKI */ #endif /* WITH_CONTIKI */ -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include /** Definition of message handler function (@sa coap_resource_t). */ typedef void (*coap_method_handler_t) diff --git a/apps/include/netutils/libcoap/str.h b/external/include/protocols/libcoap/str.h similarity index 100% rename from apps/include/netutils/libcoap/str.h rename to external/include/protocols/libcoap/str.h diff --git a/apps/include/netutils/libcoap/subscribe.h b/external/include/protocols/libcoap/subscribe.h similarity index 98% rename from apps/include/netutils/libcoap/subscribe.h rename to external/include/protocols/libcoap/subscribe.h index 6e3f9e6..826ecec 100644 --- a/apps/include/netutils/libcoap/subscribe.h +++ b/external/include/protocols/libcoap/subscribe.h @@ -27,8 +27,8 @@ #ifndef _COAP_SUBSCRIBE_H_ #define _COAP_SUBSCRIBE_H_ -#include -#include +#include +#include /** * @defgroup observe Resource observation diff --git a/apps/include/netutils/libcoap/t_list.h b/external/include/protocols/libcoap/t_list.h similarity index 99% rename from apps/include/netutils/libcoap/t_list.h rename to external/include/protocols/libcoap/t_list.h index 8348936..288d712 100644 --- a/apps/include/netutils/libcoap/t_list.h +++ b/external/include/protocols/libcoap/t_list.h @@ -157,7 +157,7 @@ static inline void *list_item_next(void *item) } #else /* WITH_CONTIKI */ -#include +#include #endif /* WITH_CONTIKI */ #endif /* _DTLS_LIST_H_ */ diff --git a/apps/include/netutils/libcoap/uri.h b/external/include/protocols/libcoap/uri.h similarity index 98% rename from apps/include/netutils/libcoap/uri.h rename to external/include/protocols/libcoap/uri.h index 7da6963..005bd0b 100644 --- a/apps/include/netutils/libcoap/uri.h +++ b/external/include/protocols/libcoap/uri.h @@ -26,8 +26,8 @@ #ifndef _COAP_URI_H_ #define _COAP_URI_H_ -#include -#include +#include +#include /** Representation of parsed URI. Components may be filled from a * string with coap_split_uri() and can be used as input for diff --git a/apps/include/netutils/libcoap/uthash.h b/external/include/protocols/libcoap/uthash.h similarity index 100% rename from apps/include/netutils/libcoap/uthash.h rename to external/include/protocols/libcoap/uthash.h diff --git a/apps/include/netutils/libcoap/utlist.h b/external/include/protocols/libcoap/utlist.h similarity index 100% rename from apps/include/netutils/libcoap/utlist.h rename to external/include/protocols/libcoap/utlist.h diff --git a/apps/include/netutils/liblwm2m.h b/external/include/protocols/liblwm2m.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/liblwm2m.h rename to external/include/protocols/liblwm2m.h diff --git a/apps/include/netutils/md5.h b/external/include/protocols/md5.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/md5.h rename to external/include/protocols/md5.h diff --git a/apps/include/netutils/mdnsd.h b/external/include/protocols/mdnsd.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/mdnsd.h rename to external/include/protocols/mdnsd.h diff --git a/apps/include/netutils/netlib.h b/external/include/protocols/netlib.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/netlib.h rename to external/include/protocols/netlib.h diff --git a/apps/include/netutils/ntpclient.h b/external/include/protocols/ntpclient.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/ntpclient.h rename to external/include/protocols/ntpclient.h diff --git a/apps/include/netutils/smtp.h b/external/include/protocols/smtp.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/smtp.h rename to external/include/protocols/smtp.h diff --git a/apps/include/netutils/telnetd.h b/external/include/protocols/telnetd.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/telnetd.h rename to external/include/protocols/telnetd.h diff --git a/apps/include/netutils/tftp.h b/external/include/protocols/tftp.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/tftp.h rename to external/include/protocols/tftp.h diff --git a/apps/include/netutils/urldecode.h b/external/include/protocols/urldecode.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/urldecode.h rename to external/include/protocols/urldecode.h diff --git a/apps/include/netutils/webclient.h b/external/include/protocols/webclient.h old mode 100644 new mode 100755 similarity index 99% rename from apps/include/netutils/webclient.h rename to external/include/protocols/webclient.h index d6c417e..89b50f6 --- a/apps/include/netutils/webclient.h +++ b/external/include/protocols/webclient.h @@ -53,7 +53,7 @@ #include "tls/ssl_cache.h" #endif -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/include/netutils/webserver/http_err.h b/external/include/protocols/webserver/http_err.h similarity index 100% rename from apps/include/netutils/webserver/http_err.h rename to external/include/protocols/webserver/http_err.h diff --git a/apps/include/netutils/webserver/http_keyvalue_list.h b/external/include/protocols/webserver/http_keyvalue_list.h similarity index 98% rename from apps/include/netutils/webserver/http_keyvalue_list.h rename to external/include/protocols/webserver/http_keyvalue_list.h index 7595f1a..58bf747 100644 --- a/apps/include/netutils/webserver/http_keyvalue_list.h +++ b/external/include/protocols/webserver/http_keyvalue_list.h @@ -33,7 +33,7 @@ ****************************************************************************/ #include -#include +#include #ifdef __cplusplus #define EXTERN extern "C" diff --git a/apps/include/netutils/webserver/http_server.h b/external/include/protocols/webserver/http_server.h similarity index 99% rename from apps/include/netutils/webserver/http_server.h rename to external/include/protocols/webserver/http_server.h index 56beb95..9f8e210 100644 --- a/apps/include/netutils/webserver/http_server.h +++ b/external/include/protocols/webserver/http_server.h @@ -47,7 +47,7 @@ #include #ifdef CONFIG_NETUTILS_WEBSOCKET -#include +#include #endif #ifdef CONFIG_NET_SECURITY_TLS diff --git a/apps/include/netutils/websocket.h b/external/include/protocols/websocket.h old mode 100644 new mode 100755 similarity index 99% rename from apps/include/netutils/websocket.h rename to external/include/protocols/websocket.h index f0daf52..fdd4ce7 --- a/apps/include/netutils/websocket.h +++ b/external/include/protocols/websocket.h @@ -39,7 +39,7 @@ #include #include -#include +#include #include #include "tls/config.h" diff --git a/apps/include/netutils/wslay/wslay.h b/external/include/protocols/wslay/wslay.h similarity index 100% rename from apps/include/netutils/wslay/wslay.h rename to external/include/protocols/wslay/wslay.h diff --git a/apps/include/netutils/xmlrpc.h b/external/include/protocols/xmlrpc.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/xmlrpc.h rename to external/include/protocols/xmlrpc.h diff --git a/external/iotivity/iotivity_1.2-rel/extlibs/tinycbor/tinycbor/tools/json2cbor/json2cbor.c b/external/iotivity/iotivity_1.2-rel/extlibs/tinycbor/tinycbor/tools/json2cbor/json2cbor.c index d2839f6..754302f 100644 --- a/external/iotivity/iotivity_1.2-rel/extlibs/tinycbor/tinycbor/tools/json2cbor/json2cbor.c +++ b/external/iotivity/iotivity_1.2-rel/extlibs/tinycbor/tinycbor/tools/json2cbor/json2cbor.c @@ -28,7 +28,7 @@ #include "compilersupport_p.h" #if defined (__TIZENRT__) -#include +#include #else #include #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/internal/psinterface.h b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/internal/psinterface.h index ae228bf..7e0a791 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/internal/psinterface.h +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/internal/psinterface.h @@ -22,7 +22,7 @@ #define IOTVT_SRM_PSI_H #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/srmutility.h b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/srmutility.h index 0ba1694..df410da 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/srmutility.h +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/include/srmutility.h @@ -23,7 +23,7 @@ #include "ocstack.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/multipleownershiptransfermanager.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/multipleownershiptransfermanager.c index fb7104c..f075144 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/multipleownershiptransfermanager.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/multipleownershiptransfermanager.c @@ -38,7 +38,7 @@ #include "cainterface.h" #include "base64.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/ownershiptransfermanager.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/ownershiptransfermanager.c index 334a912..3530754 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/ownershiptransfermanager.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/ownershiptransfermanager.c @@ -50,7 +50,7 @@ #include "cainterface.h" #include "base64.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/pmutility.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/pmutility.c index 4a55dac..fb3061b 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/pmutility.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/pmutility.c @@ -35,7 +35,7 @@ #include "oic_time.h" #include "logger.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/secureresourceprovider.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/secureresourceprovider.c index c7d34b8..797d020 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/secureresourceprovider.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/provisioning/src/secureresourceprovider.c @@ -39,7 +39,7 @@ #include "credentialgenerator.h" #include "cainterface.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/directpairing.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/directpairing.c index 7fa8bb2..3f0556f 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/directpairing.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/directpairing.c @@ -39,7 +39,7 @@ #include "oic_string.h" #include "logger.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/dpairingresource.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/dpairingresource.c index 8f03b9a..29538af 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/dpairingresource.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/dpairingresource.c @@ -26,7 +26,7 @@ #include "oic_malloc.h" #include "oic_string.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/pconfresource.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/pconfresource.c index 475b5c9..ce55ab5 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/pconfresource.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/src/pconfresource.c @@ -26,7 +26,7 @@ #include "oic_malloc.h" #include "oic_string.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/tool/json2cbor.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/tool/json2cbor.c index 5482ace..a440cac 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/security/tool/json2cbor.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/security/tool/json2cbor.c @@ -22,7 +22,7 @@ #include #include "utlist.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.cpp b/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.cpp index 2e45cbc..50a4eae 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.cpp +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/samples/linux/SimpleClientServer/ocserverslow.cpp @@ -42,7 +42,7 @@ #include "oic_string.h" #include "logger.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/src/oicgroup.c b/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/src/oicgroup.c index 5114f41..8d53c4e 100644 --- a/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/src/oicgroup.c +++ b/external/iotivity/iotivity_1.2-rel/resource/csdk/stack/src/oicgroup.c @@ -26,7 +26,7 @@ #include "oicgroup.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/include/CoapHttpMap.h b/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/include/CoapHttpMap.h index 6912e5d..0125fb8 100644 --- a/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/include/CoapHttpMap.h +++ b/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/include/CoapHttpMap.h @@ -33,7 +33,7 @@ extern "C" #include "CoapHttpParser.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/src/CoapHttpHandler.c b/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/src/CoapHttpHandler.c index 8d7eb64..1bd9681 100644 --- a/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/src/CoapHttpHandler.c +++ b/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/src/CoapHttpHandler.c @@ -28,7 +28,7 @@ #include "CoapHttpParser.h" #include "CoapHttpMap.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/unittests/CoAPHttpUnitTest.cpp b/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/unittests/CoAPHttpUnitTest.cpp index 3eade69..50e5bde 100644 --- a/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/unittests/CoAPHttpUnitTest.cpp +++ b/external/iotivity/iotivity_1.2-rel/service/coap-http-proxy/unittests/CoAPHttpUnitTest.cpp @@ -29,7 +29,7 @@ #include "CoapHttpParser.h" #include "CoapHttpMap.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/IncludeResolver.h b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/IncludeResolver.h index da90c64..5013b0e 100644 --- a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/IncludeResolver.h +++ b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/IncludeResolver.h @@ -30,7 +30,7 @@ #include #include #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/JsonSchema.h b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/JsonSchema.h index 15490d1..9c48e86 100644 --- a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/JsonSchema.h +++ b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/JsonSchema.h @@ -33,7 +33,7 @@ #include "Properties.h" #include "Definitions.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/Properties.h b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/Properties.h index 03dd243..0c21ee4 100644 --- a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/Properties.h +++ b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/jsonSchemaParser/Properties.h @@ -34,7 +34,7 @@ #include #include #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Raml.h b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Raml.h index 482919b..7481565 100644 --- a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Raml.h +++ b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Raml.h @@ -50,7 +50,7 @@ #include "RamlExceptions.h" #include "RamlUtils.h" #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Schema.h b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Schema.h index 658538f..46ba9da 100644 --- a/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Schema.h +++ b/external/iotivity/iotivity_1.2-rel/service/simulator/ramlparser/raml/model/Schema.h @@ -29,7 +29,7 @@ #include #if defined (__TIZENRT__) -#include +#include #else #include "cJSON.h" #endif diff --git a/apps/netutils/json/.gitignore b/external/json/.gitignore similarity index 100% rename from apps/netutils/json/.gitignore rename to external/json/.gitignore diff --git a/apps/netutils/json/Kconfig b/external/json/Kconfig similarity index 100% rename from apps/netutils/json/Kconfig rename to external/json/Kconfig diff --git a/apps/netutils/json/Make.defs b/external/json/Make.defs similarity index 97% rename from apps/netutils/json/Make.defs rename to external/json/Make.defs index c845a4c..fead411 100644 --- a/apps/netutils/json/Make.defs +++ b/external/json/Make.defs @@ -51,6 +51,11 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_JSON),y) -CONFIGURED_APPS += netutils/json + +CSRCS += json/cJSON.c + +DEPPATH += --dep-path json +VPATH += :json + endif diff --git a/apps/netutils/json/Makefile b/external/json/Makefile similarity index 100% rename from apps/netutils/json/Makefile rename to external/json/Makefile diff --git a/apps/netutils/json/README b/external/json/README similarity index 100% rename from apps/netutils/json/README rename to external/json/README diff --git a/apps/netutils/json/cJSON.c b/external/json/cJSON.c similarity index 99% rename from apps/netutils/json/cJSON.c rename to external/json/cJSON.c index 0067c72..dd426b3 100644 --- a/apps/netutils/json/cJSON.c +++ b/external/json/cJSON.c @@ -60,7 +60,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/libcoap/Kconfig b/external/libcoap/Kconfig.protocol similarity index 100% rename from apps/netutils/libcoap/Kconfig rename to external/libcoap/Kconfig.protocol diff --git a/apps/include/netutils/libcoap/LICENSE.BSD b/external/libcoap/LICENSE.BSD similarity index 100% rename from apps/include/netutils/libcoap/LICENSE.BSD rename to external/libcoap/LICENSE.BSD diff --git a/apps/include/netutils/libcoap/LICENSE.GPL b/external/libcoap/LICENSE.GPL similarity index 100% rename from apps/include/netutils/libcoap/LICENSE.GPL rename to external/libcoap/LICENSE.GPL diff --git a/apps/netutils/libcoap/Make.defs b/external/libcoap/Make.defs similarity index 86% rename from apps/netutils/libcoap/Make.defs rename to external/libcoap/Make.defs index 0eb52c3..61d6805 100644 --- a/apps/netutils/libcoap/Make.defs +++ b/external/libcoap/Make.defs @@ -51,6 +51,24 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_LIBCOAP),y) -CONFIGURED_APPS += netutils/libcoap + +CSRCS += libcoap/async.c +CSRCS += libcoap/block.c +CSRCS += libcoap/coap_list.c +CSRCS += libcoap/debug.c +CSRCS += libcoap/encode.c +CSRCS += libcoap/hashkey.c +CSRCS += libcoap/net.c +CSRCS += libcoap/option.c +CSRCS += libcoap/pdu.c +CSRCS += libcoap/resource.c +CSRCS += libcoap/str.c +CSRCS += libcoap/subscribe.c +CSRCS += libcoap/uri.c + +DEPPATH += --dep-path libcoap +VPATH += :libcoap + endif + diff --git a/apps/netutils/libcoap/Makefile b/external/libcoap/Makefile similarity index 100% rename from apps/netutils/libcoap/Makefile rename to external/libcoap/Makefile diff --git a/apps/netutils/libcoap/README b/external/libcoap/README similarity index 100% rename from apps/netutils/libcoap/README rename to external/libcoap/README diff --git a/apps/netutils/libcoap/async.c b/external/libcoap/async.c similarity index 94% rename from apps/netutils/libcoap/async.c rename to external/libcoap/async.c index 2988647..a699ca4 100644 --- a/apps/netutils/libcoap/async.c +++ b/external/libcoap/async.c @@ -30,13 +30,13 @@ #ifndef WITHOUT_ASYNC -#include +#include -#include +#include -#include -#include -#include +#include +#include +#include coap_async_state_t *coap_register_async(coap_context_t *context, coap_address_t *peer, coap_pdu_t *request, unsigned char flags, void *data) { diff --git a/apps/netutils/libcoap/block.c b/external/libcoap/block.c similarity index 97% rename from apps/netutils/libcoap/block.c rename to external/libcoap/block.c index d79cdce..e295daf 100644 --- a/apps/netutils/libcoap/block.c +++ b/external/libcoap/block.c @@ -23,14 +23,14 @@ * README for terms of use. */ -#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include #endif -#include -#include +#include +#include #define min(a,b) ((a) < (b) ? (a) : (b)) diff --git a/apps/netutils/libcoap/coap_list.c b/external/libcoap/coap_list.c similarity index 93% rename from apps/netutils/libcoap/coap_list.c rename to external/libcoap/coap_list.c index 06c2fa9..564dddc 100644 --- a/apps/netutils/libcoap/coap_list.c +++ b/external/libcoap/coap_list.c @@ -23,14 +23,14 @@ * README for terms of use. */ -#include +#include #include #include -#include -#include -#include +#include +#include +#include int coap_insert(coap_list_t **queue, coap_list_t *node, int (*order)(void *, void *node)) { diff --git a/apps/netutils/libcoap/debug.c b/external/libcoap/debug.c similarity index 98% rename from apps/netutils/libcoap/debug.c rename to external/libcoap/debug.c index 9473953..afb48bc 100644 --- a/apps/netutils/libcoap/debug.c +++ b/external/libcoap/debug.c @@ -23,7 +23,7 @@ * README for terms of use. */ -#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include @@ -42,8 +42,8 @@ #include #endif -#include -#include +#include +#include #ifdef WITH_CONTIKI #ifndef DEBUG diff --git a/apps/netutils/libcoap/encode.c b/external/libcoap/encode.c similarity index 96% rename from apps/netutils/libcoap/encode.c rename to external/libcoap/encode.c index e7cb70d..a62f804 100644 --- a/apps/netutils/libcoap/encode.c +++ b/external/libcoap/encode.c @@ -27,8 +27,8 @@ #include #endif -#include -#include +#include +#include /* Carsten suggested this when fls() is not available: */ int coap_fls(unsigned int i) diff --git a/apps/netutils/libcoap/hashkey.c b/external/libcoap/hashkey.c similarity index 96% rename from apps/netutils/libcoap/hashkey.c rename to external/libcoap/hashkey.c index 05e0df7..9ee9430 100644 --- a/apps/netutils/libcoap/hashkey.c +++ b/external/libcoap/hashkey.c @@ -23,7 +23,7 @@ * README for terms of use. */ -#include +#include /* Caution: When changing this, update COAP_DEFAULT_WKC_HASHKEY * accordingly (see int coap_hash_path()); diff --git a/apps/netutils/libcoap/net.c b/external/libcoap/net.c similarity index 99% rename from apps/netutils/libcoap/net.c rename to external/libcoap/net.c index cb31c5f..cca5375 100644 --- a/apps/netutils/libcoap/net.c +++ b/external/libcoap/net.c @@ -23,7 +23,7 @@ * README for terms of use. */ -#include +#include #include #include @@ -55,15 +55,15 @@ #include #endif -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #if defined(WITH_POSIX) diff --git a/apps/netutils/libcoap/option.c b/external/libcoap/option.c similarity index 98% rename from apps/netutils/libcoap/option.c rename to external/libcoap/option.c index 4088fa4..e539824 100644 --- a/apps/netutils/libcoap/option.c +++ b/external/libcoap/option.c @@ -24,7 +24,7 @@ * README for terms of use. */ -#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include @@ -33,8 +33,8 @@ #include #include -#include -#include +#include +#include coap_opt_t *options_start(coap_pdu_t *pdu, coap_transport_t transport) { diff --git a/apps/netutils/libcoap/pdu.c b/external/libcoap/pdu.c similarity index 99% rename from apps/netutils/libcoap/pdu.c rename to external/libcoap/pdu.c index e376aac..5c0d0d4 100644 --- a/apps/netutils/libcoap/pdu.c +++ b/external/libcoap/pdu.c @@ -23,7 +23,7 @@ * README for terms of use. */ -#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include @@ -36,10 +36,10 @@ #include #endif -#include -#include -#include -#include +#include +#include +#include +#include #ifdef WITH_CONTIKI #include "memb.h" @@ -55,7 +55,7 @@ void coap_pdu_resources_init() memb_init(&pdu_storage); } #else /* WITH_CONTIKI */ -#include +#include #endif /* WITH_CONTIKI */ void coap_pdu_clear(coap_pdu_t *pdu, size_t size) diff --git a/apps/netutils/libcoap/resource.c b/external/libcoap/resource.c similarity index 98% rename from apps/netutils/libcoap/resource.c rename to external/libcoap/resource.c index d0be6ac..16bfb34 100644 --- a/apps/netutils/libcoap/resource.c +++ b/external/libcoap/resource.c @@ -23,11 +23,11 @@ * README for terms of use. */ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #ifdef WITH_LWIP #include "utlist.h" @@ -45,8 +45,8 @@ #endif #ifdef WITH_POSIX -#include -#include +#include +#include #define COAP_MALLOC_TYPE(Type) \ ((coap_##Type##_t *)coap_malloc(sizeof(coap_##Type##_t))) diff --git a/apps/netutils/libcoap/str.c b/external/libcoap/str.c similarity index 89% rename from apps/netutils/libcoap/str.c rename to external/libcoap/str.c index e18ec48..2f819b6 100644 --- a/apps/netutils/libcoap/str.c +++ b/external/libcoap/str.c @@ -23,13 +23,13 @@ * README for terms of use. */ -#include +#include #include -#include -#include -#include +#include +#include +#include str *coap_new_string(size_t size) { diff --git a/apps/netutils/libcoap/subscribe.c b/external/libcoap/subscribe.c similarity index 97% rename from apps/netutils/libcoap/subscribe.c rename to external/libcoap/subscribe.c index 8ec658f..0b8f158 100644 --- a/apps/netutils/libcoap/subscribe.c +++ b/external/libcoap/subscribe.c @@ -24,7 +24,7 @@ * README for terms of use. */ -#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include @@ -38,10 +38,10 @@ /* #include "resource.h" */ -#include -#include -#include -#include +#include +#include +#include +#include void coap_subscription_init(coap_subscription_t *s) { diff --git a/apps/netutils/libcoap/uri.c b/external/libcoap/uri.c similarity index 98% rename from apps/netutils/libcoap/uri.c rename to external/libcoap/uri.c index edcfe25..749f609 100644 --- a/apps/netutils/libcoap/uri.c +++ b/external/libcoap/uri.c @@ -23,7 +23,7 @@ * README for terms of use. */ -#include +#include #if defined(HAVE_ASSERT_H) && !defined(assert) #include @@ -33,11 +33,11 @@ #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include /** * A length-safe version of strchr(). This function returns a pointer diff --git a/apps/netutils/mdns/Kconfig b/external/mdns/Kconfig.protocol similarity index 100% rename from apps/netutils/mdns/Kconfig rename to external/mdns/Kconfig.protocol diff --git a/apps/netutils/mdns/Make.defs b/external/mdns/Make.defs similarity index 90% rename from apps/netutils/mdns/Make.defs rename to external/mdns/Make.defs index 538dfdb..610b52b 100644 --- a/apps/netutils/mdns/Make.defs +++ b/external/mdns/Make.defs @@ -17,5 +17,10 @@ ########################################################################### ifeq ($(CONFIG_NETUTILS_MDNS),y) -CONFIGURED_APPS += netutils/mdns + +CSRCS += mdns/mdns.c mdns/mdnsd.c + +DEPPATH += --dep-path mdns +VPATH += :mdns + endif diff --git a/apps/netutils/mdns/Makefile b/external/mdns/Makefile similarity index 100% rename from apps/netutils/mdns/Makefile rename to external/mdns/Makefile diff --git a/apps/netutils/mdns/mdns.c b/external/mdns/mdns.c similarity index 100% rename from apps/netutils/mdns/mdns.c rename to external/mdns/mdns.c diff --git a/apps/netutils/mdns/mdns.h b/external/mdns/mdns.h similarity index 100% rename from apps/netutils/mdns/mdns.h rename to external/mdns/mdns.h diff --git a/apps/netutils/mdns/mdnsd.c b/external/mdns/mdnsd.c similarity index 99% rename from apps/netutils/mdns/mdnsd.c rename to external/mdns/mdnsd.c index a6e98c7..2d92f50 100644 --- a/apps/netutils/mdns/mdnsd.c +++ b/external/mdns/mdnsd.c @@ -90,7 +90,7 @@ #endif #include "mdns.h" -#include +#include #if (MDNS_DEBUG_PRINTF == 1) && (MDNS_RR_DEBUG == 1) #define MDNSD_RR_DEBUG diff --git a/external/mosquitto/Make.defs b/external/mosquitto/Make.defs new file mode 100644 index 0000000..7ed2ffd --- /dev/null +++ b/external/mosquitto/Make.defs @@ -0,0 +1,81 @@ +########################################################################### +# +# Copyright 2017 Samsung Electronics All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +# +########################################################################### +# apps/netutils/dhcpd/Make.defs +# Adds selected applications to apps/ build +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# 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 NuttX 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 OWNER 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. +# +############################################################################ + +ifeq ($(CONFIG_NETUTILS_MQTT),y) + +include mosquitto/config.mk + +CSRCS += mosquitto/tls_mosq.c +CSRCS += mosquitto/net_mosq.c +CSRCS += mosquitto/send_client_mosq.c +CSRCS += mosquitto/messages_mosq.c +CSRCS += mosquitto/util_mosq.c +CSRCS += mosquitto/socks_mosq.c +CSRCS += mosquitto/will_mosq.c +CSRCS += mosquitto/mosquitto.c +CSRCS += mosquitto/logging_mosq.c +CSRCS += mosquitto/send_mosq.c +CSRCS += mosquitto/read_handle_shared.c +CSRCS += mosquitto/srv_mosq.c +CSRCS += mosquitto/thread_mosq.c +CSRCS += mosquitto/read_handle_client.c +CSRCS += mosquitto/read_handle.c +CSRCS += mosquitto/time_mosq.c +CSRCS += mosquitto/memory_mosq.c + +#CFLAGS += -Imosquitto + +DEPPATH += --dep-path mosquitto +VPATH += :mosquitto + +endif + diff --git a/apps/netutils/mqtt/config.h b/external/mosquitto/config.h similarity index 100% rename from apps/netutils/mqtt/config.h rename to external/mosquitto/config.h diff --git a/external/mosquitto/config.mk b/external/mosquitto/config.mk new file mode 100644 index 0000000..7fb9518 --- /dev/null +++ b/external/mosquitto/config.mk @@ -0,0 +1,115 @@ +########################################################################### +# +# Copyright 2016 Samsung Electronics All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +# either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +# +########################################################################### +# ============================================================================= +# User configuration section. +# +# These options control compilation on all systems apart from Windows and Mac +# OS X. Use CMake to compile on Windows and Mac. +# +# Largely, these are options that are designed to make mosquitto run more +# easily in restrictive environments by removing features. +# +# Modify the variable below to enable/disable features. +# +# Can also be overriden at the command line, e.g.: +# +# make WITH_TLS=no +# ============================================================================= + +# Uncomment to compile the broker with tcpd/libwrap support. +#WITH_WRAP:=yes + +# Comment out to disable SSL/TLS support in the broker and client. +# Disabling this will also mean that passwords must be stored in plain text. It +# is strongly recommended that you only disable WITH_TLS if you are not using +# password authentication at all. +WITH_TLS:=no + +# Comment out to disable TLS/PSK support in the broker and client. Requires +# WITH_TLS=yes. +# This must be disabled if using openssl < 1.0. +WITH_TLS_PSK:=no + +# Comment out to disable client client threading support. +WITH_THREADING:=yes + +# Comment out to remove bridge support from the broker. This allow the broker +# to connect to other brokers and subscribe/publish to topics. You probably +# want to leave this included unless you want to save a very small amount of +# memory size and CPU time. +WITH_BRIDGE:=no + +# Comment out to remove persistent database support from the broker. This +# allows the broker to store retained messages and durable subscriptions to a +# file periodically and on shutdown. This is usually desirable (and is +# suggested by the MQTT spec), but it can be disabled if required. +WITH_PERSISTENCE:=no + +# Comment out to remove memory tracking support from the broker. If disabled, +# mosquitto won't track heap memory usage nor export '$SYS/broker/heap/current +# size', but will use slightly less memory and CPU time. +WITH_MEMORY_TRACKING:=no + +# Compile with database upgrading support? If disabled, mosquitto won't +# automatically upgrade old database versions. +# Not currently supported. +#WITH_DB_UPGRADE:=yes + +# Comment out to remove publishing of the $SYS topic hierarchy containing +# information about the broker state. +WITH_SYS_TREE:=no + +# Build with SRV lookup support. +WITH_SRV:=no + +# Build using libuuid for clientid generation (Linux only - please report if +# supported on your platform). +WITH_UUID:=no + +# Build with websockets support on the broker. +WITH_WEBSOCKETS:=no + +# Use elliptic keys in broker +WITH_EC:=no + +# Build man page documentation by default. +WITH_DOCS:=no + +# Build with client support for SOCK5 proxy. +WITH_SOCKS:=no + +# ============================================================================= +# End of user configuration +# ============================================================================= +-include $(TOPDIR)/.config + +#MQTT_TOP=$(EXTDIR)/mosquitto +MQTT_TOP=mosquitto +VERSION=1.4.10 + +ifeq ($(WITH_THREADING),yes) + LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_THREADING +endif + +ifeq ($(CONFIG_NETUTILS_MQTT_SECURITY),y) + LIB_CFLAGS:=$(LIB_CFLAGS) -DWITH_MBEDTLS +endif + +MQTT_LIB_CFLAGS := $(LIB_CFLAGS) -D__TINYARA__ -DVERSION="\"${VERSION}\"" +MQTT_LIB_CFLAGS += -I$(MQTT_TOP) +CFLAGS += $(MQTT_LIB_CFLAGS) diff --git a/apps/netutils/mqtt/lib/logging_mosq.c b/external/mosquitto/logging_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/logging_mosq.c rename to external/mosquitto/logging_mosq.c diff --git a/apps/netutils/mqtt/lib/logging_mosq.h b/external/mosquitto/logging_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/logging_mosq.h rename to external/mosquitto/logging_mosq.h diff --git a/apps/netutils/mqtt/lib/memory_mosq.c b/external/mosquitto/memory_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/memory_mosq.c rename to external/mosquitto/memory_mosq.c diff --git a/apps/netutils/mqtt/lib/memory_mosq.h b/external/mosquitto/memory_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/memory_mosq.h rename to external/mosquitto/memory_mosq.h diff --git a/apps/netutils/mqtt/lib/messages_mosq.c b/external/mosquitto/messages_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/messages_mosq.c rename to external/mosquitto/messages_mosq.c diff --git a/apps/netutils/mqtt/lib/messages_mosq.h b/external/mosquitto/messages_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/messages_mosq.h rename to external/mosquitto/messages_mosq.h diff --git a/apps/netutils/mqtt/lib/mosquitto.c b/external/mosquitto/mosquitto.c similarity index 100% rename from apps/netutils/mqtt/lib/mosquitto.c rename to external/mosquitto/mosquitto.c diff --git a/apps/netutils/mqtt/lib/mosquitto.h b/external/mosquitto/mosquitto.h similarity index 100% rename from apps/netutils/mqtt/lib/mosquitto.h rename to external/mosquitto/mosquitto.h diff --git a/apps/netutils/mqtt/lib/mosquitto_internal.h b/external/mosquitto/mosquitto_internal.h similarity index 100% rename from apps/netutils/mqtt/lib/mosquitto_internal.h rename to external/mosquitto/mosquitto_internal.h diff --git a/apps/netutils/mqtt/lib/mqtt3_protocol.h b/external/mosquitto/mqtt3_protocol.h similarity index 100% rename from apps/netutils/mqtt/lib/mqtt3_protocol.h rename to external/mosquitto/mqtt3_protocol.h diff --git a/apps/netutils/mqtt/lib/net_mosq.c b/external/mosquitto/net_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/net_mosq.c rename to external/mosquitto/net_mosq.c diff --git a/apps/netutils/mqtt/lib/net_mosq.h b/external/mosquitto/net_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/net_mosq.h rename to external/mosquitto/net_mosq.h diff --git a/apps/netutils/mqtt/lib/read_handle.c b/external/mosquitto/read_handle.c similarity index 100% rename from apps/netutils/mqtt/lib/read_handle.c rename to external/mosquitto/read_handle.c diff --git a/apps/netutils/mqtt/lib/read_handle.h b/external/mosquitto/read_handle.h similarity index 100% rename from apps/netutils/mqtt/lib/read_handle.h rename to external/mosquitto/read_handle.h diff --git a/apps/netutils/mqtt/lib/read_handle_client.c b/external/mosquitto/read_handle_client.c similarity index 100% rename from apps/netutils/mqtt/lib/read_handle_client.c rename to external/mosquitto/read_handle_client.c diff --git a/apps/netutils/mqtt/lib/read_handle_shared.c b/external/mosquitto/read_handle_shared.c similarity index 100% rename from apps/netutils/mqtt/lib/read_handle_shared.c rename to external/mosquitto/read_handle_shared.c diff --git a/apps/netutils/mqtt/lib/send_client_mosq.c b/external/mosquitto/send_client_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/send_client_mosq.c rename to external/mosquitto/send_client_mosq.c diff --git a/apps/netutils/mqtt/lib/send_mosq.c b/external/mosquitto/send_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/send_mosq.c rename to external/mosquitto/send_mosq.c diff --git a/apps/netutils/mqtt/lib/send_mosq.h b/external/mosquitto/send_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/send_mosq.h rename to external/mosquitto/send_mosq.h diff --git a/apps/netutils/mqtt/lib/socks_mosq.c b/external/mosquitto/socks_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/socks_mosq.c rename to external/mosquitto/socks_mosq.c diff --git a/apps/netutils/mqtt/lib/socks_mosq.h b/external/mosquitto/socks_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/socks_mosq.h rename to external/mosquitto/socks_mosq.h diff --git a/apps/netutils/mqtt/lib/srv_mosq.c b/external/mosquitto/srv_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/srv_mosq.c rename to external/mosquitto/srv_mosq.c diff --git a/apps/netutils/mqtt/lib/thread_mosq.c b/external/mosquitto/thread_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/thread_mosq.c rename to external/mosquitto/thread_mosq.c diff --git a/apps/netutils/mqtt/lib/time_mosq.c b/external/mosquitto/time_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/time_mosq.c rename to external/mosquitto/time_mosq.c diff --git a/apps/netutils/mqtt/lib/time_mosq.h b/external/mosquitto/time_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/time_mosq.h rename to external/mosquitto/time_mosq.h diff --git a/apps/netutils/mqtt/lib/tls_mosq.c b/external/mosquitto/tls_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/tls_mosq.c rename to external/mosquitto/tls_mosq.c diff --git a/apps/netutils/mqtt/lib/tls_mosq.h b/external/mosquitto/tls_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/tls_mosq.h rename to external/mosquitto/tls_mosq.h diff --git a/apps/netutils/mqtt/lib/util_mosq.c b/external/mosquitto/util_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/util_mosq.c rename to external/mosquitto/util_mosq.c diff --git a/apps/netutils/mqtt/lib/util_mosq.h b/external/mosquitto/util_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/util_mosq.h rename to external/mosquitto/util_mosq.h diff --git a/apps/netutils/mqtt/lib/will_mosq.c b/external/mosquitto/will_mosq.c similarity index 100% rename from apps/netutils/mqtt/lib/will_mosq.c rename to external/mosquitto/will_mosq.c diff --git a/apps/netutils/mqtt/lib/will_mosq.h b/external/mosquitto/will_mosq.h similarity index 100% rename from apps/netutils/mqtt/lib/will_mosq.h rename to external/mosquitto/will_mosq.h diff --git a/apps/netutils/smtp/.gitignore b/external/netlib/.gitignore similarity index 100% rename from apps/netutils/smtp/.gitignore rename to external/netlib/.gitignore diff --git a/apps/netutils/netlib/Kconfig b/external/netlib/Kconfig.protocl similarity index 100% rename from apps/netutils/netlib/Kconfig rename to external/netlib/Kconfig.protocl diff --git a/apps/netutils/netlib/Make.defs b/external/netlib/Make.defs similarity index 72% rename from apps/netutils/netlib/Make.defs rename to external/netlib/Make.defs index 8cff814..7184c4a 100644 --- a/apps/netutils/netlib/Make.defs +++ b/external/netlib/Make.defs @@ -51,6 +51,50 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_NETLIB),y) -CONFIGURED_APPS += netutils/netlib + +CSRCS += netlib/netlib.c +CSRCS += netlib/netlib_parsehttpurl.c +CSRCS += netlib/netlib_setifstatus.c \ + netlib/netlib_getifstatus.c + + +ifeq ($(CONFIG_NET_IPv4),y) +CSRCS += netlib/netlib_setipv4addr.c \ + netlib/netlib_getipv4addr.c \ + netlib/netlib_getdripv4addr.c \ + netlib/netlib_setdripv4addr.c \ + netlib/netlib_setipv4netmask.c +endif + +ifeq ($(CONFIG_NET_IPv6),y) +CSRCS += netlib/netlib_setipv6addr.c \ + netlib/netlib_getipv6addr.c \ + netlib/netlib_getdripv6addr.c \ + netlib/netlib_setdripv6addr.c \ + netlib/netlib_setipv6netmask.c \ + netlib/netlib_prefix2ipv6netmask.c \ + netlib/netlib_ipv6netmask2prefix.c +endif + + +# No MAC address support for SLIP (Ethernet only) + +ifeq ($(CONFIG_NET_ETHERNET),y) +CSRCS += netlib/netlib_setmacaddr.c \ + netlib/netlib_getmacaddr.c +endif + +# IGMP support + +ifeq ($(CONFIG_NET_IGMP),y) +ifeq ($(CONFIG_NET_IPv4),y) # Not yet available for IPv6 +CSRCS += netlib/netlib_ipmsfilter.c +endif +endif + +DEPPATH += --dep-path netlib +VPATH += :netlib + + endif diff --git a/apps/netutils/netlib/Makefile b/external/netlib/Makefile similarity index 100% rename from apps/netutils/netlib/Makefile rename to external/netlib/Makefile diff --git a/apps/netutils/netlib/netlib.c b/external/netlib/netlib.c similarity index 99% rename from apps/netutils/netlib/netlib.c rename to external/netlib/netlib.c index 4e0a340..16d7a0f 100644 --- a/apps/netutils/netlib/netlib.c +++ b/external/netlib/netlib.c @@ -65,7 +65,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_getdripv4addr.c b/external/netlib/netlib_getdripv4addr.c similarity index 99% rename from apps/netutils/netlib/netlib_getdripv4addr.c rename to external/netlib/netlib_getdripv4addr.c index 1c2676a..0314c33 100644 --- a/apps/netutils/netlib/netlib_getdripv4addr.c +++ b/external/netlib/netlib_getdripv4addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_getdripv6addr.c b/external/netlib/netlib_getdripv6addr.c similarity index 99% rename from apps/netutils/netlib/netlib_getdripv6addr.c rename to external/netlib/netlib_getdripv6addr.c index ddfc8bf..4d9963d 100644 --- a/apps/netutils/netlib/netlib_getdripv6addr.c +++ b/external/netlib/netlib_getdripv6addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_getifstatus.c b/external/netlib/netlib_getifstatus.c similarity index 99% rename from apps/netutils/netlib/netlib_getifstatus.c rename to external/netlib/netlib_getifstatus.c index c54e365..dca16dc 100644 --- a/apps/netutils/netlib/netlib_getifstatus.c +++ b/external/netlib/netlib_getifstatus.c @@ -69,7 +69,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/netlib/netlib_getipv4addr.c b/external/netlib/netlib_getipv4addr.c similarity index 99% rename from apps/netutils/netlib/netlib_getipv4addr.c rename to external/netlib/netlib_getipv4addr.c index 329b149..0622fe8 100644 --- a/apps/netutils/netlib/netlib_getipv4addr.c +++ b/external/netlib/netlib_getipv4addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/netlib/netlib_getipv6addr.c b/external/netlib/netlib_getipv6addr.c similarity index 99% rename from apps/netutils/netlib/netlib_getipv6addr.c rename to external/netlib/netlib_getipv6addr.c index e405a27..6626d54 100644 --- a/apps/netutils/netlib/netlib_getipv6addr.c +++ b/external/netlib/netlib_getipv6addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/netlib/netlib_getmacaddr.c b/external/netlib/netlib_getmacaddr.c similarity index 99% rename from apps/netutils/netlib/netlib_getmacaddr.c rename to external/netlib/netlib_getmacaddr.c index c7b8eca..312acf9 100644 --- a/apps/netutils/netlib/netlib_getmacaddr.c +++ b/external/netlib/netlib_getmacaddr.c @@ -68,7 +68,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/netlib/netlib_ipmsfilter.c b/external/netlib/netlib_ipmsfilter.c similarity index 98% rename from apps/netutils/netlib/netlib_ipmsfilter.c rename to external/netlib/netlib_ipmsfilter.c index 54ec22d..bd866d1 100644 --- a/apps/netutils/netlib/netlib_ipmsfilter.c +++ b/external/netlib/netlib_ipmsfilter.c @@ -68,8 +68,8 @@ #include #include -#include -#include +#include +#include #ifdef CONFIG_NET_IGMP diff --git a/apps/netutils/netlib/netlib_ipv6netmask2prefix.c b/external/netlib/netlib_ipv6netmask2prefix.c similarity index 99% rename from apps/netutils/netlib/netlib_ipv6netmask2prefix.c rename to external/netlib/netlib_ipv6netmask2prefix.c index be2c1e7..ef2d2e3 100644 --- a/apps/netutils/netlib/netlib_ipv6netmask2prefix.c +++ b/external/netlib/netlib_ipv6netmask2prefix.c @@ -59,7 +59,7 @@ #include #include -#include +#include #ifdef CONFIG_NET_IPv6 diff --git a/apps/netutils/netlib/netlib_listenon.c b/external/netlib/netlib_listenon.c similarity index 99% rename from apps/netutils/netlib/netlib_listenon.c rename to external/netlib/netlib_listenon.c index e622c06..ef7e549 100644 --- a/apps/netutils/netlib/netlib_listenon.c +++ b/external/netlib/netlib_listenon.c @@ -68,7 +68,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_parsehttpurl.c b/external/netlib/netlib_parsehttpurl.c similarity index 99% rename from apps/netutils/netlib/netlib_parsehttpurl.c rename to external/netlib/netlib_parsehttpurl.c index a8bb078..6b74a47 100644 --- a/apps/netutils/netlib/netlib_parsehttpurl.c +++ b/external/netlib/netlib_parsehttpurl.c @@ -60,7 +60,7 @@ #include #include -#include +#include /**************************************************************************** * Private Data diff --git a/apps/netutils/netlib/netlib_prefix2ipv6netmask.c b/external/netlib/netlib_prefix2ipv6netmask.c similarity index 99% rename from apps/netutils/netlib/netlib_prefix2ipv6netmask.c rename to external/netlib/netlib_prefix2ipv6netmask.c index b890a43..e7c352b 100644 --- a/apps/netutils/netlib/netlib_prefix2ipv6netmask.c +++ b/external/netlib/netlib_prefix2ipv6netmask.c @@ -59,7 +59,7 @@ #include #include -#include +#include #ifdef CONFIG_NET_IPv6 diff --git a/apps/netutils/netlib/netlib_server.c b/external/netlib/netlib_server.c similarity index 99% rename from apps/netutils/netlib/netlib_server.c rename to external/netlib/netlib_server.c index 48d81c0..4cdd134 100644 --- a/apps/netutils/netlib/netlib_server.c +++ b/external/netlib/netlib_server.c @@ -68,7 +68,7 @@ #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setdripv4addr.c b/external/netlib/netlib_setdripv4addr.c similarity index 99% rename from apps/netutils/netlib/netlib_setdripv4addr.c rename to external/netlib/netlib_setdripv4addr.c index 5472a31..3088371 100644 --- a/apps/netutils/netlib/netlib_setdripv4addr.c +++ b/external/netlib/netlib_setdripv4addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setdripv6addr.c b/external/netlib/netlib_setdripv6addr.c similarity index 99% rename from apps/netutils/netlib/netlib_setdripv6addr.c rename to external/netlib/netlib_setdripv6addr.c index 89e77f6..7ef29d0 100644 --- a/apps/netutils/netlib/netlib_setdripv6addr.c +++ b/external/netlib/netlib_setdripv6addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setifstatus.c b/external/netlib/netlib_setifstatus.c similarity index 99% rename from apps/netutils/netlib/netlib_setifstatus.c rename to external/netlib/netlib_setifstatus.c index f8d67e6..979c083 100644 --- a/apps/netutils/netlib/netlib_setifstatus.c +++ b/external/netlib/netlib_setifstatus.c @@ -68,7 +68,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/netlib/netlib_setipv4addr.c b/external/netlib/netlib_setipv4addr.c similarity index 99% rename from apps/netutils/netlib/netlib_setipv4addr.c rename to external/netlib/netlib_setipv4addr.c index 4c63380..d58f986 100644 --- a/apps/netutils/netlib/netlib_setipv4addr.c +++ b/external/netlib/netlib_setipv4addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setipv4netmask.c b/external/netlib/netlib_setipv4netmask.c similarity index 99% rename from apps/netutils/netlib/netlib_setipv4netmask.c rename to external/netlib/netlib_setipv4netmask.c index ab123d8..900392b 100644 --- a/apps/netutils/netlib/netlib_setipv4netmask.c +++ b/external/netlib/netlib_setipv4netmask.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setipv6addr.c b/external/netlib/netlib_setipv6addr.c similarity index 99% rename from apps/netutils/netlib/netlib_setipv6addr.c rename to external/netlib/netlib_setipv6addr.c index 22de6d8..b668c09 100644 --- a/apps/netutils/netlib/netlib_setipv6addr.c +++ b/external/netlib/netlib_setipv6addr.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setipv6netmask.c b/external/netlib/netlib_setipv6netmask.c similarity index 99% rename from apps/netutils/netlib/netlib_setipv6netmask.c rename to external/netlib/netlib_setipv6netmask.c index d183f32..075e0a3 100644 --- a/apps/netutils/netlib/netlib_setipv6netmask.c +++ b/external/netlib/netlib_setipv6netmask.c @@ -67,7 +67,7 @@ #include #include -#include +#include /**************************************************************************** * Public Functions diff --git a/apps/netutils/netlib/netlib_setmacaddr.c b/external/netlib/netlib_setmacaddr.c similarity index 99% rename from apps/netutils/netlib/netlib_setmacaddr.c rename to external/netlib/netlib_setmacaddr.c index 20c3204..665535d 100644 --- a/apps/netutils/netlib/netlib_setmacaddr.c +++ b/external/netlib/netlib_setmacaddr.c @@ -70,7 +70,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/ntpclient/.gitignore b/external/ntpclient/.gitignore similarity index 100% rename from apps/netutils/ntpclient/.gitignore rename to external/ntpclient/.gitignore diff --git a/apps/netutils/ntpclient/Kconfig b/external/ntpclient/Kconfig.protocol similarity index 100% rename from apps/netutils/ntpclient/Kconfig rename to external/ntpclient/Kconfig.protocol diff --git a/apps/netutils/ntpclient/Make.defs b/external/ntpclient/Make.defs similarity index 96% rename from apps/netutils/ntpclient/Make.defs rename to external/ntpclient/Make.defs index 4119e0f..f8921de 100644 --- a/apps/netutils/ntpclient/Make.defs +++ b/external/ntpclient/Make.defs @@ -51,6 +51,11 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_NTPCLIENT),y) -CONFIGURED_APPS += netutils/ntpclient + +CSRCS += ntpclient/ntpclient.c + +DEPPATH += --dep-path ntpclient +VPATH += :ntpclient + endif diff --git a/apps/netutils/ntpclient/Makefile b/external/ntpclient/Makefile similarity index 100% rename from apps/netutils/ntpclient/Makefile rename to external/ntpclient/Makefile diff --git a/apps/netutils/ntpclient/ntpclient.c b/external/ntpclient/ntpclient.c similarity index 99% rename from apps/netutils/ntpclient/ntpclient.c rename to external/ntpclient/ntpclient.c index 931d5ee..eee7957 100644 --- a/apps/netutils/ntpclient/ntpclient.c +++ b/external/ntpclient/ntpclient.c @@ -72,7 +72,7 @@ #include #include #include -#include +#include #include #include "ntpv3.h" diff --git a/apps/netutils/ntpclient/ntpv3.h b/external/ntpclient/ntpv3.h similarity index 100% rename from apps/netutils/ntpclient/ntpv3.h rename to external/ntpclient/ntpv3.h diff --git a/apps/netutils/netlib/.gitignore b/external/smtp/.gitignore similarity index 100% rename from apps/netutils/netlib/.gitignore rename to external/smtp/.gitignore diff --git a/apps/netutils/smtp/Kconfig b/external/smtp/Kconfig.protocol similarity index 100% rename from apps/netutils/smtp/Kconfig rename to external/smtp/Kconfig.protocol diff --git a/apps/netutils/smtp/Make.defs b/external/smtp/Make.defs similarity index 97% rename from apps/netutils/smtp/Make.defs rename to external/smtp/Make.defs index a5b3359..646d88d 100644 --- a/apps/netutils/smtp/Make.defs +++ b/external/smtp/Make.defs @@ -51,6 +51,11 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_SMTP),y) -CONFIGURED_APPS += netutils/smtp + +CSRCS += smtp/smtp.c + +DEPPATH += --dep-path smtp +VPATH += :smtp + endif diff --git a/apps/netutils/smtp/Makefile b/external/smtp/Makefile similarity index 100% rename from apps/netutils/smtp/Makefile rename to external/smtp/Makefile diff --git a/apps/netutils/smtp/smtp.c b/external/smtp/smtp.c similarity index 99% rename from apps/netutils/smtp/smtp.c rename to external/smtp/smtp.c index de8e697..17aba18 100644 --- a/apps/netutils/smtp/smtp.c +++ b/external/smtp/smtp.c @@ -77,7 +77,7 @@ #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/apps/netutils/ftpd/.gitignore b/external/telnetd/.gitignore similarity index 100% rename from apps/netutils/ftpd/.gitignore rename to external/telnetd/.gitignore diff --git a/apps/netutils/telnetd/Kconfig b/external/telnetd/Kconfig.protocol similarity index 100% rename from apps/netutils/telnetd/Kconfig rename to external/telnetd/Kconfig.protocol diff --git a/apps/netutils/telnetd/Make.defs b/external/telnetd/Make.defs similarity index 96% rename from apps/netutils/telnetd/Make.defs rename to external/telnetd/Make.defs index 043f25f..bee0365 100644 --- a/apps/netutils/telnetd/Make.defs +++ b/external/telnetd/Make.defs @@ -52,5 +52,11 @@ ifeq ($(CONFIG_NETUTILS_TELNETD),y) CONFIGURED_APPS += netutils/telnetd + +CSRCS += telnetd/telnetd_daemon.c + +DEPPATH += --dep-path telnetd +VPATH += :telnetd + endif diff --git a/apps/netutils/telnetd/Makefile b/external/telnetd/Makefile similarity index 100% rename from apps/netutils/telnetd/Makefile rename to external/telnetd/Makefile diff --git a/apps/netutils/telnetd/README.txt b/external/telnetd/README.txt similarity index 100% rename from apps/netutils/telnetd/README.txt rename to external/telnetd/README.txt diff --git a/apps/netutils/telnetd/telnetd_daemon.c b/external/telnetd/telnetd_daemon.c similarity index 99% rename from apps/netutils/telnetd/telnetd_daemon.c rename to external/telnetd/telnetd_daemon.c index f45df7f..0e19709 100644 --- a/apps/netutils/telnetd/telnetd_daemon.c +++ b/external/telnetd/telnetd_daemon.c @@ -76,8 +76,8 @@ #include -#include -#include +#include +#include /**************************************************************************** * Private Types diff --git a/apps/netutils/ftpc/.gitignore b/external/tftpc/.gitignore similarity index 100% rename from apps/netutils/ftpc/.gitignore rename to external/tftpc/.gitignore diff --git a/apps/netutils/tftpc/Kconfig b/external/tftpc/Kconfig.protocol similarity index 100% rename from apps/netutils/tftpc/Kconfig rename to external/tftpc/Kconfig.protocol diff --git a/apps/netutils/tftpc/Make.defs b/external/tftpc/Make.defs similarity index 95% rename from apps/netutils/tftpc/Make.defs rename to external/tftpc/Make.defs index 6c82737..5619ca8 100644 --- a/apps/netutils/tftpc/Make.defs +++ b/external/tftpc/Make.defs @@ -51,6 +51,11 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_TFTPC),y) -CONFIGURED_APPS += netutils/tftpc + +CSRCS += tftpc/tftpc_get.c tftpc/tftpc_put.c tftpc/tftpc_packets.c + +DEPPATH += --dep-path tftpc +VPATH += :tftpc + endif diff --git a/apps/netutils/tftpc/Makefile b/external/tftpc/Makefile similarity index 100% rename from apps/netutils/tftpc/Makefile rename to external/tftpc/Makefile diff --git a/apps/netutils/tftpc/tftpc_get.c b/external/tftpc/tftpc_get.c similarity index 99% rename from apps/netutils/tftpc/tftpc_get.c rename to external/tftpc/tftpc_get.c index a76cfd8..18b3370 100644 --- a/apps/netutils/tftpc/tftpc_get.c +++ b/external/tftpc/tftpc_get.c @@ -68,7 +68,7 @@ #include -#include +#include #include "tftpc_internal.h" diff --git a/apps/netutils/tftpc/tftpc_internal.h b/external/tftpc/tftpc_internal.h similarity index 100% rename from apps/netutils/tftpc/tftpc_internal.h rename to external/tftpc/tftpc_internal.h diff --git a/apps/netutils/tftpc/tftpc_packets.c b/external/tftpc/tftpc_packets.c similarity index 99% rename from apps/netutils/tftpc/tftpc_packets.c rename to external/tftpc/tftpc_packets.c index a03e225..c052748 100644 --- a/apps/netutils/tftpc/tftpc_packets.c +++ b/external/tftpc/tftpc_packets.c @@ -69,7 +69,7 @@ #include #include -#include +#include #include "tftpc_internal.h" diff --git a/apps/netutils/tftpc/tftpc_put.c b/external/tftpc/tftpc_put.c similarity index 99% rename from apps/netutils/tftpc/tftpc_put.c rename to external/tftpc/tftpc_put.c index 6afb029..c3a675d 100644 --- a/apps/netutils/tftpc/tftpc_put.c +++ b/external/tftpc/tftpc_put.c @@ -66,7 +66,7 @@ #include #include -#include +#include #include "tftpc_internal.h" diff --git a/apps/netutils/dhcpc/.gitignore b/external/webclient/.gitignore similarity index 100% rename from apps/netutils/dhcpc/.gitignore rename to external/webclient/.gitignore diff --git a/apps/netutils/webclient/Kconfig b/external/webclient/Kconfig.protocol similarity index 100% rename from apps/netutils/webclient/Kconfig rename to external/webclient/Kconfig.protocol diff --git a/apps/netutils/webclient/Make.defs b/external/webclient/Make.defs similarity index 95% rename from apps/netutils/webclient/Make.defs rename to external/webclient/Make.defs index 1fa5ab9..39880f9 100644 --- a/apps/netutils/webclient/Make.defs +++ b/external/webclient/Make.defs @@ -51,6 +51,13 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_WEBCLIENT),y) -CONFIGURED_APPS += netutils/webclient + +ifeq ($(CONFIG_NETUTILS_WEBCLIENT),y) +CSRCS += webclient/webclient.c +endif + +DEPPATH += --dep-path webclient +VPATH += :webclient + endif diff --git a/apps/netutils/webclient/Makefile b/external/webclient/Makefile similarity index 100% rename from apps/netutils/webclient/Makefile rename to external/webclient/Makefile diff --git a/apps/netutils/webclient/webclient.c b/external/webclient/webclient.c similarity index 99% rename from apps/netutils/webclient/webclient.c rename to external/webclient/webclient.c index 0cf8cef..45b2d20 100644 --- a/apps/netutils/webclient/webclient.c +++ b/external/webclient/webclient.c @@ -85,18 +85,18 @@ #include #include -#include +#include #include "../webserver/http_string_util.h" #include "../webserver/http_client.h" -#include +#include #if defined(CONFIG_NETUTILS_CODECS) # if defined(CONFIG_CODECS_URLCODE) # define WGET_USE_URLENCODE 1 -# include +# include # endif # if defined(CONFIG_CODECS_BASE64) -# include +# include # endif #else # undef CONFIG_CODECS_URLCODE diff --git a/apps/netutils/webserver/Kconfig b/external/webserver/Kconfig.protocol similarity index 100% rename from apps/netutils/webserver/Kconfig rename to external/webserver/Kconfig.protocol diff --git a/apps/netutils/webserver/Make.defs b/external/webserver/Make.defs similarity index 85% rename from apps/netutils/webserver/Make.defs rename to external/webserver/Make.defs index b9cbaf4..6ce4e51 100644 --- a/apps/netutils/webserver/Make.defs +++ b/external/webserver/Make.defs @@ -52,5 +52,22 @@ ifeq ($(CONFIG_NETUTILS_WEBSERVER),y) CONFIGURED_APPS += netutils/webserver + +ifeq ($(CONFIG_NETUTILS_WEBSERVER),y) +CSRCS += webserver/http.c +CSRCS += webserver/http_server.c +CSRCS += webserver/http_client.c +ifeq ($(CONFIG_NET_SECURITY_TLS),y) +CSRCS += webserver/http_client_tls.c +CSRCS += webserver/http_server_tls.c +endif +CSRCS += webserver/http_string_util.c +CSRCS += webserver/http_keyvalue_list.c +CSRCS += webserver/http_query.c +endif + +DEPPATH += --dep-path webserver +VPATH += :webserver + endif diff --git a/apps/netutils/webserver/Makefile b/external/webserver/Makefile similarity index 100% rename from apps/netutils/webserver/Makefile rename to external/webserver/Makefile diff --git a/apps/netutils/webserver/http.c b/external/webserver/http.c similarity index 98% rename from apps/netutils/webserver/http.c rename to external/webserver/http.c index 1124175..0311a49 100644 --- a/apps/netutils/webserver/http.c +++ b/external/webserver/http.c @@ -16,9 +16,9 @@ * ****************************************************************************/ -#include -#include -#include +#include +#include +#include #include #include "http.h" diff --git a/apps/netutils/webserver/http.h b/external/webserver/http.h similarity index 100% rename from apps/netutils/webserver/http.h rename to external/webserver/http.h diff --git a/apps/netutils/webserver/http_arch.h b/external/webserver/http_arch.h similarity index 100% rename from apps/netutils/webserver/http_arch.h rename to external/webserver/http_arch.h diff --git a/apps/netutils/webserver/http_client.c b/external/webserver/http_client.c similarity index 99% rename from apps/netutils/webserver/http_client.c rename to external/webserver/http_client.c index d7e329f..482aba6 100644 --- a/apps/netutils/webserver/http_client.c +++ b/external/webserver/http_client.c @@ -17,10 +17,10 @@ ****************************************************************************/ #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/apps/netutils/webserver/http_client.h b/external/webserver/http_client.h similarity index 95% rename from apps/netutils/webserver/http_client.h rename to external/webserver/http_client.h index e415fa1..0456a1b 100644 --- a/apps/netutils/webserver/http_client.h +++ b/external/webserver/http_client.h @@ -19,9 +19,9 @@ #ifndef __http_client_h__ #define __http_client_h__ -#include -#include -#include +#include +#include +#include #ifdef CONFIG_NET_SECURITY_TLS #include "tls/config.h" diff --git a/apps/netutils/webserver/http_client_tls.c b/external/webserver/http_client_tls.c similarity index 97% rename from apps/netutils/webserver/http_client_tls.c rename to external/webserver/http_client_tls.c index 762e240..9c3f1d1 100644 --- a/apps/netutils/webserver/http_client_tls.c +++ b/external/webserver/http_client_tls.c @@ -16,7 +16,7 @@ * ****************************************************************************/ -#include +#include #include "http.h" #include "http_client.h" diff --git a/apps/netutils/webserver/http_keyvalue_list.c b/external/webserver/http_keyvalue_list.c similarity index 96% rename from apps/netutils/webserver/http_keyvalue_list.c rename to external/webserver/http_keyvalue_list.c index 564b4ba..a99e030 100644 --- a/apps/netutils/webserver/http_keyvalue_list.c +++ b/external/webserver/http_keyvalue_list.c @@ -20,8 +20,8 @@ #include #include -#include -#include +#include +#include #include "http.h" #include "http_arch.h" diff --git a/apps/netutils/webserver/http_log.h b/external/webserver/http_log.h similarity index 100% rename from apps/netutils/webserver/http_log.h rename to external/webserver/http_log.h diff --git a/apps/netutils/webserver/http_query.c b/external/webserver/http_query.c similarity index 98% rename from apps/netutils/webserver/http_query.c rename to external/webserver/http_query.c index abb651b..848a59f 100644 --- a/apps/netutils/webserver/http_query.c +++ b/external/webserver/http_query.c @@ -20,8 +20,8 @@ #include #include -#include -#include +#include +#include #include "http.h" #include "http_client.h" diff --git a/apps/netutils/webserver/http_query.h b/external/webserver/http_query.h similarity index 100% rename from apps/netutils/webserver/http_query.h rename to external/webserver/http_query.h diff --git a/apps/netutils/webserver/http_server.c b/external/webserver/http_server.c similarity index 96% rename from apps/netutils/webserver/http_server.c rename to external/webserver/http_server.c index 3419369..e4eed0b 100644 --- a/apps/netutils/webserver/http_server.c +++ b/external/webserver/http_server.c @@ -17,8 +17,8 @@ ****************************************************************************/ #include -#include -#include +#include +#include #include "http_client.h" #include "http_arch.h" diff --git a/apps/netutils/webserver/http_server_tls.c b/external/webserver/http_server_tls.c similarity index 98% rename from apps/netutils/webserver/http_server_tls.c rename to external/webserver/http_server_tls.c index 8cf238e..1fdae5f 100644 --- a/apps/netutils/webserver/http_server_tls.c +++ b/external/webserver/http_server_tls.c @@ -16,8 +16,8 @@ * ****************************************************************************/ -#include -#include +#include +#include #include "http_client.h" #include "http_arch.h" diff --git a/apps/netutils/webserver/http_string_util.c b/external/webserver/http_string_util.c similarity index 97% rename from apps/netutils/webserver/http_string_util.c rename to external/webserver/http_string_util.c index c5c98b3..44e76e4 100644 --- a/apps/netutils/webserver/http_string_util.c +++ b/external/webserver/http_string_util.c @@ -22,8 +22,8 @@ #include #include -#include -#include +#include +#include #include "http.h" #include "http_string_util.h" diff --git a/apps/netutils/webserver/http_string_util.h b/external/webserver/http_string_util.h similarity index 100% rename from apps/netutils/webserver/http_string_util.h rename to external/webserver/http_string_util.h diff --git a/apps/netutils/websocket/Kconfig b/external/websocket/Kconfig.protocol similarity index 100% rename from apps/netutils/websocket/Kconfig rename to external/websocket/Kconfig.protocol diff --git a/apps/netutils/websocket/Make.defs b/external/websocket/Make.defs similarity index 78% rename from apps/netutils/websocket/Make.defs rename to external/websocket/Make.defs index fbb59f0..c6c7aa8 100644 --- a/apps/netutils/websocket/Make.defs +++ b/external/websocket/Make.defs @@ -18,5 +18,15 @@ ifeq ($(CONFIG_NETUTILS_WEBSOCKET),y) CONFIGURED_APPS += netutils/websocket + +CSRCS += websocket/websocket.c +CSRCS += websocket/wslay/wslay_net.c \ + websocket/wslay/wslay_queue.c \ + websocket/wslay/wslay_frame.c \ + websocket/wslay/wslay_event.c + +DEPPATH += --dep-path websocket +VPATH += :websocket + endif diff --git a/apps/netutils/websocket/Makefile b/external/websocket/Makefile similarity index 100% rename from apps/netutils/websocket/Makefile rename to external/websocket/Makefile diff --git a/apps/netutils/websocket/websocket.c b/external/websocket/websocket.c similarity index 99% rename from apps/netutils/websocket/websocket.c rename to external/websocket/websocket.c index 8176f6c..3f97f54 100644 --- a/apps/netutils/websocket/websocket.c +++ b/external/websocket/websocket.c @@ -40,9 +40,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include /**************************************************************************** * Definitions diff --git a/apps/netutils/websocket/wslay/wslay_event.c b/external/websocket/wslay/wslay_event.c similarity index 99% rename from apps/netutils/websocket/wslay/wslay_event.c rename to external/websocket/wslay/wslay_event.c index afb94b0..a46e51f 100644 --- a/apps/netutils/websocket/wslay/wslay_event.c +++ b/external/websocket/wslay/wslay_event.c @@ -76,7 +76,7 @@ #include "wslay_frame.h" #include "wslay_net.h" -#include +#include #define UTF8_ACCEPT 0 #define UTF8_REJECT 12 diff --git a/apps/netutils/websocket/wslay/wslay_event.h b/external/websocket/wslay/wslay_event.h similarity index 99% rename from apps/netutils/websocket/wslay/wslay_event.h rename to external/websocket/wslay/wslay_event.h index 7f3fee6..b555c82 100644 --- a/apps/netutils/websocket/wslay/wslay_event.h +++ b/external/websocket/wslay/wslay_event.h @@ -43,7 +43,7 @@ #define WSLAY_EVENT_H #include -#include +#include struct wslay_stack; struct wslay_queue; diff --git a/apps/netutils/websocket/wslay/wslay_frame.c b/external/websocket/wslay/wslay_frame.c similarity index 100% rename from apps/netutils/websocket/wslay/wslay_frame.c rename to external/websocket/wslay/wslay_frame.c diff --git a/apps/netutils/websocket/wslay/wslay_frame.h b/external/websocket/wslay/wslay_frame.h similarity index 98% rename from apps/netutils/websocket/wslay/wslay_frame.h rename to external/websocket/wslay/wslay_frame.h index 149dd85..6d45a55 100644 --- a/apps/netutils/websocket/wslay/wslay_frame.h +++ b/external/websocket/wslay/wslay_frame.h @@ -43,7 +43,7 @@ #define WSLAY_FRAME_H #include -#include +#include enum wslay_frame_state { PREP_HEADER, diff --git a/apps/netutils/websocket/wslay/wslay_net.c b/external/websocket/wslay/wslay_net.c similarity index 100% rename from apps/netutils/websocket/wslay/wslay_net.c rename to external/websocket/wslay/wslay_net.c diff --git a/apps/netutils/websocket/wslay/wslay_net.h b/external/websocket/wslay/wslay_net.h similarity index 98% rename from apps/netutils/websocket/wslay/wslay_net.h rename to external/websocket/wslay/wslay_net.h index 21d1ae3..6ee5ad1 100644 --- a/apps/netutils/websocket/wslay/wslay_net.h +++ b/external/websocket/wslay/wslay_net.h @@ -45,7 +45,7 @@ #include #include #include -#include +#include #ifdef WORDS_BIGENDIAN #define ntoh64(x) (x) diff --git a/apps/netutils/websocket/wslay/wslay_queue.c b/external/websocket/wslay/wslay_queue.c similarity index 100% rename from apps/netutils/websocket/wslay/wslay_queue.c rename to external/websocket/wslay/wslay_queue.c diff --git a/apps/netutils/websocket/wslay/wslay_queue.h b/external/websocket/wslay/wslay_queue.h similarity index 98% rename from apps/netutils/websocket/wslay/wslay_queue.h rename to external/websocket/wslay/wslay_queue.h index c932cda..f6961c2 100644 --- a/apps/netutils/websocket/wslay/wslay_queue.h +++ b/external/websocket/wslay/wslay_queue.h @@ -43,7 +43,7 @@ #define WSLAY_QUEUE_H #include -#include +#include struct wslay_queue_cell { void *data; diff --git a/apps/netutils/websocket/wslay/wslay_stack.c b/external/websocket/wslay/wslay_stack.c similarity index 100% rename from apps/netutils/websocket/wslay/wslay_stack.c rename to external/websocket/wslay/wslay_stack.c diff --git a/apps/netutils/websocket/wslay/wslay_stack.h b/external/websocket/wslay/wslay_stack.h similarity index 98% rename from apps/netutils/websocket/wslay/wslay_stack.h rename to external/websocket/wslay/wslay_stack.h index 89731c3..87ab441 100644 --- a/apps/netutils/websocket/wslay/wslay_stack.h +++ b/external/websocket/wslay/wslay_stack.h @@ -43,7 +43,7 @@ #define WSLAY_STACK_H #include "tinyara/config.h" -#include +#include struct wslay_stack_cell { void *data; diff --git a/external/xmlrpc/.gitignore b/external/xmlrpc/.gitignore new file mode 100644 index 0000000..f21c854 --- /dev/null +++ b/external/xmlrpc/.gitignore @@ -0,0 +1,6 @@ +/.built +/.depend +/Make.dep +/*.src +/*.obj +/*.lst diff --git a/apps/netutils/xmlrpc/Kconfig b/external/xmlrpc/Kconfig.protocol similarity index 100% rename from apps/netutils/xmlrpc/Kconfig rename to external/xmlrpc/Kconfig.protocol diff --git a/apps/netutils/xmlrpc/Make.defs b/external/xmlrpc/Make.defs similarity index 96% rename from apps/netutils/xmlrpc/Make.defs rename to external/xmlrpc/Make.defs index 7132b5f..c110fd0 100644 --- a/apps/netutils/xmlrpc/Make.defs +++ b/external/xmlrpc/Make.defs @@ -52,6 +52,12 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_XMLRPC),y) -CONFIGURED_APPS += netutils/xmlrpc + +CSRCS += xmlrpc/xmlparser.c \ + xmlrpc/response.c + +DEPPATH += --dep-path xmlrpc +VPATH += :xmlrpc + endif diff --git a/apps/netutils/xmlrpc/Makefile b/external/xmlrpc/Makefile similarity index 100% rename from apps/netutils/xmlrpc/Makefile rename to external/xmlrpc/Makefile diff --git a/apps/netutils/xmlrpc/response.c b/external/xmlrpc/response.c similarity index 99% rename from apps/netutils/xmlrpc/response.c rename to external/xmlrpc/response.c index 664e6ac..94d283a 100644 --- a/apps/netutils/xmlrpc/response.c +++ b/external/xmlrpc/response.c @@ -72,7 +72,7 @@ #include #include #include -#include +#include /**************************************************************************** * Private Functions diff --git a/apps/netutils/xmlrpc/xmlparser.c b/external/xmlrpc/xmlparser.c similarity index 99% rename from apps/netutils/xmlrpc/xmlparser.c rename to external/xmlrpc/xmlparser.c index 89ab002..c7443d3 100644 --- a/apps/netutils/xmlrpc/xmlparser.c +++ b/external/xmlrpc/xmlparser.c @@ -73,7 +73,7 @@ #include #include #include -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/framework/Makefile b/framework/Makefile index 5cc210c..47f11cc 100644 --- a/framework/Makefile +++ b/framework/Makefile @@ -38,6 +38,10 @@ ifeq ($(CONFIG_ARASTORAGE), y) include src$(DELIM)arastorage$(DELIM)Make.defs endif +ifeq ($(CONFIG_NETUTILS_MQTT), y) +include src$(DELIM)mqtt$(DELIM)Make.defs +endif + AOBJS = $(ASRCS:.S=$(OBJEXT)) COBJS = $(CSRCS:.c=$(OBJEXT)) diff --git a/apps/include/netutils/mqtt_api.h b/framework/include/mqtt/mqtt_api.h old mode 100644 new mode 100755 similarity index 100% rename from apps/include/netutils/mqtt_api.h rename to framework/include/mqtt/mqtt_api.h diff --git a/framework/src/dm/arch/sidk_s5jt200/s5j_dm_connectivity.c b/framework/src/dm/arch/sidk_s5jt200/s5j_dm_connectivity.c index 583d9f0..9f4084f 100644 --- a/framework/src/dm/arch/sidk_s5jt200/s5j_dm_connectivity.c +++ b/framework/src/dm/arch/sidk_s5jt200/s5j_dm_connectivity.c @@ -40,7 +40,7 @@ #include #include -#include +#include #include #include #include diff --git a/apps/netutils/mqtt/Kconfig b/framework/src/mqtt/Kconfig.protocol similarity index 100% rename from apps/netutils/mqtt/Kconfig rename to framework/src/mqtt/Kconfig.protocol diff --git a/apps/netutils/mqtt/Make.defs b/framework/src/mqtt/Make.defs similarity index 94% rename from apps/netutils/mqtt/Make.defs rename to framework/src/mqtt/Make.defs index d3c107d..5e1263a 100644 --- a/apps/netutils/mqtt/Make.defs +++ b/framework/src/mqtt/Make.defs @@ -51,6 +51,15 @@ ############################################################################ ifeq ($(CONFIG_NETUTILS_MQTT),y) -CONFIGURED_APPS += netutils/mqtt + +include ../external/mosquitto/config.mk + +CSRCS += mqtt_api.c + +CFLAGS += -I../external/mosquitto + +DEPPATH += --dep-path src/mqtt +VPATH += :src/mqtt + endif diff --git a/apps/netutils/mqtt/Makefile b/framework/src/mqtt/Makefile similarity index 100% rename from apps/netutils/mqtt/Makefile rename to framework/src/mqtt/Makefile diff --git a/framework/src/mqtt/config.h b/framework/src/mqtt/config.h new file mode 100644 index 0000000..2e1bf72 --- /dev/null +++ b/framework/src/mqtt/config.h @@ -0,0 +1,59 @@ +/**************************************************************************** + * + * Copyright 2016 Samsung Electronics All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + ****************************************************************************/ + +/* ============================================================ + * Control compile time options. + * ============================================================ + * + * Compile time options have moved to config.mk. + */ + +/* ============================================================ + * Compatibility defines + * + * Generally for Windows native support. + * ============================================================ */ + +#if defined(_MSC_VER) && _MSC_VER < 1900 +# define snprintf sprintf_s +#endif + +#ifdef WIN32 +# ifndef strcasecmp +# define strcasecmp strcmpi +# endif +#define strtok_r strtok_s +#define strerror_r(e, b, l) strerror_s(b, l, e) +#endif + +#define uthash_malloc(sz) _mosquitto_malloc(sz) +#define uthash_free(ptr,sz) _mosquitto_free(ptr) + +#ifndef EPROTO +# define EPROTO ECONNABORTED +#endif + +#ifdef WITH_MBEDTLS +#include "tls/ssl.h" +#include "tls/net.h" +#include "tls/x509_crt.h" +#include "tls/pk.h" +#include "tls/ctr_drbg.h" +#include "tls/ssl_cache.h" +#include "tls/entropy.h" +#endif diff --git a/apps/netutils/mqtt/config.mk b/framework/src/mqtt/config.mk similarity index 100% rename from apps/netutils/mqtt/config.mk rename to framework/src/mqtt/config.mk diff --git a/apps/netutils/mqtt/mqtt_api.c b/framework/src/mqtt/mqtt_api.c similarity index 99% rename from apps/netutils/mqtt/mqtt_api.c rename to framework/src/mqtt/mqtt_api.c index 3f0d2f1..de92404 100644 --- a/apps/netutils/mqtt/mqtt_api.c +++ b/framework/src/mqtt/mqtt_api.c @@ -34,7 +34,7 @@ #include "mosquitto_internal.h" #include "memory_mosq.h" -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/net/Kconfig b/os/net/Kconfig index 9ed8095..79511d6 100644 --- a/os/net/Kconfig +++ b/os/net/Kconfig @@ -111,7 +111,25 @@ source net/netdev/Kconfig source net/route/Kconfig menu "Protocols" -source ../external/dhcpd/Kconfig.protocol + +source "$EXTERNALDIR/dhcpd/Kconfig.protocol" +source "$EXTERNALDIR/xmlrpc/Kconfig.protocol" +source "$EXTERNALDIR/ntpclient/Kconfig.protocol" +source "$EXTERNALDIR/webserver/Kconfig.protocol" +source "$EXTERNALDIR/ftpc/Kconfig.protocol" +source "$EXTERNALDIR/mdns/Kconfig.protocol" +source "$EXTERNALDIR/webclient/Kconfig.protocol" +source "$EXTERNALDIR/ftpd/Kconfig.protocol" +source "$EXTERNALDIR/dhcpc/Kconfig.protocol" +source "$EXTERNALDIR/websocket/Kconfig.protocol" +source "$EXTERNALDIR/libcoap/Kconfig.protocol" +source "$EXTERNALDIR/tftpc/Kconfig.protocol" +source "$EXTERNALDIR/telnetd/Kconfig.protocol" +source "$EXTERNALDIR/smtp/Kconfig.protocol" +source "$EXTERNALDIR/netlib/Kconfig.protocl" + +source "../framework/src/mqtt/Kconfig.protocol" + endmenu #Protocols