summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-03-18 00:29:34 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-03-18 00:29:34 +0000
commitdbd7bf12514a726f3291419721424d761c4d94c9 (patch)
tree0251b0dd4c30ae7ce1d05a0792273a84a8b152d9
parentfc6e2b5bee69c3930e6281f1433212660caccc3a (diff)
downloadnuttx-dbd7bf12514a726f3291419721424d761c4d94c9.tar.gz
nuttx-dbd7bf12514a726f3291419721424d761c4d94c9.tar.bz2
nuttx-dbd7bf12514a726f3291419721424d761c4d94c9.zip
Fix examples/dhcpd build
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1623 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/configs/ez80f910200zco/dhcpd/defconfig11
-rw-r--r--nuttx/examples/dhcpd/Makefile2
-rw-r--r--nuttx/examples/dhcpd/Makefile.host5
-rw-r--r--nuttx/examples/dhcpd/host.c (renamed from nuttx/examples/dhcpd/daemon.c)2
-rw-r--r--nuttx/examples/dhcpd/target.c107
5 files changed, 120 insertions, 7 deletions
diff --git a/nuttx/configs/ez80f910200zco/dhcpd/defconfig b/nuttx/configs/ez80f910200zco/dhcpd/defconfig
index 52b7b18cc..ea3c5744b 100644
--- a/nuttx/configs/ez80f910200zco/dhcpd/defconfig
+++ b/nuttx/configs/ez80f910200zco/dhcpd/defconfig
@@ -403,12 +403,12 @@ CONFIG_NET_IPv6=n
CONFIG_NSOCKET_DESCRIPTORS=8
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_BUFSIZE=420
-CONFIG_NET_TCP=y
+CONFIG_NET_TCP=n
CONFIG_NET_TCP_CONNS=8
CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
CONFIG_NET_TCPBACKLOG=n
CONFIG_NET_MAX_LISTENPORTS=8
-CONFIG_NET_UDP=n
+CONFIG_NET_UDP=y
CONFIG_NET_UDP_CHECKSUMS=y
#CONFIG_NET_UDP_CONNS=10
CONFIG_NET_ICMP=y
@@ -712,6 +712,13 @@ CONFIG_EXAMPLES_NSH_MMCSDSLOTNO=0
CONFIG_EXAMPLES_NSH_MMCSDMINOR=0
#
+# Settings for examples/dhcpd
+CONFIG_EXAMPLE_DHCPD_NOMAC=y
+CONFIG_EXAMPLE_DHCPD_IPADDR=(10L<<24|0L<<16|0L<<8|1L)
+CONFIG_EXAMPLE_DHCPD_DRIPADDR=(10L<<24|0L<<16|0L<<8|1L)
+CONFIG_EXAMPLE_DHCPD_NETMASK=(255L<<24|255L<<16|255L<<8|0L)
+
+#
# Settings for examples/nx
#
# CONFIG_EXAMPLES_NX_VPLANE -- The plane to select from the frame-
diff --git a/nuttx/examples/dhcpd/Makefile b/nuttx/examples/dhcpd/Makefile
index e831488bc..aee288668 100644
--- a/nuttx/examples/dhcpd/Makefile
+++ b/nuttx/examples/dhcpd/Makefile
@@ -38,7 +38,7 @@
ASRCS =
AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = daemon.c
+CSRCS = target.c
COBJS = $(CSRCS:.c=$(OBJEXT))
SRCS = $(ASRCS) $(CSRCS)
diff --git a/nuttx/examples/dhcpd/Makefile.host b/nuttx/examples/dhcpd/Makefile.host
index df587fdc8..8e89a1594 100644
--- a/nuttx/examples/dhcpd/Makefile.host
+++ b/nuttx/examples/dhcpd/Makefile.host
@@ -1,7 +1,7 @@
############################################################################
# examples/dhcpd/Makefile.host
#
-# Copyright (C) 2007 Gregory Nutt. All rights reserved.
+# Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -37,7 +37,7 @@ WD = ${shell pwd}
TOPDIR = $(WD)/../..
include $(TOPDIR)/Make.defs
-OBJS = daemon.o1 dhcpd.o1
+OBJS = host.o1 dhcpd.o1
BIN = dhcpd
HOSTCFLAGS += -DCONFIG_NETUTILS_DHCPD_HOST=1
@@ -51,7 +51,6 @@ all: $(BIN)
.PHONY: clean context clean_context distclean
$(OBJS): %.o1: %.c
- echo $(VPATH)/dhcpd.c
$(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
$(BIN): $(OBJS)
diff --git a/nuttx/examples/dhcpd/daemon.c b/nuttx/examples/dhcpd/host.c
index b5dfbec1c..9e654819b 100644
--- a/nuttx/examples/dhcpd/daemon.c
+++ b/nuttx/examples/dhcpd/host.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * examples/dhcpd/dhcpd.c
+ * examples/dhcpd/host.c
*
* Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
diff --git a/nuttx/examples/dhcpd/target.c b/nuttx/examples/dhcpd/target.c
new file mode 100644
index 000000000..6977bf46a
--- /dev/null
+++ b/nuttx/examples/dhcpd/target.c
@@ -0,0 +1,107 @@
+/****************************************************************************
+ * examples/dhcpd/target.c
+ *
+ * Copyright (C) 2009 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * 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 Gregory Nutt 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
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <net/uip/uip-lib.h>
+#include <net/uip/dhcpd.h>
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+/****************************************************************************
+ * user_initialize
+ ****************************************************************************/
+
+#ifndef CONFIG_HAVE_WEAKFUNCTIONS
+void user_initialize(void)
+{
+ /* Stub that must be provided only if the toolchain does not support weak
+ * functions.
+ */
+}
+#endif
+
+/****************************************************************************
+ * user_start
+ ****************************************************************************/
+
+int user_start(int argc, char *argv[])
+{
+ struct in_addr addr;
+#if defined(CONFIG_EXAMPLE_DHCPD_NOMAC)
+ uint8 mac[IFHWADDRLEN];
+#endif
+
+/* Many embedded network interfaces must have a software assigned MAC */
+
+#ifdef CONFIG_EXAMPLE_DHCPD_NOMAC
+ mac[0] = 0x00;
+ mac[1] = 0xe0;
+ mac[2] = 0xb0;
+ mac[3] = 0x0b;
+ mac[4] = 0xba;
+ mac[5] = 0xbe;
+ uip_setmacaddr("eth0", mac);
+#endif
+
+ /* Set up our host address */
+
+ addr.s_addr = HTONL(CONFIG_EXAMPLE_DHCPD_IPADDR);
+ uip_sethostaddr("eth0", &addr);
+
+ /* Set up the default router address */
+
+ addr.s_addr = HTONL(CONFIG_EXAMPLE_DHCPD_DRIPADDR);
+ uip_setdraddr("eth0", &addr);
+
+ /* Setup the subnet mask */
+
+ addr.s_addr = HTONL(CONFIG_EXAMPLE_DHCPD_NETMASK);
+ uip_setnetmask("eth0", &addr);
+
+ /* Then start the server */
+
+ dhcpd_run();
+ return 0;
+}