git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1125 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
itspy.wei
2010-11-26 16:27:45 +00:00
parent a9424c09e1
commit f438f02b0f
322 changed files with 90657 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
uIP is a very small implementation of the TCP/IP stack that is written
by Adam Dunkels <adam@sics.se>. More information can be obtained
at the uIP homepage at http://www.sics.se/~adam/uip/.
This is version $Name: uip-1-0 $.
The directory structure look as follows:
apps/ - Example applications
doc/ - Documentation
lib/ - Library code used by some applications
uip/ - uIP TCP/IP stack code
unix/ - uIP as a user space process under FreeBSD or Linux
+2
View File
@@ -0,0 +1,2 @@
This directory contains a few example applications. They are not all
heavily tested, however.
@@ -0,0 +1 @@
APP_SOURCES += dhcpc.c timer.c
File diff suppressed because it is too large Load Diff
+68
View File
@@ -0,0 +1,68 @@
/*
* 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.
*
* This file is part of the uIP TCP/IP stack
*
* @(#)$Id: dhcpc.h,v 1.3 2006/06/11 21:46:37 adam Exp $
*/
#ifndef __DHCPC_H__
#define __DHCPC_H__
#include "timer.h"
#include "pt.h"
struct dhcpc_state {
struct pt pt;
char state;
struct uip_udp_conn *conn;
struct timer timer;
u16_t ticks;
const void *mac_addr;
int mac_len;
u8_t serverid[4];
u16_t lease_time[2];
u16_t ipaddr[2];
u16_t netmask[2];
u16_t dnsaddr[2];
u16_t default_router[2];
};
void dhcpc_init(const void *mac_addr, int mac_len);
void dhcpc_request(void);
void dhcpc_appcall(void);
void dhcpc_configured(const struct dhcpc_state *s);
typedef struct dhcpc_state uip_udp_appstate_t;
#define UIP_UDP_APPCALL dhcpc_appcall
#endif /* __DHCPC_H__ */
@@ -0,0 +1 @@
APP_SOURCES += hello-world.c
@@ -0,0 +1,115 @@
/**
* \addtogroup helloworld
* @{
*/
/**
* \file
* An example of how to write uIP applications
* with protosockets.
* \author
* Adam Dunkels <adam@sics.se>
*/
/*
* This is a short example of how to write uIP applications using
* protosockets.
*/
/*
* We define the application state (struct hello_world_state) in the
* hello-world.h file, so we need to include it here. We also include
* uip.h (since this cannot be included in hello-world.h) and
* <string.h>, since we use the memcpy() function in the code.
*/
#include "hello-world.h"
#include "uip.h"
#include <string.h>
/*
* Declaration of the protosocket function that handles the connection
* (defined at the end of the code).
*/
static int handle_connection(struct hello_world_state *s);
static int rt_show_info(struct hello_world_state *s);
/*---------------------------------------------------------------------------*/
/*
* The initialization function. We must explicitly call this function
* from the system initialization code, some time after uip_init() is
* called.
*/
void
hello_world_init(void)
{
/* We start to listen for connections on TCP port 1000. */
uip_listen(HTONS(1000));
}
/*---------------------------------------------------------------------------*/
/*
* In hello-world.h we have defined the UIP_APPCALL macro to
* hello_world_appcall so that this funcion is uIP's application
* function. This function is called whenever an uIP event occurs
* (e.g. when a new connection is established, new data arrives, sent
* data is acknowledged, data needs to be retransmitted, etc.).
*/
void
hello_world_appcall(void)
{
/*
* The uip_conn structure has a field called "appstate" that holds
* the application state of the connection. We make a pointer to
* this to access it easier.
*/
struct hello_world_state *s = &(uip_conn->appstate);
/*
* If a new connection was just established, we should initialize
* the protosocket in our applications' state structure.
*/
if(uip_connected()) {
PSOCK_INIT(&s->p, s->inputbuffer, sizeof(s->inputbuffer));
rt_show_info(s);
}
/*
* Finally, we run the protosocket function that actually handles
* the communication. We pass it a pointer to the application state
* of the current connection.
*/
handle_connection(s);
}
/*---------------------------------------------------------------------------*/
/*
* This is the protosocket function that handles the communication. A
* protosocket function must always return an int, but must never
* explicitly return - all return statements are hidden in the PSOCK
* macros.
*/
static int rt_show_info(struct hello_world_state *s)
{
PSOCK_BEGIN(&s->p);
PSOCK_SEND_STR(&s->p,"RT-Thread RTOS");
PSOCK_READTO(&s->p, '\n');
PSOCK_END(&s->p);
}
static int
handle_connection(struct hello_world_state *s)
{
int i;
for (i=0;i<BUF_SIZE;i++)
{
s->name[i] = 0;
s->inputbuffer[i] = 0;
}
PSOCK_BEGIN(&s->p);
//PSOCK_SEND_STR(&s->p, "Hello. What is your name?\n");
PSOCK_READTO(&s->p, '\n');
strncpy(s->name, s->inputbuffer, sizeof(s->name));
//PSOCK_SEND_STR(&s->p, "Hello ");
PSOCK_SEND_STR(&s->p, s->name);
//PSOCK_CLOSE(&s->p);
PSOCK_END(&s->p);
}
/*---------------------------------------------------------------------------*/
@@ -0,0 +1,53 @@
/**
* \addtogroup apps
* @{
*/
/**
* \defgroup helloworld Hello, world
* @{
*
* A small example showing how to write applications with
* \ref psock "protosockets".
*/
/**
* \file
* Header file for an example of how to write uIP applications
* with protosockets.
* \author
* Adam Dunkels <adam@sics.se>
*/
#ifndef __HELLO_WORLD_H__
#define __HELLO_WORLD_H__
/* Since this file will be included by uip.h, we cannot include uip.h
here. But we might need to include uipopt.h if we need the u8_t and
u16_t datatypes. */
#include "uipopt.h"
#include "psock.h"
/* Next, we define the uip_tcp_appstate_t datatype. This is the state
of our application, and the memory required for this state is
allocated together with each TCP connection. One application state
for each TCP connection. */
#define BUF_SIZE 200
typedef struct hello_world_state {
struct psock p;
char inputbuffer[BUF_SIZE];
char name[BUF_SIZE];
} uip_tcp_appstate_t;
/* Finally we define the application function to be called by uIP. */
void hello_world_appcall(void);
#ifndef UIP_APPCALL
#define UIP_APPCALL hello_world_appcall
#endif /* UIP_APPCALL */
void hello_world_init(void);
#endif /* __HELLO_WORLD_H__ */
/** @} */
/** @} */
@@ -0,0 +1 @@
APP_SOURCES += resolv.c
File diff suppressed because it is too large Load Diff
+75
View File
@@ -0,0 +1,75 @@
/**
* \addtogroup resolv
* @{
*/
/**
* \file
* DNS resolver code header file.
* \author Adam Dunkels <adam@dunkels.com>
*/
/*
* Copyright (c) 2002-2003, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: resolv.h,v 1.4 2006/06/11 21:46:37 adam Exp $
*
*/
#ifndef __RESOLV_H__
#define __RESOLV_H__
typedef int uip_udp_appstate_t;
void resolv_appcall(void);
#define UIP_UDP_APPCALL resolv_appcall
#include "uipopt.h"
/**
* Callback function which is called when a hostname is found.
*
* This function must be implemented by the module that uses the DNS
* resolver. It is called when a hostname is found, or when a hostname
* was not found.
*
* \param name A pointer to the name that was looked up. \param
* ipaddr A pointer to a 4-byte array containing the IP address of the
* hostname, or NULL if the hostname could not be found.
*/
void resolv_found(char *name, u16_t *ipaddr);
/* Functions. */
void resolv_conf(u16_t *dnsserver);
u16_t *resolv_getserver(void);
void resolv_init(void);
u16_t *resolv_lookup(char *name);
void resolv_query(char *name);
#endif /* __RESOLV_H__ */
/** @} */
@@ -0,0 +1 @@
APP_SOURCES += smtp.c smtp-strings.c memb.c
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/perl
sub stringify {
my $name = shift(@_);
open(OUTPUTC, "> $name.c");
open(OUTPUTH, "> $name.h");
open(FILE, "$name");
while(<FILE>) {
if(/(.+) "(.+)"/) {
$var = $1;
$data = $2;
$datan = $data;
$datan =~ s/\\r/\r/g;
$datan =~ s/\\n/\n/g;
$datan =~ s/\\01/\01/g;
$datan =~ s/\\0/\0/g;
printf(OUTPUTC "const char $var\[%d] = \n", length($datan) + 1);
printf(OUTPUTC "/* \"$data\" */\n");
printf(OUTPUTC "{");
for($j = 0; $j < length($datan); $j++) {
printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1)));
}
printf(OUTPUTC "};\n");
printf(OUTPUTH "extern const char $var\[%d];\n", length($datan) + 1);
}
}
close(OUTPUTC);
close(OUTPUTH);
}
stringify("smtp-strings");
exit 0;
+11
View File
@@ -0,0 +1,11 @@
smtp_220 "220"
smtp_helo "HELO "
smtp_mail_from "MAIL FROM: "
smtp_rcpt_to "RCPT TO: "
smtp_data "DATA\r\n"
smtp_to "To: "
smtp_from "From: "
smtp_subject "Subject: "
smtp_quit "QUIT\r\n"
smtp_crnl "\r\n"
smtp_crnlperiodcrnl "\r\n.\r\n"
@@ -0,0 +1,70 @@
/*
* Copyright (c) 2004, Adam Dunkels.
* 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.
*
* This file is part of the uIP TCP/IP stack
*
* Author: Adam Dunkels <adam@sics.se>
*
* $Id: smtp-strings.c,v 1.3 2006/06/11 21:46:37 adam Exp $
*/
const char smtp_220[4] =
/* "220" */
{0x32, 0x32, 0x30, };
const char smtp_helo[6] =
/* "HELO " */
{0x48, 0x45, 0x4c, 0x4f, 0x20, };
const char smtp_mail_from[12] =
/* "MAIL FROM: " */
{0x4d, 0x41, 0x49, 0x4c, 0x20, 0x46, 0x52, 0x4f, 0x4d, 0x3a, 0x20, };
const char smtp_rcpt_to[10] =
/* "RCPT TO: " */
{0x52, 0x43, 0x50, 0x54, 0x20, 0x54, 0x4f, 0x3a, 0x20, };
const char smtp_data[7] =
/* "DATA\r\n" */
{0x44, 0x41, 0x54, 0x41, 0xd, 0xa, };
const char smtp_to[5] =
/* "To: " */
{0x54, 0x6f, 0x3a, 0x20, };
const char smtp_cc[5] =
/* "Cc: " */
{0x43, 0x63, 0x3a, 0x20, };
const char smtp_from[7] =
/* "From: " */
{0x46, 0x72, 0x6f, 0x6d, 0x3a, 0x20, };
const char smtp_subject[10] =
/* "Subject: " */
{0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3a, 0x20, };
const char smtp_quit[7] =
/* "QUIT\r\n" */
{0x51, 0x55, 0x49, 0x54, 0xd, 0xa, };
const char smtp_crnl[3] =
/* "\r\n" */
{0xd, 0xa, };
const char smtp_crnlperiodcrnl[6] =
/* "\r\n.\r\n" */
{0xd, 0xa, 0x2e, 0xd, 0xa, };
@@ -0,0 +1,46 @@
/*
* Copyright (c) 2004, Adam Dunkels.
* 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.
*
* This file is part of the uIP TCP/IP stack
*
* Author: Adam Dunkels <adam@sics.se>
*
* $Id: smtp-strings.h,v 1.3 2006/06/11 21:46:37 adam Exp $
*/
extern const char smtp_220[4];
extern const char smtp_helo[6];
extern const char smtp_mail_from[12];
extern const char smtp_rcpt_to[10];
extern const char smtp_data[7];
extern const char smtp_to[5];
extern const char smtp_cc[5];
extern const char smtp_from[7];
extern const char smtp_subject[10];
extern const char smtp_quit[7];
extern const char smtp_crnl[3];
extern const char smtp_crnlperiodcrnl[6];
File diff suppressed because it is too large Load Diff
+103
View File
@@ -0,0 +1,103 @@
/**
* \addtogroup smtp
* @{
*/
/**
* \file
* SMTP header file
* \author Adam Dunkels <adam@dunkels.com>
*/
/*
* Copyright (c) 2002, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: smtp.h,v 1.4 2006/06/11 21:46:37 adam Exp $
*
*/
#ifndef __SMTP_H__
#define __SMTP_H__
#include "uipopt.h"
/**
* Error number that signifies a non-error condition.
*/
#define SMTP_ERR_OK 0
/**
* Callback function that is called when an e-mail transmission is
* done.
*
* This function must be implemented by the module that uses the SMTP
* module.
*
* \param error The number of the error if an error occured, or
* SMTP_ERR_OK.
*/
void smtp_done(unsigned char error);
void smtp_init(void);
/* Functions. */
void smtp_configure(char *localhostname, u16_t *smtpserver);
unsigned char smtp_send(char *to, char *from,
char *subject, char *msg,
u16_t msglen);
#define SMTP_SEND(to, cc, from, subject, msg) \
smtp_send(to, cc, from, subject, msg, strlen(msg))
void smtp_appcall(void);
struct smtp_state {
u8_t state;
char *to;
char *from;
char *subject;
char *msg;
u16_t msglen;
u16_t sentlen, textlen;
u16_t sendptr;
};
#ifndef UIP_APPCALL
#define UIP_APPCALL smtp_appcall
#endif
typedef struct smtp_state uip_tcp_appstate_t;
#endif /* __SMTP_H__ */
/** @} */
@@ -0,0 +1 @@
APP_SOURCES += telnetd.c shell.c memb.c
File diff suppressed because it is too large Load Diff
+63
View File
@@ -0,0 +1,63 @@
/*
* Copyright (c) 2003, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack
*
* $Id: telnetd.h,v 1.2 2006/06/07 09:43:54 adam Exp $
*
*/
#ifndef __TELNETD_H__
#define __TELNETD_H__
#include "uipopt.h"
void telnetd_appcall(void);
#ifndef TELNETD_CONF_LINELEN
#define TELNETD_CONF_LINELEN 40
#endif
#ifndef TELNETD_CONF_NUMLINES
#define TELNETD_CONF_NUMLINES 16
#endif
struct telnetd_state {
char *lines[TELNETD_CONF_NUMLINES];
char buf[TELNETD_CONF_LINELEN];
char bufptr;
u8_t numsent;
u8_t state;
};
typedef struct telnetd_state uip_tcp_appstate_t;
#ifndef UIP_APPCALL
#define UIP_APPCALL telnetd_appcall
#endif
#endif /* __TELNETD_H__ */
+123
View File
@@ -0,0 +1,123 @@
/*
* Copyright (c) 2003, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: shell.c,v 1.1 2006/06/07 09:43:54 adam Exp $
*
*/
#include "uip_shell.h"
#include <string.h>
struct ptentry {
char *commandstr;
void (* pfunc)(char *str);
};
#define SHELL_PROMPT "uIP 1.0> "
/*---------------------------------------------------------------------------*/
static void
parse(register char *str, struct ptentry *t)
{
struct ptentry *p;
for(p = t; p->commandstr != NULL; ++p) {
if(strncmp(p->commandstr, str, strlen(p->commandstr)) == 0) {
break;
}
}
p->pfunc(str);
}
/*---------------------------------------------------------------------------*/
static void
inttostr(register char *str, unsigned int i)
{
str[0] = '0' + i / 100;
if(str[0] == '0') {
str[0] = ' ';
}
str[1] = '0' + (i / 10) % 10;
if(str[0] == ' ' && str[1] == '0') {
str[1] = ' ';
}
str[2] = '0' + i % 10;
str[3] = ' ';
str[4] = 0;
}
/*---------------------------------------------------------------------------*/
static void
help(char *str)
{
shell_output("Available commands:", "");
shell_output("stats - show network statistics", "");
shell_output("conn - show TCP connections", "");
shell_output("help, ? - show help", "");
shell_output("exit - exit shell", "");
}
/*---------------------------------------------------------------------------*/
static void
unknown(char *str)
{
if(strlen(str) > 0) {
shell_output("Unknown command: ", str);
}
}
/*---------------------------------------------------------------------------*/
static struct ptentry parsetab[] =
{{"stats", help},
{"conn", help},
{"help", help},
{"exit", shell_quit},
{"?", help},
/* Default action */
{NULL, unknown}};
/*---------------------------------------------------------------------------*/
void
shell_init(void)
{
}
/*---------------------------------------------------------------------------*/
void
shell_start(void)
{
shell_output("uIP command shell", "");
shell_output("Type '?' and return for help", "");
shell_prompt(SHELL_PROMPT);
}
/*---------------------------------------------------------------------------*/
void
shell_input(char *cmd)
{
parse(cmd, parsetab);
shell_prompt(SHELL_PROMPT);
}
/*---------------------------------------------------------------------------*/
+104
View File
@@ -0,0 +1,104 @@
/**
* \file
* Interface for the Contiki shell.
* \author Adam Dunkels <adam@dunkels.com>
*
* Some of the functions declared in this file must be implemented as
* a shell back-end in the architecture specific files of a Contiki
* port.
*/
/*
* Copyright (c) 2003, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the Contiki desktop OS.
*
* $Id: shell.h,v 1.1 2006/06/07 09:43:54 adam Exp $
*
*/
#ifndef __SHELL_H__
#define __SHELL_H__
/**
* Initialize the shell.
*
* Called when the shell front-end process starts. This function may
* be used to start listening for signals.
*/
void shell_init(void);
/**
* Start the shell back-end.
*
* Called by the front-end when a new shell is started.
*/
void shell_start(void);
/**
* Process a shell command.
*
* This function will be called by the shell GUI / telnet server whan
* a command has been entered that should be processed by the shell
* back-end.
*
* \param command The command to be processed.
*/
void shell_input(char *command);
/**
* Quit the shell.
*
*/
void shell_quit(char *);
/**
* Print a string to the shell window.
*
* This function is implemented by the shell GUI / telnet server and
* can be called by the shell back-end to output a string in the
* shell window. The string is automatically appended with a linebreak.
*
* \param str1 The first half of the string to be output.
* \param str2 The second half of the string to be output.
*/
void shell_output(char *str1, char *str2);
/**
* Print a prompt to the shell window.
*
* This function can be used by the shell back-end to print out a
* prompt to the shell window.
*
* \param prompt The prompt to be printed.
*
*/
void shell_prompt(char *prompt);
#endif /* __SHELL_H__ */
@@ -0,0 +1 @@
APP_SOURCES += webclient-strings.c webclient.c
@@ -0,0 +1,40 @@
#!/usr/bin/perl
sub stringify {
my $name = shift(@_);
open(OUTPUTC, "> $name.c");
open(OUTPUTH, "> $name.h");
open(FILE, "$name");
while(<FILE>) {
if(/(.+) "(.+)"/) {
$var = $1;
$data = $2;
$datan = $data;
$datan =~ s/\\r/\r/g;
$datan =~ s/\\n/\n/g;
$datan =~ s/\\01/\01/g;
$datan =~ s/\\0/\0/g;
printf(OUTPUTC "const char $var\[%d] = \n", length($datan) + 1);
printf(OUTPUTC "/* \"$data\" */\n");
printf(OUTPUTC "{");
for($j = 0; $j < length($datan); $j++) {
printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1)));
}
printf(OUTPUTC "0 };\n");
printf(OUTPUTH "extern const char $var\[%d];\n", length($datan) + 1);
}
}
close(OUTPUTC);
close(OUTPUTH);
}
stringify("webclient-strings");
exit 0;
@@ -0,0 +1,31 @@
http_http "http://"
http_200 "200 "
http_301 "301 "
http_302 "302 "
http_get "GET "
http_10 "HTTP/1.0"
http_11 "HTTP/1.1"
http_content_type "content-type: "
http_texthtml "text/html"
http_location "location: "
http_host "host: "
http_crnl "\r\n"
http_index_html "/index.html"
http_404_html "/404.html"
http_content_type_html "Content-type: text/html\r\n\r\n"
http_content_type_css "Content-type: text/css\r\n\r\n"
http_content_type_text "Content-type: text/text\r\n\r\n"
http_content_type_png "Content-type: image/png\r\n\r\n"
http_content_type_gif "Content-type: image/gif\r\n\r\n"
http_content_type_jpg "Content-type: image/jpeg\r\n\r\n"
http_content_type_binary "Content-type: application/octet-stream\r\n\r\n"
http_html ".html"
http_shtml ".shtml"
http_htm ".htm"
http_css ".css"
http_png ".png"
http_gif ".gif"
http_jpg ".jpg"
http_text ".text"
http_txt ".txt"
http_user_agent_fields "Connection: close\r\nUser-Agent: uIP/1.0 (; http://www.sics.se/~adam/uip/)\r\n\r\n"
@@ -0,0 +1,93 @@
const char http_http[8] =
/* "http://" */
{0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0 };
const char http_200[5] =
/* "200 " */
{0x32, 0x30, 0x30, 0x20, 0 };
const char http_301[5] =
/* "301 " */
{0x33, 0x30, 0x31, 0x20, 0 };
const char http_302[5] =
/* "302 " */
{0x33, 0x30, 0x32, 0x20, 0 };
const char http_get[5] =
/* "GET " */
{0x47, 0x45, 0x54, 0x20, 0 };
const char http_10[9] =
/* "HTTP/1.0" */
{0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0 };
const char http_11[9] =
/* "HTTP/1.1" */
{0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x31, 0 };
const char http_content_type[15] =
/* "content-type: " */
{0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0 };
const char http_texthtml[10] =
/* "text/html" */
{0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0 };
const char http_location[11] =
/* "location: " */
{0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0 };
const char http_host[7] =
/* "host: " */
{0x68, 0x6f, 0x73, 0x74, 0x3a, 0x20, 0 };
const char http_crnl[3] =
/* "\r\n" */
{0xd, 0xa, 0 };
const char http_index_html[12] =
/* "/index.html" */
{0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0 };
const char http_404_html[10] =
/* "/404.html" */
{0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0 };
const char http_content_type_html[28] =
/* "Content-type: text/html\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_content_type_css [27] =
/* "Content-type: text/css\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_content_type_text[28] =
/* "Content-type: text/text\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, 0x78, 0x74, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_content_type_png [28] =
/* "Content-type: image/png\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_content_type_gif [28] =
/* "Content-type: image/gif\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_content_type_jpg [29] =
/* "Content-type: image/jpeg\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x65, 0x67, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_content_type_binary[43] =
/* "Content-type: application/octet-stream\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xd, 0xa, 0xd, 0xa, 0 };
const char http_html[6] =
/* ".html" */
{0x2e, 0x68, 0x74, 0x6d, 0x6c, 0 };
const char http_shtml[7] =
/* ".shtml" */
{0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0 };
const char http_htm[5] =
/* ".htm" */
{0x2e, 0x68, 0x74, 0x6d, 0 };
const char http_css[5] =
/* ".css" */
{0x2e, 0x63, 0x73, 0x73, 0 };
const char http_png[5] =
/* ".png" */
{0x2e, 0x70, 0x6e, 0x67, 0 };
const char http_gif[5] =
/* ".gif" */
{0x2e, 0x67, 0x69, 0x66, 0 };
const char http_jpg[5] =
/* ".jpg" */
{0x2e, 0x6a, 0x70, 0x67, 0 };
const char http_text[6] =
/* ".text" */
{0x2e, 0x74, 0x65, 0x78, 0x74, 0 };
const char http_txt[5] =
/* ".txt" */
{0x2e, 0x74, 0x78, 0x74, 0 };
const char http_user_agent_fields[77] =
/* "Connection: close\r\nUser-Agent: uIP/1.0 (; http://www.sics.se/~adam/uip/)\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0xd, 0xa, 0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x28, 0x3b, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 0x70, 0x2f, 0x29, 0xd, 0xa, 0xd, 0xa, 0 };
@@ -0,0 +1,31 @@
extern const char http_http[8];
extern const char http_200[5];
extern const char http_301[5];
extern const char http_302[5];
extern const char http_get[5];
extern const char http_10[9];
extern const char http_11[9];
extern const char http_content_type[15];
extern const char http_texthtml[10];
extern const char http_location[11];
extern const char http_host[7];
extern const char http_crnl[3];
extern const char http_index_html[12];
extern const char http_404_html[10];
extern const char http_content_type_html[28];
extern const char http_content_type_css [27];
extern const char http_content_type_text[28];
extern const char http_content_type_png [28];
extern const char http_content_type_gif [28];
extern const char http_content_type_jpg [29];
extern const char http_content_type_binary[43];
extern const char http_html[6];
extern const char http_shtml[7];
extern const char http_htm[5];
extern const char http_css[5];
extern const char http_png[5];
extern const char http_gif[5];
extern const char http_jpg[5];
extern const char http_text[6];
extern const char http_txt[5];
extern const char http_user_agent_fields[77];
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
APP_SOURCES += httpd.c http-strings.c httpd-fs.c httpd-cgi.c
@@ -0,0 +1,35 @@
http_http "http://"
http_200 "200 "
http_301 "301 "
http_302 "302 "
http_get "GET "
http_10 "HTTP/1.0"
http_11 "HTTP/1.1"
http_content_type "content-type: "
http_texthtml "text/html"
http_location "location: "
http_host "host: "
http_crnl "\r\n"
http_index_html "/index.html"
http_404_html "/404.html"
http_referer "Referer:"
http_header_200 "HTTP/1.0 200 OK\r\nServer: uIP/1.0 http://www.sics.se/~adam/uip/\r\nConnection: close\r\n"
http_header_404 "HTTP/1.0 404 Not found\r\nServer: uIP/1.0 http://www.sics.se/~adam/uip/\r\nConnection: close\r\n"
http_content_type_plain "Content-type: text/plain\r\n\r\n"
http_content_type_html "Content-type: text/html\r\n\r\n"
http_content_type_css "Content-type: text/css\r\n\r\n"
http_content_type_text "Content-type: text/text\r\n\r\n"
http_content_type_png "Content-type: image/png\r\n\r\n"
http_content_type_gif "Content-type: image/gif\r\n\r\n"
http_content_type_jpg "Content-type: image/jpeg\r\n\r\n"
http_content_type_binary "Content-type: application/octet-stream\r\n\r\n"
http_html ".html"
http_shtml ".shtml"
http_htm ".htm"
http_css ".css"
http_png ".png"
http_gif ".gif"
http_jpg ".jpg"
http_text ".txt"
http_txt ".txt"
@@ -0,0 +1,102 @@
const char http_http[8] =
/* "http://" */
{0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, };
const char http_200[5] =
/* "200 " */
{0x32, 0x30, 0x30, 0x20, };
const char http_301[5] =
/* "301 " */
{0x33, 0x30, 0x31, 0x20, };
const char http_302[5] =
/* "302 " */
{0x33, 0x30, 0x32, 0x20, };
const char http_get[5] =
/* "GET " */
{0x47, 0x45, 0x54, 0x20, };
const char http_10[9] =
/* "HTTP/1.0" */
{0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, };
const char http_11[9] =
/* "HTTP/1.1" */
{0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x31, };
const char http_content_type[15] =
/* "content-type: " */
{0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, };
const char http_texthtml[10] =
/* "text/html" */
{0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, };
const char http_location[11] =
/* "location: " */
{0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, };
const char http_host[7] =
/* "host: " */
{0x68, 0x6f, 0x73, 0x74, 0x3a, 0x20, };
const char http_crnl[3] =
/* "\r\n" */
{0xd, 0xa, };
const char http_index_html[12] =
/* "/index.html" */
{0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, };
const char http_404_html[10] =
/* "/404.html" */
{0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, };
const char http_referer[9] =
/* "Referer:" */
{0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72, 0x3a, };
const char http_header_200[84] =
/* "HTTP/1.0 200 OK\r\nServer: uIP/1.0 http://www.sics.se/~adam/uip/\r\nConnection: close\r\n" */
{0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 0x70, 0x2f, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0xd, 0xa, };
const char http_header_404[91] =
/* "HTTP/1.0 404 Not found\r\nServer: uIP/1.0 http://www.sics.se/~adam/uip/\r\nConnection: close\r\n" */
{0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x34, 0x30, 0x34, 0x20, 0x4e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0xd, 0xa, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, 0x70, 0x2f, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0xd, 0xa, };
const char http_content_type_plain[29] =
/* "Content-type: text/plain\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_html[28] =
/* "Content-type: text/html\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_css [27] =
/* "Content-type: text/css\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_text[28] =
/* "Content-type: text/text\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x65, 0x78, 0x74, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_png [28] =
/* "Content-type: image/png\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_gif [28] =
/* "Content-type: image/gif\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_jpg [29] =
/* "Content-type: image/jpeg\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x65, 0x67, 0xd, 0xa, 0xd, 0xa, };
const char http_content_type_binary[43] =
/* "Content-type: application/octet-stream\r\n\r\n" */
{0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0xd, 0xa, 0xd, 0xa, };
const char http_html[6] =
/* ".html" */
{0x2e, 0x68, 0x74, 0x6d, 0x6c, };
const char http_shtml[7] =
/* ".shtml" */
{0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, };
const char http_htm[5] =
/* ".htm" */
{0x2e, 0x68, 0x74, 0x6d, };
const char http_css[5] =
/* ".css" */
{0x2e, 0x63, 0x73, 0x73, };
const char http_png[5] =
/* ".png" */
{0x2e, 0x70, 0x6e, 0x67, };
const char http_gif[5] =
/* ".gif" */
{0x2e, 0x67, 0x69, 0x66, };
const char http_jpg[5] =
/* ".jpg" */
{0x2e, 0x6a, 0x70, 0x67, };
const char http_text[5] =
/* ".txt" */
{0x2e, 0x74, 0x78, 0x74, };
const char http_txt[5] =
/* ".txt" */
{0x2e, 0x74, 0x78, 0x74, };
@@ -0,0 +1,34 @@
extern const char http_http[8];
extern const char http_200[5];
extern const char http_301[5];
extern const char http_302[5];
extern const char http_get[5];
extern const char http_10[9];
extern const char http_11[9];
extern const char http_content_type[15];
extern const char http_texthtml[10];
extern const char http_location[11];
extern const char http_host[7];
extern const char http_crnl[3];
extern const char http_index_html[12];
extern const char http_404_html[10];
extern const char http_referer[9];
extern const char http_header_200[84];
extern const char http_header_404[91];
extern const char http_content_type_plain[29];
extern const char http_content_type_html[28];
extern const char http_content_type_css [27];
extern const char http_content_type_text[28];
extern const char http_content_type_png [28];
extern const char http_content_type_gif [28];
extern const char http_content_type_jpg [29];
extern const char http_content_type_binary[43];
extern const char http_html[6];
extern const char http_shtml[7];
extern const char http_htm[5];
extern const char http_css[5];
extern const char http_png[5];
extern const char http_gif[5];
extern const char http_jpg[5];
extern const char http_text[5];
extern const char http_txt[5];
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,84 @@
/**
* \addtogroup httpd
* @{
*/
/**
* \file
* Web server script interface header file
* \author
* Adam Dunkels <adam@sics.se>
*
*/
/*
* Copyright (c) 2001, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: httpd-cgi.h,v 1.2 2006/06/11 21:46:38 adam Exp $
*
*/
#ifndef __HTTPD_CGI_H__
#define __HTTPD_CGI_H__
#include "psock.h"
#include "httpd.h"
typedef PT_THREAD((* httpd_cgifunction)(struct httpd_state *, char *));
httpd_cgifunction httpd_cgi(char *name);
struct httpd_cgi_call {
const char *name;
const httpd_cgifunction function;
};
/**
* \brief HTTPD CGI function declaration
* \param name The C variable name of the function
* \param str The string name of the function, used in the script file
* \param function A pointer to the function that implements it
*
* This macro is used for declaring a HTTPD CGI
* function. This function is then added to the list of
* HTTPD CGI functions with the httpd_cgi_add() function.
*
* \hideinitializer
*/
#define HTTPD_CGI_CALL(name, str, function) \
static PT_THREAD(function(struct httpd_state *, char *)); \
static const struct httpd_cgi_call name = {str, function}
void httpd_cgi_init(void);
#endif /* __HTTPD_CGI_H__ */
/** @} */
@@ -0,0 +1,132 @@
/*
* Copyright (c) 2001, 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.
*
* This file is part of the lwIP TCP/IP stack.
*
* Author: Adam Dunkels <adam@sics.se>
*
* $Id: httpd-fs.c,v 1.1 2006/06/07 09:13:08 adam Exp $
*/
#include "httpd.h"
#include "httpd-fs.h"
#include "httpd-fsdata.h"
#ifndef NULL
#define NULL 0
#endif /* NULL */
#include "httpd-fsdata.c"
#if HTTPD_FS_STATISTICS
static u16_t count[HTTPD_FS_NUMFILES];
#endif /* HTTPD_FS_STATISTICS */
/*-----------------------------------------------------------------------------------*/
static u8_t
httpd_fs_strcmp(const char *str1, const char *str2)
{
u8_t i;
i = 0;
loop:
if(str2[i] == 0 ||
str1[i] == '\r' ||
str1[i] == '\n') {
return 0;
}
if(str1[i] != str2[i]) {
return 1;
}
++i;
goto loop;
}
/*-----------------------------------------------------------------------------------*/
int
httpd_fs_open(const char *name, struct httpd_fs_file *file)
{
#if HTTPD_FS_STATISTICS
u16_t i = 0;
#endif /* HTTPD_FS_STATISTICS */
struct httpd_fsdata_file_noconst *f;
for(f = (struct httpd_fsdata_file_noconst *)HTTPD_FS_ROOT;
f != NULL;
f = (struct httpd_fsdata_file_noconst *)f->next) {
if(httpd_fs_strcmp(name, f->name) == 0) {
file->data = f->data;
file->len = f->len;
#if HTTPD_FS_STATISTICS
++count[i];
#endif /* HTTPD_FS_STATISTICS */
return 1;
}
#if HTTPD_FS_STATISTICS
++i;
#endif /* HTTPD_FS_STATISTICS */
}
return 0;
}
/*-----------------------------------------------------------------------------------*/
void
httpd_fs_init(void)
{
#if HTTPD_FS_STATISTICS
u16_t i;
for(i = 0; i < HTTPD_FS_NUMFILES; i++) {
count[i] = 0;
}
#endif /* HTTPD_FS_STATISTICS */
}
/*-----------------------------------------------------------------------------------*/
#if HTTPD_FS_STATISTICS
u16_t httpd_fs_count
(char *name)
{
struct httpd_fsdata_file_noconst *f;
u16_t i;
i = 0;
for(f = (struct httpd_fsdata_file_noconst *)HTTPD_FS_ROOT;
f != NULL;
f = (struct httpd_fsdata_file_noconst *)f->next) {
if(httpd_fs_strcmp(name, f->name) == 0) {
return count[i];
}
++i;
}
return 0;
}
#endif /* HTTPD_FS_STATISTICS */
/*-----------------------------------------------------------------------------------*/
@@ -0,0 +1,57 @@
/*
* Copyright (c) 2001, 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.
*
* This file is part of the lwIP TCP/IP stack.
*
* Author: Adam Dunkels <adam@sics.se>
*
* $Id: httpd-fs.h,v 1.1 2006/06/07 09:13:08 adam Exp $
*/
#ifndef __HTTPD_FS_H__
#define __HTTPD_FS_H__
#define HTTPD_FS_STATISTICS 1
struct httpd_fs_file {
char *data;
int len;
};
/* file must be allocated by caller and will be filled in
by the function. */
int httpd_fs_open(const char *name, struct httpd_fs_file *file);
#ifdef HTTPD_FS_STATISTICS
#if HTTPD_FS_STATISTICS == 1
u16_t httpd_fs_count(char *name);
#endif /* HTTPD_FS_STATISTICS */
#endif /* HTTPD_FS_STATISTICS */
void httpd_fs_init(void);
#endif /* __HTTPD_FS_H__ */
@@ -0,0 +1,8 @@
<html>
<body bgcolor="white">
<center>
<h1>404 - file not found</h1>
<h3>Go <a href="/">here</a> instead.</h3>
</center>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

@@ -0,0 +1,35 @@
%!: /header.html
<h1>File statistics</h1>
<center>
<table width="300">
<tr><td><a href="/index.html">/index.html</a></td>
<td>%! file-stats /index.html
</td><td><img src="/fade.png" height=10 width=%! file-stats /index.html
> </td></tr>
<tr><td><a href="/files.shtml">/files.shtml</a></td>
<td>%! file-stats /files.shtml
</td><td><img src="/fade.png" height=10 width=%! file-stats /files.shtml
> </td></tr>
<tr><td><a href="/tcp.shtml">/tcp.shtml</a></td>
<td>%! file-stats /tcp.shtml
</td><td><img src="/fade.png" height=10 width=%! file-stats /tcp.shtml
> </td></tr>
<tr><td><a href="/stats.shtml">/stats.shtml</a></td>
<td>%! file-stats /stats.shtml
</td><td><img src="/fade.png" height=10 width=%! file-stats /stats.shtml
> </td></tr>
<tr><td><a href="/style.css">/style.css</a></td>
<td>%! file-stats /style.css
</td><td><img src="/fade.png" height=10 width=%! file-stats /style.css
> </td></tr>
<tr><td><a href="/404.html">/404.html</a></td>
<td>%! file-stats /404.html
</td><td><img src="/fade.png" height=10 width=%! file-stats /404.html
> </td></tr>
<tr><td><a href="/fade.png">/fade.png</a></td>
<td>%! file-stats /fade.png
</td><td><img src="/fade.png" height=10 width=%! file-stats /fade.png
> </td></tr>
</table>
</center>
%!: /footer.html
@@ -0,0 +1,2 @@
</body>
</html>
@@ -0,0 +1,18 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Welcome to the uIP web server!</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="#fffeec" text="black">
<div class="menu">
<div class="menubox"><a href="/">Front page</a></div>
<div class="menubox"><a href="files.shtml">File statistics</a></div>
<div class="menubox"><a href="stats.shtml">Network statistics</a></div>
<div class="menubox"><a href="tcp.shtml">Network
connections</a></div>
<br>
</div>
<div class="contentblock">
@@ -0,0 +1,29 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Welcome to the uIP web server!</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="#fffeec" text="black">
<div class="menu">
<div class="menubox"><a href="/">Front page</a></div>
<div class="menubox"><a href="files.shtml">File statistics</a></div>
<div class="menubox"><a href="stats.shtml">Network statistics</a></div>
<div class="menubox"><a href="tcp.shtml">Network
connections</a></div>
<br>
</div>
<div class="contentblock">
<p>
These web pages are served by a small web server running on top of
the <a href="http://www.sics.se/~adam/uip/">uIP embedded TCP/IP
stack</a>.
</p>
<p>
Click on the links above for web server statistics.
</p>
</body>
</html>
@@ -0,0 +1,5 @@
%!: /header.html
<h1>System processes</h1><br><table width="100%">
<tr><th>ID</th><th>Name</th><th>Priority</th><th>Poll handler</th><th>Event handler</th><th>Procstate</th></tr>
%! processes
%!: /footer.html
@@ -0,0 +1,31 @@
%!: /header.html
<h1>Network statistics</h1>
<center>
<table width="300" border="0">
<tr><td><pre>
IP Packets received
Packets sent
Packets dropped
IP errors IP version/header length
IP length, high byte
IP length, low byte
IP fragments
Header checksum
Wrong protocol
ICMP Packets received
Packets sent
Packets dropped
Type errors
TCP Packets received
Packets sent
Packets dropped
Checksum errors
Data packets without ACKs
Resets
Retransmissions
No connection avaliable
Connection attempts to closed ports
</pre></td><td><pre>%! net-stats
</pre></table>
</center>
%!: /footer.html
@@ -0,0 +1,92 @@
h1
{
text-align: center;
font-size:14pt;
font-family:arial,helvetica;
font-weight:bold;
padding:10px;
}
body
{
background-color: #fffeec;
color:black;
font-size:8pt;
font-family:arial,helvetica;
}
.menu
{
margin: 4px;
width:60%;
padding:2px;
border: solid 1px;
background-color: #fffcd2;
text-align:left;
font-size:9pt;
font-family:arial,helvetica;
}
div.menubox
{
width: 25%;
border: 0;
float: left;
text-align: center;
}
.contentblock
{
margin: 4px;
width:60%;
padding:2px;
border: 1px dotted;
background-color: white;
font-size:8pt;
font-family:arial,helvetica;
}
p.intro
{
margin-left:20px;
margin-right:20px;
font-size:10pt;
/* font-weight:bold; */
font-family:arial,helvetica;
}
p.clink
{
font-size:12pt;
font-family:courier,monospace;
text-align:center;
}
p.clink9
{
font-size:9pt;
font-family:courier,monospace;
text-align:center;
}
p
{
padding-left:10px;
}
p.right
{
text-align:right;
}
@@ -0,0 +1,5 @@
%!: /header.html
<h1>Current connections</h1><br><table width="100%">
<tr><th>Local</th><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>
%! tcp-connections
%!: /footer.html
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,64 @@
/*
* Copyright (c) 2001, 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.
*
* This file is part of the lwIP TCP/IP stack.
*
* Author: Adam Dunkels <adam@sics.se>
*
* $Id: httpd-fsdata.h,v 1.1 2006/06/07 09:13:08 adam Exp $
*/
#ifndef __HTTPD_FSDATA_H__
#define __HTTPD_FSDATA_H__
#include "uip.h"
struct httpd_fsdata_file {
const struct httpd_fsdata_file *next;
const char *name;
const char *data;
const int len;
#ifdef HTTPD_FS_STATISTICS
#if HTTPD_FS_STATISTICS == 1
u16_t count;
#endif /* HTTPD_FS_STATISTICS */
#endif /* HTTPD_FS_STATISTICS */
};
struct httpd_fsdata_file_noconst {
struct httpd_fsdata_file *next;
char *name;
char *data;
int len;
#ifdef HTTPD_FS_STATISTICS
#if HTTPD_FS_STATISTICS == 1
u16_t count;
#endif /* HTTPD_FS_STATISTICS */
#endif /* HTTPD_FS_STATISTICS */
};
#endif /* __HTTPD_FSDATA_H__ */
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
/*
* Copyright (c) 2001-2005, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: httpd.h,v 1.2 2006/06/11 21:46:38 adam Exp $
*
*/
#ifndef __HTTPD_H__
#define __HTTPD_H__
#include "psock.h"
#include "httpd-fs.h"
struct httpd_state {
unsigned char timer;
struct psock sin, sout;
struct pt outputpt, scriptpt;
char inputbuf[50];
char filename[20];
char state;
struct httpd_fs_file file;
int len;
char *scriptptr;
int scriptlen;
unsigned short count;
};
void httpd_init(void);
void httpd_appcall(void);
void httpd_log(char *msg);
void httpd_log_file(u16_t *requester, char *file);
#endif /* __HTTPD_H__ */
@@ -0,0 +1,78 @@
#!/usr/bin/perl
open(OUTPUT, "> httpd-fsdata.c");
chdir("httpd-fs");
opendir(DIR, ".");
@files = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);
closedir(DIR);
foreach $file (@files) {
if(-d $file && $file !~ /^\./) {
print "Processing directory $file\n";
opendir(DIR, $file);
@newfiles = grep { !/^\./ && !/(CVS|~)/ } readdir(DIR);
closedir(DIR);
printf "Adding files @newfiles\n";
@files = (@files, map { $_ = "$file/$_" } @newfiles);
next;
}
}
foreach $file (@files) {
if(-f $file) {
print "Adding file $file\n";
open(FILE, $file) || die "Could not open file $file\n";
$file =~ s-^-/-;
$fvar = $file;
$fvar =~ s-/-_-g;
$fvar =~ s-\.-_-g;
# for AVR, add PROGMEM here
print(OUTPUT "static const unsigned char data".$fvar."[] = {\n");
print(OUTPUT "\t/* $file */\n\t");
for($j = 0; $j < length($file); $j++) {
printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));
}
printf(OUTPUT "0,\n");
$i = 0;
while(read(FILE, $data, 1)) {
if($i == 0) {
print(OUTPUT "\t");
}
printf(OUTPUT "%#02x, ", unpack("C", $data));
$i++;
if($i == 10) {
print(OUTPUT "\n");
$i = 0;
}
}
print(OUTPUT "0};\n\n");
close(FILE);
push(@fvars, $fvar);
push(@pfiles, $file);
}
}
for($i = 0; $i < @fvars; $i++) {
$file = $pfiles[$i];
$fvar = $fvars[$i];
if($i == 0) {
$prevfile = "NULL";
} else {
$prevfile = "file" . $fvars[$i - 1];
}
print(OUTPUT "const struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");
print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");
print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");
}
print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n");
print(OUTPUT "#define HTTPD_FS_NUMFILES $i\n");
@@ -0,0 +1,40 @@
#!/usr/bin/perl
sub stringify {
my $name = shift(@_);
open(OUTPUTC, "> $name.c");
open(OUTPUTH, "> $name.h");
open(FILE, "$name");
while(<FILE>) {
if(/(.+) "(.+)"/) {
$var = $1;
$data = $2;
$datan = $data;
$datan =~ s/\\r/\r/g;
$datan =~ s/\\n/\n/g;
$datan =~ s/\\01/\01/g;
$datan =~ s/\\0/\0/g;
printf(OUTPUTC "const char $var\[%d] = \n", length($datan) + 1);
printf(OUTPUTC "/* \"$data\" */\n");
printf(OUTPUTC "{");
for($j = 0; $j < length($datan); $j++) {
printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1)));
}
printf(OUTPUTC "};\n");
printf(OUTPUTH "extern const char $var\[%d];\n", length($datan) + 1);
}
}
close(OUTPUTC);
close(OUTPUTH);
}
stringify("http-strings");
exit 0;
@@ -0,0 +1,49 @@
/*
* Copyright (c) 2002, Adam Dunkels.
* 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. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
*
* This file is part of the uIP TCP/IP stack
*
* $Id: webserver.h,v 1.2 2006/06/11 21:46:38 adam Exp $
*
*/
#ifndef __WEBSERVER_H__
#define __WEBSERVER_H__
#include "httpd.h"
typedef struct httpd_state uip_tcp_appstate_t;
/* UIP_APPCALL: the name of the application function. This function
must return void and take no arguments (i.e., C type "void
appfunc(void)"). */
#ifndef UIP_APPCALL
#define UIP_APPCALL httpd_appcall
#endif
#endif /* __WEBSERVER_H__ */
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
all: htmldoc pdfdoc
htmldoc:
doxygen Doxyfile
pdfdoc: htmldoc
cd latex; make refman.pdf && mv refman.pdf ../uip-refman.pdf
+12
View File
@@ -0,0 +1,12 @@
The files in this directory comprise the uIP documentation. The files
are:
html/ The uIP reference manual in HTML format.
uip-refman.pdf The uIP reference manual in a printable PDF version.
mobisys2003.pdf Conference paper about uIP from the First
International Conference on Mobile Systems,
Applications and Services (MobiSys), San
Francisco, May 2003.
+62
View File
@@ -0,0 +1,62 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
\RequirePackage{calc}
\RequirePackage{array}
\pagestyle{fancyplain}
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\lhead[\fancyplain{}{\bfseries\thepage}]
{\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
{\fancyplain{}{\bfseries\thepage}}
\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Wed Jun 7 11:37:14 2006 for uIP 1.0-rc0 by doxygen\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Wed Jun 7 11:37:14 2006 for uIP 1.0-rc0 by doxygen}}
\cfoot{}
\newenvironment{CompactList}
{\begin{list}{}{
\setlength{\leftmargin}{0.5cm}
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\renewcommand{\makelabel}{}}}
{\end{list}}
\newenvironment{CompactItemize}
{
\begin{itemize}
\setlength{\itemsep}{-3pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
}
{\end{itemize}}
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
\newlength{\tmplength}
\newenvironment{TabularC}[1]
{
\setlength{\tmplength}
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
\par\begin{tabular*}{\linewidth}
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
}
{\end{tabular*}\par}
\newcommand{\entrylabel}[1]{
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}}
\newenvironment{Desc}
{\begin{list}{}
{
\settowidth{\labelwidth}{40pt}
\setlength{\leftmargin}{\labelwidth}
\setlength{\parsep}{0pt}
\setlength{\itemsep}{-4pt}
\renewcommand{\makelabel}{\entrylabel}
}
}
{\end{list}}
\newenvironment{Indent}
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
\item[]\ignorespaces}
{\unskip\end{list}}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\addtocounter{secnumdepth}{1}
\sloppy
\usepackage[T1]{fontenc}
@@ -0,0 +1,86 @@
#include "uip.h"
#include "uip_arp.h"
#include "network-device.h"
#include "httpd.h"
#include "timer.h"
#define BUF ((struct uip_eth_hdr *)&uip_buf[0])
/*---------------------------------------------------------------------------*/
int
main(void)
{
int i;
uip_ipaddr_t ipaddr;
struct timer periodic_timer, arp_timer;
timer_set(&periodic_timer, CLOCK_SECOND / 2);
timer_set(&arp_timer, CLOCK_SECOND * 10);
network_device_init();
uip_init();
uip_ipaddr(ipaddr, 192,168,0,2);
uip_sethostaddr(ipaddr);
httpd_init();
while(1) {
uip_len = network_device_read();
if(uip_len > 0) {
if(BUF->type == htons(UIP_ETHTYPE_IP)) {
uip_arp_ipin();
uip_input();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
uip_arp_out();
network_device_send();
}
} else if(BUF->type == htons(UIP_ETHTYPE_ARP)) {
uip_arp_arpin();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
network_device_send();
}
}
} else if(timer_expired(&periodic_timer)) {
timer_reset(&periodic_timer);
for(i = 0; i < UIP_CONNS; i++) {
uip_periodic(i);
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
uip_arp_out();
network_device_send();
}
}
#if UIP_UDP
for(i = 0; i < UIP_UDP_CONNS; i++) {
uip_udp_periodic(i);
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
uip_arp_out();
network_device_send();
}
}
#endif /* UIP_UDP */
/* Call the ARP timer function every 10 seconds. */
if(timer_expired(&arp_timer)) {
timer_reset(&arp_timer);
uip_arp_timer();
}
}
}
return 0;
}
/*---------------------------------------------------------------------------*/
@@ -0,0 +1,62 @@
#include "uip.h"
#include "uip_arp.h"
#include "network-device.h"
#include "httpd.h"
#include "timer.h"
/*---------------------------------------------------------------------------*/
int
main(void)
{
int i;
uip_ipaddr_t ipaddr;
struct timer periodic_timer;
timer_set(&periodic_timer, CLOCK_SECOND / 2);
network_device_init();
uip_init();
uip_ipaddr(ipaddr, 192,168,0,2);
uip_sethostaddr(ipaddr);
httpd_init();
while(1) {
uip_len = network_device_read();
if(uip_len > 0) {
uip_input();
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
network_device_send();
}
} else if(timer_expired(&periodic_timer)) {
timer_reset(&periodic_timer);
for(i = 0; i < UIP_CONNS; i++) {
uip_periodic(i);
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
network_device_send();
}
}
#if UIP_UDP
for(i = 0; i < UIP_UDP_CONNS; i++) {
uip_udp_periodic(i);
/* If the above function invocation resulted in data that
should be sent out on the network, the global variable
uip_len is set to a value > 0. */
if(uip_len > 0) {
network_device_send();
}
}
#endif /* UIP_UDP */
}
}
return 0;
}
/*---------------------------------------------------------------------------*/
+34
View File
@@ -0,0 +1,34 @@
/**
\defgroup apps Applications
@{
The uIP distribution contains a number of example applications that
can be either used directory or studied when learning to develop
applications for uIP.
*/
/** \example hello-world.c */
/** \example hello-world.h */
/** \example smtp.c */
/** \example smtp.h */
/** \example webclient.c */
/** \example webclient.h */
/** \example example-mainloop-with-arp.c */
/** \example example-mainloop-without-arp.c */
/** \example telnetd.c */
/** \example telnetd.h */
/** \example resolv.c */
/** \example resolv.h */
/** \example dhcpc.c */
/** \example dhcpc.h */
/** \example uip-conf.h */
/** @} */
+53
View File
@@ -0,0 +1,53 @@
\documentclass[a4paper]{book}
\usepackage{a4wide}
\usepackage{makeidx}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{float}
\usepackage{textcomp}
\usepackage{alltt}
\usepackage{times}
\ifx\pdfoutput\undefined
\usepackage[ps2pdf,
pagebackref=true,
colorlinks=true,
linkcolor=blue
]{hyperref}
\usepackage{pspicture}
\else
\usepackage[pdftex,
pagebackref=true,
colorlinks=true,
linkcolor=blue
]{hyperref}
\fi
\usepackage{doxygen}
\makeindex
\setcounter{tocdepth}{1}
\renewcommand{\footrulewidth}{0.4pt}
\begin{document}
\begin{titlepage}
\vspace*{5cm}
\begin{center}
{\Huge The uIP Embedded TCP/IP Stack}\\
\vspace*{1cm}
{\LARGE The uIP 1.0 Reference Manual}\\
\vspace*{3cm}
{\Large June 2006}\\
\vspace*{2cm}
\includegraphics[width=6cm]{../sicslogo.pdf}\\
\vspace*{1cm}
{\Large Adam Dunkels}\\
{\Large \texttt{adam@sics.se}}\\
\vspace*{1cm}
{\LARGE Swedish Institute of Computer Science}\\
\vspace*{0.5cm}
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
+120
View File
@@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: hello-world.c</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>hello-world.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**</span>
<a name="l00002"></a>00002 <span class="comment"> * \addtogroup helloworld</span>
<a name="l00003"></a>00003 <span class="comment"> * @{</span>
<a name="l00004"></a>00004 <span class="comment"> */</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">/**</span>
<a name="l00007"></a>00007 <span class="comment"> * \file</span>
<a name="l00008"></a>00008 <span class="comment"> * An example of how to write uIP applications</span>
<a name="l00009"></a>00009 <span class="comment"> * with protosockets.</span>
<a name="l00010"></a>00010 <span class="comment"> * \author</span>
<a name="l00011"></a>00011 <span class="comment"> * Adam Dunkels &lt;adam@sics.se&gt;</span>
<a name="l00012"></a>00012 <span class="comment"> */</span>
<a name="l00013"></a>00013
<a name="l00014"></a>00014 <span class="comment">/*</span>
<a name="l00015"></a>00015 <span class="comment"> * This is a short example of how to write uIP applications using</span>
<a name="l00016"></a>00016 <span class="comment"> * protosockets.</span>
<a name="l00017"></a>00017 <span class="comment"> */</span>
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="comment">/*</span>
<a name="l00020"></a>00020 <span class="comment"> * We define the application state (struct hello_world_state) in the</span>
<a name="l00021"></a>00021 <span class="comment"> * hello-world.h file, so we need to include it here. We also include</span>
<a name="l00022"></a>00022 <span class="comment"> * uip.h (since this cannot be included in hello-world.h) and</span>
<a name="l00023"></a>00023 <span class="comment"> * &lt;string.h&gt;, since we use the memcpy() function in the code.</span>
<a name="l00024"></a>00024 <span class="comment"> */</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="a00101.html">hello-world.h</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="a00136.html">uip.h</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00028"></a>00028
<a name="l00029"></a>00029 <span class="comment">/*</span>
<a name="l00030"></a>00030 <span class="comment"> * Declaration of the protosocket function that handles the connection</span>
<a name="l00031"></a>00031 <span class="comment"> * (defined at the end of the code).</span>
<a name="l00032"></a>00032 <span class="comment"> */</span>
<a name="l00033"></a>00033 <span class="keyword">static</span> <span class="keywordtype">int</span> handle_connection(<span class="keyword">struct</span> <a name="_a100"></a><a class="code" href="a00078.html">hello_world_state</a> *s);
<a name="l00034"></a>00034 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00035"></a>00035 <span class="comment">/*</span>
<a name="l00036"></a>00036 <span class="comment"> * The initialization function. We must explicitly call this function</span>
<a name="l00037"></a>00037 <span class="comment"> * from the system initialization code, some time after uip_init() is</span>
<a name="l00038"></a>00038 <span class="comment"> * called.</span>
<a name="l00039"></a>00039 <span class="comment"> */</span>
<a name="l00040"></a>00040 <span class="keywordtype">void</span>
<a name="l00041"></a>00041 <a name="a101"></a><a class="code" href="a00162.html#gb97849f0d3ea858eee790b69591e6427">hello_world_init</a>(<span class="keywordtype">void</span>)
<a name="l00042"></a>00042 {
<a name="l00043"></a>00043 <span class="comment">/* We start to listen for connections on TCP port 1000. */</span>
<a name="l00044"></a>00044 <a name="a102"></a><a class="code" href="a00147.html#gdd1ab3704ecd4900eec61a6897d32dc8">uip_listen</a>(<a name="a103"></a><a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(1000));
<a name="l00045"></a>00045 }
<a name="l00046"></a>00046 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00047"></a>00047 <span class="comment">/*</span>
<a name="l00048"></a>00048 <span class="comment"> * In hello-world.h we have defined the UIP_APPCALL macro to</span>
<a name="l00049"></a>00049 <span class="comment"> * hello_world_appcall so that this funcion is uIP's application</span>
<a name="l00050"></a>00050 <span class="comment"> * function. This function is called whenever an uIP event occurs</span>
<a name="l00051"></a>00051 <span class="comment"> * (e.g. when a new connection is established, new data arrives, sent</span>
<a name="l00052"></a>00052 <span class="comment"> * data is acknowledged, data needs to be retransmitted, etc.).</span>
<a name="l00053"></a>00053 <span class="comment"> */</span>
<a name="l00054"></a>00054 <span class="keywordtype">void</span>
<a name="l00055"></a>00055 <a name="a104"></a><a class="code" href="a00162.html#g03070adbf8faab0f34f87c1270964306">hello_world_appcall</a>(<span class="keywordtype">void</span>)
<a name="l00056"></a>00056 {
<a name="l00057"></a>00057 <span class="comment">/*</span>
<a name="l00058"></a>00058 <span class="comment"> * The uip_conn structure has a field called "appstate" that holds</span>
<a name="l00059"></a>00059 <span class="comment"> * the application state of the connection. We make a pointer to</span>
<a name="l00060"></a>00060 <span class="comment"> * this to access it easier.</span>
<a name="l00061"></a>00061 <span class="comment"> */</span>
<a name="l00062"></a>00062 <span class="keyword">struct </span><a class="code" href="a00078.html">hello_world_state</a> *s = &amp;(<a name="a105"></a><a class="code" href="a00150.html#g788ffac72342f6172343d7f8099cbe1a">uip_conn</a>-&gt;<a name="a106"></a><a class="code" href="a00088.html#97f9e1fda815bfb8b1f4577c355ade20">appstate</a>);
<a name="l00063"></a>00063
<a name="l00064"></a>00064 <span class="comment">/*</span>
<a name="l00065"></a>00065 <span class="comment"> * If a new connection was just established, we should initialize</span>
<a name="l00066"></a>00066 <span class="comment"> * the protosocket in our applications' state structure.</span>
<a name="l00067"></a>00067 <span class="comment"> */</span>
<a name="l00068"></a>00068 <span class="keywordflow">if</span>(<a name="a107"></a><a class="code" href="a00147.html#gdb971fb1525d0c5002f52125b05f3218">uip_connected</a>()) {
<a name="l00069"></a>00069 <a name="a108"></a><a class="code" href="a00158.html#g26ae707402e494f3895a9f012a93ea29">PSOCK_INIT</a>(&amp;s-&gt;<a name="a109"></a><a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>, s-&gt;<a name="a110"></a><a class="code" href="a00078.html#4b1b1436b50ed7638aece35f41421196">inputbuffer</a>, <span class="keyword">sizeof</span>(s-&gt;<a class="code" href="a00078.html#4b1b1436b50ed7638aece35f41421196">inputbuffer</a>));
<a name="l00070"></a>00070 }
<a name="l00071"></a>00071
<a name="l00072"></a>00072 <span class="comment">/*</span>
<a name="l00073"></a>00073 <span class="comment"> * Finally, we run the protosocket function that actually handles</span>
<a name="l00074"></a>00074 <span class="comment"> * the communication. We pass it a pointer to the application state</span>
<a name="l00075"></a>00075 <span class="comment"> * of the current connection.</span>
<a name="l00076"></a>00076 <span class="comment"> */</span>
<a name="l00077"></a>00077 handle_connection(s);
<a name="l00078"></a>00078 }
<a name="l00079"></a>00079 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00080"></a>00080 <span class="comment">/*</span>
<a name="l00081"></a>00081 <span class="comment"> * This is the protosocket function that handles the communication. A</span>
<a name="l00082"></a>00082 <span class="comment"> * protosocket function must always return an int, but must never</span>
<a name="l00083"></a>00083 <span class="comment"> * explicitly return - all return statements are hidden in the PSOCK</span>
<a name="l00084"></a>00084 <span class="comment"> * macros.</span>
<a name="l00085"></a>00085 <span class="comment"> */</span>
<a name="l00086"></a>00086 <span class="keyword">static</span> <span class="keywordtype">int</span>
<a name="l00087"></a>00087 handle_connection(<span class="keyword">struct</span> <a class="code" href="a00078.html">hello_world_state</a> *s)
<a name="l00088"></a>00088 {
<a name="l00089"></a>00089 <a name="a111"></a><a class="code" href="a00158.html#g84901a5aa60040e96d272a69977edd22">PSOCK_BEGIN</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>);
<a name="l00090"></a>00090
<a name="l00091"></a>00091 <a name="a112"></a><a class="code" href="a00158.html#gb0ad55aa96dd1d200cd0fc5a99f6a4f7">PSOCK_SEND_STR</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>, <span class="stringliteral">"Hello. What is your name?\n"</span>);
<a name="l00092"></a>00092 <a name="a113"></a><a class="code" href="a00158.html#gb5d9c0becf7cb32d0aaef466839dd92e">PSOCK_READTO</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>, <span class="charliteral">'\n'</span>);
<a name="l00093"></a>00093 strncpy(s-&gt;<a name="a114"></a><a class="code" href="a00078.html#4da86e9feb5e5835eb15163c2cb61116">name</a>, s-&gt;<a class="code" href="a00078.html#4b1b1436b50ed7638aece35f41421196">inputbuffer</a>, <span class="keyword">sizeof</span>(s-&gt;<a class="code" href="a00078.html#4da86e9feb5e5835eb15163c2cb61116">name</a>));
<a name="l00094"></a>00094 <a class="code" href="a00158.html#gb0ad55aa96dd1d200cd0fc5a99f6a4f7">PSOCK_SEND_STR</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>, <span class="stringliteral">"Hello "</span>);
<a name="l00095"></a>00095 <a class="code" href="a00158.html#gb0ad55aa96dd1d200cd0fc5a99f6a4f7">PSOCK_SEND_STR</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>, s-&gt;<a class="code" href="a00078.html#4da86e9feb5e5835eb15163c2cb61116">name</a>);
<a name="l00096"></a>00096 <a name="a115"></a><a class="code" href="a00158.html#g5d56800f82bfc7bbf53bb4a659589812">PSOCK_CLOSE</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>);
<a name="l00097"></a>00097
<a name="l00098"></a>00098 <a name="a116"></a><a class="code" href="a00158.html#g4a264bb64ae706d53f572b1d9e4037a2">PSOCK_END</a>(&amp;s-&gt;<a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>);
<a name="l00099"></a>00099 }
<a name="l00100"></a>00100 <span class="comment">/*---------------------------------------------------------------------------*/</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+72
View File
@@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: hello-world.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>hello-world.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**</span>
<a name="l00002"></a>00002 <span class="comment"> * \addtogroup apps</span>
<a name="l00003"></a>00003 <span class="comment"> * @{</span>
<a name="l00004"></a>00004 <span class="comment"> */</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">/**</span>
<a name="l00007"></a>00007 <span class="comment"> * \defgroup helloworld Hello, world</span>
<a name="l00008"></a>00008 <span class="comment"> * @{</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> * A small example showing how to write applications with</span>
<a name="l00011"></a>00011 <span class="comment"> * \ref psock "protosockets".</span>
<a name="l00012"></a>00012 <span class="comment"> */</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">/**</span>
<a name="l00015"></a>00015 <span class="comment"> * \file</span>
<a name="l00016"></a>00016 <span class="comment"> * Header file for an example of how to write uIP applications</span>
<a name="l00017"></a>00017 <span class="comment"> * with protosockets.</span>
<a name="l00018"></a>00018 <span class="comment"> * \author</span>
<a name="l00019"></a>00019 <span class="comment"> * Adam Dunkels &lt;adam@sics.se&gt;</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021
<a name="l00022"></a>00022 <span class="preprocessor">#ifndef __HELLO_WORLD_H__</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define __HELLO_WORLD_H__</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span>
<a name="l00025"></a>00025 <span class="comment">/* Since this file will be included by uip.h, we cannot include uip.h</span>
<a name="l00026"></a>00026 <span class="comment"> here. But we might need to include uipopt.h if we need the u8_t and</span>
<a name="l00027"></a>00027 <span class="comment"> u16_t datatypes. */</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="a00140.html">uipopt.h</a>"</span>
<a name="l00029"></a>00029
<a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="a00127.html">psock.h</a>"</span>
<a name="l00031"></a>00031
<a name="l00032"></a>00032 <span class="comment">/* Next, we define the uip_tcp_appstate_t datatype. This is the state</span>
<a name="l00033"></a>00033 <span class="comment"> of our application, and the memory required for this state is</span>
<a name="l00034"></a>00034 <span class="comment"> allocated together with each TCP connection. One application state</span>
<a name="l00035"></a>00035 <span class="comment"> for each TCP connection. */</span>
<a name="l00036"></a>00036 <span class="keyword">typedef</span> <span class="keyword">struct </span><a name="_a117"></a><a class="code" href="a00078.html">hello_world_state</a> {
<a name="l00037"></a>00037 <span class="keyword">struct </span><a name="_a118"></a><a class="code" href="a00082.html">psock</a> <a name="a119"></a><a class="code" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a>;
<a name="l00038"></a>00038 <span class="keywordtype">char</span> <a name="a120"></a><a class="code" href="a00078.html#4b1b1436b50ed7638aece35f41421196">inputbuffer</a>[10];
<a name="l00039"></a>00039 <span class="keywordtype">char</span> <a name="a121"></a><a class="code" href="a00078.html#4da86e9feb5e5835eb15163c2cb61116">name</a>[40];
<a name="l00040"></a>00040 } <a name="_a122"></a><a class="code" href="a00085.html">uip_tcp_appstate_t</a>;
<a name="l00041"></a>00041
<a name="l00042"></a>00042 <span class="comment">/* Finally we define the application function to be called by uIP. */</span>
<a name="l00043"></a>00043 <span class="keywordtype">void</span> <a name="a123"></a><a class="code" href="a00162.html#g03070adbf8faab0f34f87c1270964306">hello_world_appcall</a>(<span class="keywordtype">void</span>);
<a name="l00044"></a>00044 <span class="preprocessor">#ifndef UIP_APPCALL</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define UIP_APPCALL hello_world_appcall</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* UIP_APPCALL */</span>
<a name="l00047"></a>00047
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a name="a124"></a><a class="code" href="a00162.html#gb97849f0d3ea858eee790b69591e6427">hello_world_init</a>(<span class="keywordtype">void</span>);
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="preprocessor">#endif </span><span class="comment">/* __HELLO_WORLD_H__ */</span>
<a name="l00051"></a>00051 <span class="comment">/** @} */</span><span class="comment"></span>
<a name="l00052"></a>00052 <span class="comment">/** @} */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
File diff suppressed because it is too large Load Diff
+123
View File
@@ -0,0 +1,123 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: smtp.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>smtp.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment"></span>
<a name="l00002"></a>00002 <span class="comment">/**</span>
<a name="l00003"></a>00003 <span class="comment"> * \addtogroup smtp</span>
<a name="l00004"></a>00004 <span class="comment"> * @{</span>
<a name="l00005"></a>00005 <span class="comment"> */</span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">/**</span>
<a name="l00009"></a>00009 <span class="comment"> * \file</span>
<a name="l00010"></a>00010 <span class="comment"> * SMTP header file</span>
<a name="l00011"></a>00011 <span class="comment"> * \author Adam Dunkels &lt;adam@dunkels.com&gt;</span>
<a name="l00012"></a>00012 <span class="comment"> */</span>
<a name="l00013"></a>00013
<a name="l00014"></a>00014 <span class="comment">/*</span>
<a name="l00015"></a>00015 <span class="comment"> * Copyright (c) 2002, Adam Dunkels.</span>
<a name="l00016"></a>00016 <span class="comment"> * All rights reserved.</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00019"></a>00019 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00020"></a>00020 <span class="comment"> * are met:</span>
<a name="l00021"></a>00021 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00022"></a>00022 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
<a name="l00023"></a>00023 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00024"></a>00024 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
<a name="l00025"></a>00025 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
<a name="l00026"></a>00026 <span class="comment"> * 3. The name of the author may not be used to endorse or promote</span>
<a name="l00027"></a>00027 <span class="comment"> * products derived from this software without specific prior</span>
<a name="l00028"></a>00028 <span class="comment"> * written permission.</span>
<a name="l00029"></a>00029 <span class="comment"> *</span>
<a name="l00030"></a>00030 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS</span>
<a name="l00031"></a>00031 <span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span>
<a name="l00032"></a>00032 <span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00033"></a>00033 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY</span>
<a name="l00034"></a>00034 <span class="comment"> * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00035"></a>00035 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE</span>
<a name="l00036"></a>00036 <span class="comment"> * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
<a name="l00037"></a>00037 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,</span>
<a name="l00038"></a>00038 <span class="comment"> * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
<a name="l00039"></a>00039 <span class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
<a name="l00040"></a>00040 <span class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00041"></a>00041 <span class="comment"> *</span>
<a name="l00042"></a>00042 <span class="comment"> * This file is part of the uIP TCP/IP stack.</span>
<a name="l00043"></a>00043 <span class="comment"> *</span>
<a name="l00044"></a>00044 <span class="comment"> * $Id: smtp.h,v 1.4 2006/06/11 21:46:37 adam Exp $</span>
<a name="l00045"></a>00045 <span class="comment"> *</span>
<a name="l00046"></a>00046 <span class="comment"> */</span>
<a name="l00047"></a>00047 <span class="preprocessor">#ifndef __SMTP_H__</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define __SMTP_H__</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="preprocessor">#include "<a class="code" href="a00140.html">uipopt.h</a>"</span>
<a name="l00051"></a>00051 <span class="comment"></span>
<a name="l00052"></a>00052 <span class="comment">/**</span>
<a name="l00053"></a>00053 <span class="comment"> * Error number that signifies a non-error condition.</span>
<a name="l00054"></a>00054 <span class="comment"> */</span>
<a name="l00055"></a>00055 <span class="preprocessor">#define SMTP_ERR_OK 0</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00057"></a>00057 <span class="comment">/**</span>
<a name="l00058"></a>00058 <span class="comment"> * Callback function that is called when an e-mail transmission is</span>
<a name="l00059"></a>00059 <span class="comment"> * done.</span>
<a name="l00060"></a>00060 <span class="comment"> *</span>
<a name="l00061"></a>00061 <span class="comment"> * This function must be implemented by the module that uses the SMTP</span>
<a name="l00062"></a>00062 <span class="comment"> * module.</span>
<a name="l00063"></a>00063 <span class="comment"> *</span>
<a name="l00064"></a>00064 <span class="comment"> * \param error The number of the error if an error occured, or</span>
<a name="l00065"></a>00065 <span class="comment"> * SMTP_ERR_OK.</span>
<a name="l00066"></a>00066 <span class="comment"> */</span>
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a name="a195"></a><a class="code" href="a00161.html#gb1fc692a2700b7a51517724364683f67">smtp_done</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> error);
<a name="l00068"></a>00068
<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a name="a196"></a><a class="code" href="a00161.html#g64807ba7c221ddf735572d05021539f2">smtp_init</a>(<span class="keywordtype">void</span>);
<a name="l00070"></a>00070
<a name="l00071"></a>00071 <span class="comment">/* Functions. */</span>
<a name="l00072"></a>00072 <span class="keywordtype">void</span> smtp_configure(<span class="keywordtype">char</span> *localhostname, <a name="a197"></a><a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *smtpserver);
<a name="l00073"></a>00073 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> smtp_send(<span class="keywordtype">char</span> *to, <span class="keywordtype">char</span> *from,
<a name="l00074"></a>00074 <span class="keywordtype">char</span> *subject, <span class="keywordtype">char</span> *msg,
<a name="l00075"></a>00075 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> msglen);
<a name="l00076"></a>00076 <span class="preprocessor">#define SMTP_SEND(to, cc, from, subject, msg) \</span>
<a name="l00077"></a>00077 <span class="preprocessor"> smtp_send(to, cc, from, subject, msg, strlen(msg))</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span>
<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a name="a198"></a><a class="code" href="a00161.html#gbc331f73107958428bf1c392ba19b6f4">smtp_appcall</a>(<span class="keywordtype">void</span>);
<a name="l00080"></a>00080
<a name="l00081"></a>00081 <span class="keyword">struct </span><a name="_a199"></a><a class="code" href="a00085.html">smtp_state</a> {
<a name="l00082"></a>00082 <a name="a200"></a><a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> <a name="a201"></a><a class="code" href="a00085.html#0bb4f34164e7207c2db26b77f23ccfff">state</a>;
<a name="l00083"></a>00083 <span class="keywordtype">char</span> *to;
<a name="l00084"></a>00084 <span class="keywordtype">char</span> *from;
<a name="l00085"></a>00085 <span class="keywordtype">char</span> *subject;
<a name="l00086"></a>00086 <span class="keywordtype">char</span> *msg;
<a name="l00087"></a>00087 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> msglen;
<a name="l00088"></a>00088
<a name="l00089"></a>00089 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a202"></a><a class="code" href="a00085.html#68204df6bde3e3c27271ebde10579a57">sentlen</a>, <a name="a203"></a><a class="code" href="a00085.html#0560495c60c68d62617ff1f3d0c424a4">textlen</a>;
<a name="l00090"></a>00090 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a204"></a><a class="code" href="a00085.html#5ed2615cec9e633d90ac5968771976eb">sendptr</a>;
<a name="l00091"></a>00091
<a name="l00092"></a>00092 };
<a name="l00093"></a>00093
<a name="l00094"></a>00094
<a name="l00095"></a>00095 <span class="preprocessor">#ifndef UIP_APPCALL</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor">#define UIP_APPCALL smtp_appcall</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00085.html">smtp_state</a> <a name="a205"></a><a class="code" href="a00153.html#g69646a81a922033c5281445a71f8ffed">uip_tcp_appstate_t</a>;
<a name="l00099"></a>00099
<a name="l00100"></a>00100
<a name="l00101"></a>00101 <span class="preprocessor">#endif </span><span class="comment">/* __SMTP_H__ */</span>
<a name="l00102"></a>00102 <span class="comment"></span>
<a name="l00103"></a>00103 <span class="comment">/** @} */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+106
View File
@@ -0,0 +1,106 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: example-mainloop-with-arp.c</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>example-mainloop-with-arp.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "<a class="code" href="a00136.html">uip.h</a>"</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include "<a class="code" href="a00139.html">uip_arp.h</a>"</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include "network-device.h"</span>
<a name="l00004"></a>00004 <span class="preprocessor">#include "httpd.h"</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include "<a class="code" href="a00130.html">timer.h</a>"</span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="preprocessor">#define BUF ((struct uip_eth_hdr *)&amp;uip_buf[0])</span>
<a name="l00008"></a>00008 <span class="preprocessor"></span>
<a name="l00009"></a>00009 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00010"></a>00010 <span class="keywordtype">int</span>
<a name="l00011"></a>00011 main(<span class="keywordtype">void</span>)
<a name="l00012"></a>00012 {
<a name="l00013"></a>00013 <span class="keywordtype">int</span> i;
<a name="l00014"></a>00014 <a name="a60"></a><a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
<a name="l00015"></a>00015 <span class="keyword">struct </span><a name="_a61"></a><a class="code" href="a00087.html">timer</a> periodic_timer, arp_timer;
<a name="l00016"></a>00016
<a name="l00017"></a>00017 <a name="a62"></a><a class="code" href="a00156.html#g6614d96fdfcd95c95ec6e6f63071ff51">timer_set</a>(&amp;periodic_timer, <a name="a63"></a><a class="code" href="a00157.html#ge3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a> / 2);
<a name="l00018"></a>00018 <a class="code" href="a00156.html#g6614d96fdfcd95c95ec6e6f63071ff51">timer_set</a>(&amp;arp_timer, <a class="code" href="a00157.html#ge3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a> * 10);
<a name="l00019"></a>00019
<a name="l00020"></a>00020 network_device_init();
<a name="l00021"></a>00021 <a name="a64"></a><a class="code" href="a00145.html#gc48ed5f0d27721ef62a3ed02a5ad8d2e">uip_init</a>();
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <a name="a65"></a><a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(ipaddr, 192,168,0,2);
<a name="l00024"></a>00024 <a name="a66"></a><a class="code" href="a00144.html#g12b467f314489259dd718228d0827a51">uip_sethostaddr</a>(ipaddr);
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <a name="a67"></a><a class="code" href="a00164.html#gc364305cee969a0be43c071722b136e6">httpd_init</a>();
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="keywordflow">while</span>(1) {
<a name="l00029"></a>00029 <a name="a68"></a><a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> = network_device_read();
<a name="l00030"></a>00030 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00031"></a>00031 <span class="keywordflow">if</span>(<a name="a69"></a><a class="code" href="a00150.html#g24f52ac52d6e714cb04a5aa01be3bdd0">BUF</a>-&gt;type == <a name="a70"></a><a class="code" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons</a>(<a name="a71"></a><a class="code" href="a00152.html#g03d140db75de3d3cdfbbab1c4fed8d8d">UIP_ETHTYPE_IP</a>)) {
<a name="l00032"></a>00032 <a name="a72"></a><a class="code" href="a00152.html#g737337d6a51e31b236c8233d024138a8">uip_arp_ipin</a>();
<a name="l00033"></a>00033 <a name="a73"></a><a class="code" href="a00146.html#ga4360412ee9350fba725f98a137169fe">uip_input</a>();
<a name="l00034"></a>00034 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00035"></a>00035 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00036"></a>00036 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00037"></a>00037 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00038"></a>00038 <a name="a74"></a><a class="code" href="a00152.html#g54b27e45df15e10a0eb1a3e3a91417d2">uip_arp_out</a>();
<a name="l00039"></a>00039 network_device_send();
<a name="l00040"></a>00040 }
<a name="l00041"></a>00041 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a00150.html#g24f52ac52d6e714cb04a5aa01be3bdd0">BUF</a>-&gt;type == <a class="code" href="a00148.html#ga22b04cac8cf283ca12f028578bebc06">htons</a>(<a name="a75"></a><a class="code" href="a00152.html#g3e1562e8a6de32268e5df92a52152f91">UIP_ETHTYPE_ARP</a>)) {
<a name="l00042"></a>00042 <a name="a76"></a><a class="code" href="a00152.html#g902c4a360134096224bc2655f623aa5f">uip_arp_arpin</a>();
<a name="l00043"></a>00043 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00044"></a>00044 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00045"></a>00045 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00046"></a>00046 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00047"></a>00047 network_device_send();
<a name="l00048"></a>00048 }
<a name="l00049"></a>00049 }
<a name="l00050"></a>00050
<a name="l00051"></a>00051 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a name="a77"></a><a class="code" href="a00156.html#g6d71dececfce707c668e6257aad5906e">timer_expired</a>(&amp;periodic_timer)) {
<a name="l00052"></a>00052 <a name="a78"></a><a class="code" href="a00156.html#gedaf3e48c2b04229b85455fb948468d6">timer_reset</a>(&amp;periodic_timer);
<a name="l00053"></a>00053 <span class="keywordflow">for</span>(i = 0; i &lt; <a name="a79"></a><a class="code" href="a00153.html#gf5fe83be78b78b9e7d9e7f1e34ab1cc5">UIP_CONNS</a>; i++) {
<a name="l00054"></a>00054 <a name="a80"></a><a class="code" href="a00146.html#g1024f8a5fa65e82bf848b2e6590d9628">uip_periodic</a>(i);
<a name="l00055"></a>00055 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00056"></a>00056 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00057"></a>00057 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00058"></a>00058 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00059"></a>00059 <a class="code" href="a00152.html#g54b27e45df15e10a0eb1a3e3a91417d2">uip_arp_out</a>();
<a name="l00060"></a>00060 network_device_send();
<a name="l00061"></a>00061 }
<a name="l00062"></a>00062 }
<a name="l00063"></a>00063
<a name="l00064"></a>00064 <span class="preprocessor">#if UIP_UDP</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span> <span class="keywordflow">for</span>(i = 0; i &lt; <a name="a81"></a><a class="code" href="a00153.html#g196379ceb1219a99f4495e41ccc9bbfb">UIP_UDP_CONNS</a>; i++) {
<a name="l00066"></a>00066 <a name="a82"></a><a class="code" href="a00146.html#g2c64c8c36bc84f9336f6a2184ea51883">uip_udp_periodic</a>(i);
<a name="l00067"></a>00067 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00068"></a>00068 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00069"></a>00069 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00070"></a>00070 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00071"></a>00071 <a class="code" href="a00152.html#g54b27e45df15e10a0eb1a3e3a91417d2">uip_arp_out</a>();
<a name="l00072"></a>00072 network_device_send();
<a name="l00073"></a>00073 }
<a name="l00074"></a>00074 }
<a name="l00075"></a>00075 <span class="preprocessor">#endif </span><span class="comment">/* UIP_UDP */</span>
<a name="l00076"></a>00076
<a name="l00077"></a>00077 <span class="comment">/* Call the ARP timer function every 10 seconds. */</span>
<a name="l00078"></a>00078 <span class="keywordflow">if</span>(<a class="code" href="a00156.html#g6d71dececfce707c668e6257aad5906e">timer_expired</a>(&amp;arp_timer)) {
<a name="l00079"></a>00079 <a class="code" href="a00156.html#gedaf3e48c2b04229b85455fb948468d6">timer_reset</a>(&amp;arp_timer);
<a name="l00080"></a>00080 <a name="a83"></a><a class="code" href="a00152.html#g058a8e6025f67b021862281f1911fcef">uip_arp_timer</a>();
<a name="l00081"></a>00081 }
<a name="l00082"></a>00082 }
<a name="l00083"></a>00083 }
<a name="l00084"></a>00084 <span class="keywordflow">return</span> 0;
<a name="l00085"></a>00085 }
<a name="l00086"></a>00086 <span class="comment">/*---------------------------------------------------------------------------*/</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+82
View File
@@ -0,0 +1,82 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: example-mainloop-without-arp.c</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>example-mainloop-without-arp.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "<a class="code" href="a00136.html">uip.h</a>"</span>
<a name="l00002"></a>00002 <span class="preprocessor">#include "<a class="code" href="a00139.html">uip_arp.h</a>"</span>
<a name="l00003"></a>00003 <span class="preprocessor">#include "network-device.h"</span>
<a name="l00004"></a>00004 <span class="preprocessor">#include "httpd.h"</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include "<a class="code" href="a00130.html">timer.h</a>"</span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00008"></a>00008 <span class="keywordtype">int</span>
<a name="l00009"></a>00009 main(<span class="keywordtype">void</span>)
<a name="l00010"></a>00010 {
<a name="l00011"></a>00011 <span class="keywordtype">int</span> i;
<a name="l00012"></a>00012 <a name="a84"></a><a class="code" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a> ipaddr;
<a name="l00013"></a>00013 <span class="keyword">struct </span><a name="_a85"></a><a class="code" href="a00087.html">timer</a> periodic_timer;
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <a name="a86"></a><a class="code" href="a00156.html#g6614d96fdfcd95c95ec6e6f63071ff51">timer_set</a>(&amp;periodic_timer, <a name="a87"></a><a class="code" href="a00157.html#ge3ced0551b26c9b99cb45a86f34d100a">CLOCK_SECOND</a> / 2);
<a name="l00016"></a>00016
<a name="l00017"></a>00017 network_device_init();
<a name="l00018"></a>00018 <a name="a88"></a><a class="code" href="a00145.html#gc48ed5f0d27721ef62a3ed02a5ad8d2e">uip_init</a>();
<a name="l00019"></a>00019
<a name="l00020"></a>00020 <a name="a89"></a><a class="code" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr</a>(ipaddr, 192,168,0,2);
<a name="l00021"></a>00021 <a name="a90"></a><a class="code" href="a00144.html#g12b467f314489259dd718228d0827a51">uip_sethostaddr</a>(ipaddr);
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <a name="a91"></a><a class="code" href="a00164.html#gc364305cee969a0be43c071722b136e6">httpd_init</a>();
<a name="l00024"></a>00024
<a name="l00025"></a>00025 <span class="keywordflow">while</span>(1) {
<a name="l00026"></a>00026 <a name="a92"></a><a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> = network_device_read();
<a name="l00027"></a>00027 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00028"></a>00028 <a name="a93"></a><a class="code" href="a00146.html#ga4360412ee9350fba725f98a137169fe">uip_input</a>();
<a name="l00029"></a>00029 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00030"></a>00030 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00031"></a>00031 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00032"></a>00032 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00033"></a>00033 network_device_send();
<a name="l00034"></a>00034 }
<a name="l00035"></a>00035 } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a name="a94"></a><a class="code" href="a00156.html#g6d71dececfce707c668e6257aad5906e">timer_expired</a>(&amp;periodic_timer)) {
<a name="l00036"></a>00036 <a name="a95"></a><a class="code" href="a00156.html#gedaf3e48c2b04229b85455fb948468d6">timer_reset</a>(&amp;periodic_timer);
<a name="l00037"></a>00037 <span class="keywordflow">for</span>(i = 0; i &lt; <a name="a96"></a><a class="code" href="a00153.html#gf5fe83be78b78b9e7d9e7f1e34ab1cc5">UIP_CONNS</a>; i++) {
<a name="l00038"></a>00038 <a name="a97"></a><a class="code" href="a00146.html#g1024f8a5fa65e82bf848b2e6590d9628">uip_periodic</a>(i);
<a name="l00039"></a>00039 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00040"></a>00040 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00041"></a>00041 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00042"></a>00042 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00043"></a>00043 network_device_send();
<a name="l00044"></a>00044 }
<a name="l00045"></a>00045 }
<a name="l00046"></a>00046
<a name="l00047"></a>00047 <span class="preprocessor">#if UIP_UDP</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span> <span class="keywordflow">for</span>(i = 0; i &lt; <a name="a98"></a><a class="code" href="a00153.html#g196379ceb1219a99f4495e41ccc9bbfb">UIP_UDP_CONNS</a>; i++) {
<a name="l00049"></a>00049 <a name="a99"></a><a class="code" href="a00146.html#g2c64c8c36bc84f9336f6a2184ea51883">uip_udp_periodic</a>(i);
<a name="l00050"></a>00050 <span class="comment">/* If the above function invocation resulted in data that</span>
<a name="l00051"></a>00051 <span class="comment"> should be sent out on the network, the global variable</span>
<a name="l00052"></a>00052 <span class="comment"> uip_len is set to a value &gt; 0. */</span>
<a name="l00053"></a>00053 <span class="keywordflow">if</span>(<a class="code" href="a00149.html#g12a33f0c09711167bdf3dd7d7cf8c5a1">uip_len</a> &gt; 0) {
<a name="l00054"></a>00054 network_device_send();
<a name="l00055"></a>00055 }
<a name="l00056"></a>00056 }
<a name="l00057"></a>00057 <span class="preprocessor">#endif </span><span class="comment">/* UIP_UDP */</span>
<a name="l00058"></a>00058 }
<a name="l00059"></a>00059 }
<a name="l00060"></a>00060 <span class="keywordflow">return</span> 0;
<a name="l00061"></a>00061 }
<a name="l00062"></a>00062 <span class="comment">/*---------------------------------------------------------------------------*/</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
File diff suppressed because it is too large Load Diff
+83
View File
@@ -0,0 +1,83 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: telnetd.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>telnetd.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2003, Adam Dunkels.</span>
<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00007"></a>00007 <span class="comment"> * are met:</span>
<a name="l00008"></a>00008 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00009"></a>00009 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
<a name="l00010"></a>00010 <span class="comment"> * 2. Redistributions in binary form must reproduce the above</span>
<a name="l00011"></a>00011 <span class="comment"> * copyright notice, this list of conditions and the following</span>
<a name="l00012"></a>00012 <span class="comment"> * disclaimer in the documentation and/or other materials provided</span>
<a name="l00013"></a>00013 <span class="comment"> * with the distribution.</span>
<a name="l00014"></a>00014 <span class="comment"> * 3. The name of the author may not be used to endorse or promote</span>
<a name="l00015"></a>00015 <span class="comment"> * products derived from this software without specific prior</span>
<a name="l00016"></a>00016 <span class="comment"> * written permission.</span>
<a name="l00017"></a>00017 <span class="comment"> *</span>
<a name="l00018"></a>00018 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS</span>
<a name="l00019"></a>00019 <span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span>
<a name="l00020"></a>00020 <span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00021"></a>00021 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY</span>
<a name="l00022"></a>00022 <span class="comment"> * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00023"></a>00023 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE</span>
<a name="l00024"></a>00024 <span class="comment"> * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
<a name="l00025"></a>00025 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,</span>
<a name="l00026"></a>00026 <span class="comment"> * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
<a name="l00027"></a>00027 <span class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
<a name="l00028"></a>00028 <span class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00029"></a>00029 <span class="comment"> *</span>
<a name="l00030"></a>00030 <span class="comment"> * This file is part of the uIP TCP/IP stack</span>
<a name="l00031"></a>00031 <span class="comment"> *</span>
<a name="l00032"></a>00032 <span class="comment"> * $Id: telnetd.h,v 1.2 2006/06/07 09:43:54 adam Exp $</span>
<a name="l00033"></a>00033 <span class="comment"> *</span>
<a name="l00034"></a>00034 <span class="comment"> */</span>
<a name="l00035"></a>00035 <span class="preprocessor">#ifndef __TELNETD_H__</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define __TELNETD_H__</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="a00140.html">uipopt.h</a>"</span>
<a name="l00039"></a>00039
<a name="l00040"></a>00040 <span class="keywordtype">void</span> telnetd_appcall(<span class="keywordtype">void</span>);
<a name="l00041"></a>00041
<a name="l00042"></a>00042 <span class="preprocessor">#ifndef TELNETD_CONF_LINELEN</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#define TELNETD_CONF_LINELEN 40</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#ifndef TELNETD_CONF_NUMLINES</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define TELNETD_CONF_NUMLINES 16</span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span>
<a name="l00049"></a>00049 <span class="keyword">struct </span><a name="_a242"></a><a class="code" href="a00086.html">telnetd_state</a> {
<a name="l00050"></a>00050 <span class="keywordtype">char</span> *<a name="a243"></a><a class="code" href="a00086.html#cca775e46d4405b7775b328f7694f7e7">lines</a>[TELNETD_CONF_NUMLINES];
<a name="l00051"></a>00051 <span class="keywordtype">char</span> <a name="a244"></a><a class="code" href="a00086.html#54a466311575a727830a92a6c3621cb2">buf</a>[TELNETD_CONF_LINELEN];
<a name="l00052"></a>00052 <span class="keywordtype">char</span> bufptr;
<a name="l00053"></a>00053 <a name="a245"></a><a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> <a name="a246"></a><a class="code" href="a00086.html#d85fc90c30d1fc37c63c4844be5fe09d">numsent</a>;
<a name="l00054"></a>00054 <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> <a name="a247"></a><a class="code" href="a00086.html#41bf109b6a45328d5744c0a76563fb6c">state</a>;
<a name="l00055"></a>00055 };
<a name="l00056"></a>00056
<a name="l00057"></a>00057 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00086.html">telnetd_state</a> <a name="a248"></a><a class="code" href="a00153.html#g69646a81a922033c5281445a71f8ffed">uip_tcp_appstate_t</a>;
<a name="l00058"></a>00058
<a name="l00059"></a>00059 <span class="preprocessor">#ifndef UIP_APPCALL</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define UIP_APPCALL telnetd_appcall</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span>
<a name="l00063"></a>00063 <span class="preprocessor">#endif </span><span class="comment">/* __TELNETD_H__ */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
File diff suppressed because it is too large Load Diff
+95
View File
@@ -0,0 +1,95 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: resolv.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>resolv.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**</span>
<a name="l00002"></a>00002 <span class="comment"> * \addtogroup resolv</span>
<a name="l00003"></a>00003 <span class="comment"> * @{</span>
<a name="l00004"></a>00004 <span class="comment"> */</span><span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">/**</span>
<a name="l00006"></a>00006 <span class="comment"> * \file</span>
<a name="l00007"></a>00007 <span class="comment"> * DNS resolver code header file.</span>
<a name="l00008"></a>00008 <span class="comment"> * \author Adam Dunkels &lt;adam@dunkels.com&gt;</span>
<a name="l00009"></a>00009 <span class="comment"> */</span>
<a name="l00010"></a>00010
<a name="l00011"></a>00011 <span class="comment">/*</span>
<a name="l00012"></a>00012 <span class="comment"> * Copyright (c) 2002-2003, Adam Dunkels.</span>
<a name="l00013"></a>00013 <span class="comment"> * All rights reserved.</span>
<a name="l00014"></a>00014 <span class="comment"> *</span>
<a name="l00015"></a>00015 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00016"></a>00016 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00017"></a>00017 <span class="comment"> * are met:</span>
<a name="l00018"></a>00018 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00019"></a>00019 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
<a name="l00020"></a>00020 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00021"></a>00021 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
<a name="l00022"></a>00022 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
<a name="l00023"></a>00023 <span class="comment"> * 3. The name of the author may not be used to endorse or promote</span>
<a name="l00024"></a>00024 <span class="comment"> * products derived from this software without specific prior</span>
<a name="l00025"></a>00025 <span class="comment"> * written permission.</span>
<a name="l00026"></a>00026 <span class="comment"> *</span>
<a name="l00027"></a>00027 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS</span>
<a name="l00028"></a>00028 <span class="comment"> * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span>
<a name="l00029"></a>00029 <span class="comment"> * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00030"></a>00030 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY</span>
<a name="l00031"></a>00031 <span class="comment"> * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00032"></a>00032 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE</span>
<a name="l00033"></a>00033 <span class="comment"> * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span>
<a name="l00034"></a>00034 <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,</span>
<a name="l00035"></a>00035 <span class="comment"> * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
<a name="l00036"></a>00036 <span class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
<a name="l00037"></a>00037 <span class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00038"></a>00038 <span class="comment"> *</span>
<a name="l00039"></a>00039 <span class="comment"> * This file is part of the uIP TCP/IP stack.</span>
<a name="l00040"></a>00040 <span class="comment"> *</span>
<a name="l00041"></a>00041 <span class="comment"> * $Id: resolv.h,v 1.4 2006/06/11 21:46:37 adam Exp $</span>
<a name="l00042"></a>00042 <span class="comment"> *</span>
<a name="l00043"></a>00043 <span class="comment"> */</span>
<a name="l00044"></a>00044 <span class="preprocessor">#ifndef __RESOLV_H__</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define __RESOLV_H__</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00047"></a>00047 <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00153.html#ga92afb113e122f860392bfbd385f842e">uip_udp_appstate_t</a>;
<a name="l00048"></a>00048 <span class="keywordtype">void</span> <a name="a155"></a><a class="code" href="a00160.html#g7c5359305008e9183b18d6ab75f568bf">resolv_appcall</a>(<span class="keywordtype">void</span>);
<a name="l00049"></a>00049 <span class="preprocessor">#define UIP_UDP_APPCALL resolv_appcall</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span>
<a name="l00051"></a>00051 <span class="preprocessor">#include "<a class="code" href="a00140.html">uipopt.h</a>"</span>
<a name="l00052"></a>00052 <span class="comment"></span>
<a name="l00053"></a>00053 <span class="comment">/**</span>
<a name="l00054"></a>00054 <span class="comment"> * Callback function which is called when a hostname is found.</span>
<a name="l00055"></a>00055 <span class="comment"> *</span>
<a name="l00056"></a>00056 <span class="comment"> * This function must be implemented by the module that uses the DNS</span>
<a name="l00057"></a>00057 <span class="comment"> * resolver. It is called when a hostname is found, or when a hostname</span>
<a name="l00058"></a>00058 <span class="comment"> * was not found.</span>
<a name="l00059"></a>00059 <span class="comment"> *</span>
<a name="l00060"></a>00060 <span class="comment"> * \param name A pointer to the name that was looked up. \param</span>
<a name="l00061"></a>00061 <span class="comment"> * ipaddr A pointer to a 4-byte array containing the IP address of the</span>
<a name="l00062"></a>00062 <span class="comment"> * hostname, or NULL if the hostname could not be found.</span>
<a name="l00063"></a>00063 <span class="comment"> */</span>
<a name="l00064"></a>00064 <span class="keywordtype">void</span> <a name="a156"></a><a class="code" href="a00160.html#g6d9751d534453425c7a5a215d1d4414c">resolv_found</a>(<span class="keywordtype">char</span> *name, <a name="a157"></a><a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *ipaddr);
<a name="l00065"></a>00065
<a name="l00066"></a>00066 <span class="comment">/* Functions. */</span>
<a name="l00067"></a>00067 <span class="keywordtype">void</span> <a name="a158"></a><a class="code" href="a00160.html#gdf916e0c752f5cda70d0bddb2be422ba">resolv_conf</a>(<a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *dnsserver);
<a name="l00068"></a>00068 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *<a name="a159"></a><a class="code" href="a00160.html#g3191066cf8f76bd00b6843b77c37068f">resolv_getserver</a>(<span class="keywordtype">void</span>);
<a name="l00069"></a>00069 <span class="keywordtype">void</span> <a name="a160"></a><a class="code" href="a00160.html#gb50f78bbf36d912d69f6c1685d0b40e3">resolv_init</a>(<span class="keywordtype">void</span>);
<a name="l00070"></a>00070 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *<a name="a161"></a><a class="code" href="a00160.html#g66d19181ad5fe8b8f7c84d1f1d46a2ec">resolv_lookup</a>(<span class="keywordtype">char</span> *name);
<a name="l00071"></a>00071 <span class="keywordtype">void</span> <a name="a162"></a><a class="code" href="a00160.html#ge4dcbbe6c641d2e3b8537b479df5fc99">resolv_query</a>(<span class="keywordtype">char</span> *name);
<a name="l00072"></a>00072
<a name="l00073"></a>00073 <span class="preprocessor">#endif </span><span class="comment">/* __RESOLV_H__ */</span>
<a name="l00074"></a>00074 <span class="comment"></span>
<a name="l00075"></a>00075 <span class="comment">/** @} */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
File diff suppressed because it is too large Load Diff
+88
View File
@@ -0,0 +1,88 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: dhcpc.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>dhcpc.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2005, Swedish Institute of Computer Science</span>
<a name="l00003"></a>00003 <span class="comment"> * All rights reserved.</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00007"></a>00007 <span class="comment"> * are met:</span>
<a name="l00008"></a>00008 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00009"></a>00009 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
<a name="l00010"></a>00010 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00011"></a>00011 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
<a name="l00012"></a>00012 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
<a name="l00013"></a>00013 <span class="comment"> * 3. Neither the name of the Institute nor the names of its contributors</span>
<a name="l00014"></a>00014 <span class="comment"> * may be used to endorse or promote products derived from this software</span>
<a name="l00015"></a>00015 <span class="comment"> * without specific prior written permission.</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND</span>
<a name="l00018"></a>00018 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
<a name="l00019"></a>00019 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00020"></a>00020 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE</span>
<a name="l00021"></a>00021 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00022"></a>00022 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
<a name="l00023"></a>00023 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
<a name="l00024"></a>00024 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
<a name="l00025"></a>00025 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
<a name="l00026"></a>00026 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
<a name="l00027"></a>00027 <span class="comment"> * SUCH DAMAGE.</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * This file is part of the uIP TCP/IP stack</span>
<a name="l00030"></a>00030 <span class="comment"> *</span>
<a name="l00031"></a>00031 <span class="comment"> * @(#)$Id: dhcpc.h,v 1.3 2006/06/11 21:46:37 adam Exp $</span>
<a name="l00032"></a>00032 <span class="comment"> */</span>
<a name="l00033"></a>00033 <span class="preprocessor">#ifndef __DHCPC_H__</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define __DHCPC_H__</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="a00130.html">timer.h</a>"</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="a00128.html">pt.h</a>"</span>
<a name="l00038"></a>00038
<a name="l00039"></a>00039 <span class="keyword">struct </span><a name="_a43"></a><a class="code" href="a00077.html">dhcpc_state</a> {
<a name="l00040"></a>00040 <span class="keyword">struct </span><a name="_a44"></a><a class="code" href="a00084.html">pt</a> <a name="a45"></a><a class="code" href="a00077.html#31471b5e27bda51832d0fa49bd6d9b54">pt</a>;
<a name="l00041"></a>00041 <span class="keywordtype">char</span> <a name="a46"></a><a class="code" href="a00077.html#e0b137a3875ad12a99e5e3e0e177fd12">state</a>;
<a name="l00042"></a>00042 <span class="keyword">struct </span><a name="_a47"></a><a class="code" href="a00095.html">uip_udp_conn</a> *<a name="a48"></a><a class="code" href="a00077.html#cfd36e02c7498d766ff802575e981612">conn</a>;
<a name="l00043"></a>00043 <span class="keyword">struct </span><a name="_a49"></a><a class="code" href="a00087.html">timer</a> <a name="a50"></a><a class="code" href="a00077.html#e80af46ceef63eab3c786525370ae720">timer</a>;
<a name="l00044"></a>00044 <a name="a51"></a><a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a52"></a><a class="code" href="a00077.html#e707c39412e09d3a47f0b3c5dad33725">ticks</a>;
<a name="l00045"></a>00045 <span class="keyword">const</span> <span class="keywordtype">void</span> *mac_addr;
<a name="l00046"></a>00046 <span class="keywordtype">int</span> mac_len;
<a name="l00047"></a>00047
<a name="l00048"></a>00048 <a name="a53"></a><a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> <a name="a54"></a><a class="code" href="a00077.html#564bab93ef6a268a5de2fab885c1d32a">serverid</a>[4];
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a55"></a><a class="code" href="a00077.html#7a520a57d7d0541524f34a7685635597">lease_time</a>[2];
<a name="l00051"></a>00051 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> ipaddr[2];
<a name="l00052"></a>00052 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a56"></a><a class="code" href="a00077.html#20541305548441e5dcb2e1e7e6f300eb">netmask</a>[2];
<a name="l00053"></a>00053 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a57"></a><a class="code" href="a00077.html#27df2817055bc099821d96eb60a40b34">dnsaddr</a>[2];
<a name="l00054"></a>00054 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> <a name="a58"></a><a class="code" href="a00077.html#5e16ca335dfd7394527f602da879fca2">default_router</a>[2];
<a name="l00055"></a>00055 };
<a name="l00056"></a>00056
<a name="l00057"></a>00057 <span class="keywordtype">void</span> dhcpc_init(<span class="keyword">const</span> <span class="keywordtype">void</span> *mac_addr, <span class="keywordtype">int</span> mac_len);
<a name="l00058"></a>00058 <span class="keywordtype">void</span> dhcpc_request(<span class="keywordtype">void</span>);
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="keywordtype">void</span> dhcpc_appcall(<span class="keywordtype">void</span>);
<a name="l00061"></a>00061
<a name="l00062"></a>00062 <span class="keywordtype">void</span> dhcpc_configured(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="a00077.html">dhcpc_state</a> *s);
<a name="l00063"></a>00063
<a name="l00064"></a>00064 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="a00077.html">dhcpc_state</a> <a name="a59"></a><a class="code" href="a00153.html#ga92afb113e122f860392bfbd385f842e">uip_udp_appstate_t</a>;
<a name="l00065"></a>00065 <span class="preprocessor">#define UIP_UDP_APPCALL dhcpc_appcall</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span>
<a name="l00067"></a>00067
<a name="l00068"></a>00068 <span class="preprocessor">#endif </span><span class="comment">/* __DHCPC_H__ */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+177
View File
@@ -0,0 +1,177 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip-conf.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>uip-conf.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/**</span>
<a name="l00002"></a>00002 <span class="comment"> * \addtogroup uipopt</span>
<a name="l00003"></a>00003 <span class="comment"> * @{</span>
<a name="l00004"></a>00004 <span class="comment"> */</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">/**</span>
<a name="l00007"></a>00007 <span class="comment"> * \name Project-specific configuration options</span>
<a name="l00008"></a>00008 <span class="comment"> * @{</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> * uIP has a number of configuration options that can be overridden</span>
<a name="l00011"></a>00011 <span class="comment"> * for each project. These are kept in a project-specific uip-conf.h</span>
<a name="l00012"></a>00012 <span class="comment"> * file and all configuration names have the prefix UIP_CONF.</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="comment">/*</span>
<a name="l00016"></a>00016 <span class="comment"> * Copyright (c) 2006, Swedish Institute of Computer Science.</span>
<a name="l00017"></a>00017 <span class="comment"> * All rights reserved.</span>
<a name="l00018"></a>00018 <span class="comment"> *</span>
<a name="l00019"></a>00019 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
<a name="l00020"></a>00020 <span class="comment"> * modification, are permitted provided that the following conditions</span>
<a name="l00021"></a>00021 <span class="comment"> * are met:</span>
<a name="l00022"></a>00022 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span>
<a name="l00023"></a>00023 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
<a name="l00024"></a>00024 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span>
<a name="l00025"></a>00025 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
<a name="l00026"></a>00026 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
<a name="l00027"></a>00027 <span class="comment"> * 3. Neither the name of the Institute nor the names of its contributors</span>
<a name="l00028"></a>00028 <span class="comment"> * may be used to endorse or promote products derived from this software</span>
<a name="l00029"></a>00029 <span class="comment"> * without specific prior written permission.</span>
<a name="l00030"></a>00030 <span class="comment"> *</span>
<a name="l00031"></a>00031 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND</span>
<a name="l00032"></a>00032 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span>
<a name="l00033"></a>00033 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span>
<a name="l00034"></a>00034 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE</span>
<a name="l00035"></a>00035 <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span>
<a name="l00036"></a>00036 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span>
<a name="l00037"></a>00037 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span>
<a name="l00038"></a>00038 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span>
<a name="l00039"></a>00039 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span>
<a name="l00040"></a>00040 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span>
<a name="l00041"></a>00041 <span class="comment"> * SUCH DAMAGE.</span>
<a name="l00042"></a>00042 <span class="comment"> *</span>
<a name="l00043"></a>00043 <span class="comment"> * This file is part of the uIP TCP/IP stack</span>
<a name="l00044"></a>00044 <span class="comment"> *</span>
<a name="l00045"></a>00045 <span class="comment"> * $Id: uip-conf.h,v 1.6 2006/06/12 08:00:31 adam Exp $</span>
<a name="l00046"></a>00046 <span class="comment"> */</span>
<a name="l00047"></a>00047 <span class="comment"></span>
<a name="l00048"></a>00048 <span class="comment">/**</span>
<a name="l00049"></a>00049 <span class="comment"> * \file</span>
<a name="l00050"></a>00050 <span class="comment"> * An example uIP configuration file</span>
<a name="l00051"></a>00051 <span class="comment"> * \author</span>
<a name="l00052"></a>00052 <span class="comment"> * Adam Dunkels &lt;adam@sics.se&gt;</span>
<a name="l00053"></a>00053 <span class="comment"> */</span>
<a name="l00054"></a>00054
<a name="l00055"></a>00055 <span class="preprocessor">#ifndef __UIP_CONF_H__</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define __UIP_CONF_H__</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span>
<a name="l00058"></a>00058 <span class="preprocessor">#include &lt;inttypes.h&gt;</span>
<a name="l00059"></a>00059 <span class="comment"></span>
<a name="l00060"></a>00060 <span class="comment">/**</span>
<a name="l00061"></a>00061 <span class="comment"> * 8 bit datatype</span>
<a name="l00062"></a>00062 <span class="comment"> *</span>
<a name="l00063"></a>00063 <span class="comment"> * This typedef defines the 8-bit type used throughout uIP.</span>
<a name="l00064"></a>00064 <span class="comment"> *</span>
<a name="l00065"></a>00065 <span class="comment"> * \hideinitializer</span>
<a name="l00066"></a>00066 <span class="comment"> */</span>
<a name="l00067"></a>00067 <span class="keyword">typedef</span> uint8_t <a name="a249"></a><a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>;
<a name="l00068"></a>00068 <span class="comment"></span>
<a name="l00069"></a>00069 <span class="comment">/**</span>
<a name="l00070"></a>00070 <span class="comment"> * 16 bit datatype</span>
<a name="l00071"></a>00071 <span class="comment"> *</span>
<a name="l00072"></a>00072 <span class="comment"> * This typedef defines the 16-bit type used throughout uIP.</span>
<a name="l00073"></a>00073 <span class="comment"> *</span>
<a name="l00074"></a>00074 <span class="comment"> * \hideinitializer</span>
<a name="l00075"></a>00075 <span class="comment"> */</span>
<a name="l00076"></a>00076 <span class="keyword">typedef</span> uint16_t <a name="a250"></a><a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>;
<a name="l00077"></a>00077 <span class="comment"></span>
<a name="l00078"></a>00078 <span class="comment">/**</span>
<a name="l00079"></a>00079 <span class="comment"> * Statistics datatype</span>
<a name="l00080"></a>00080 <span class="comment"> *</span>
<a name="l00081"></a>00081 <span class="comment"> * This typedef defines the dataype used for keeping statistics in</span>
<a name="l00082"></a>00082 <span class="comment"> * uIP.</span>
<a name="l00083"></a>00083 <span class="comment"> *</span>
<a name="l00084"></a>00084 <span class="comment"> * \hideinitializer</span>
<a name="l00085"></a>00085 <span class="comment"> */</span>
<a name="l00086"></a>00086 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>;
<a name="l00087"></a>00087 <span class="comment"></span>
<a name="l00088"></a>00088 <span class="comment">/**</span>
<a name="l00089"></a>00089 <span class="comment"> * Maximum number of TCP connections.</span>
<a name="l00090"></a>00090 <span class="comment"> *</span>
<a name="l00091"></a>00091 <span class="comment"> * \hideinitializer</span>
<a name="l00092"></a>00092 <span class="comment"> */</span>
<a name="l00093"></a>00093 <span class="preprocessor">#define UIP_CONF_MAX_CONNECTIONS 40</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00095"></a>00095 <span class="comment">/**</span>
<a name="l00096"></a>00096 <span class="comment"> * Maximum number of listening TCP ports.</span>
<a name="l00097"></a>00097 <span class="comment"> *</span>
<a name="l00098"></a>00098 <span class="comment"> * \hideinitializer</span>
<a name="l00099"></a>00099 <span class="comment"> */</span>
<a name="l00100"></a>00100 <span class="preprocessor">#define UIP_CONF_MAX_LISTENPORTS 40</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00102"></a>00102 <span class="comment">/**</span>
<a name="l00103"></a>00103 <span class="comment"> * uIP buffer size.</span>
<a name="l00104"></a>00104 <span class="comment"> *</span>
<a name="l00105"></a>00105 <span class="comment"> * \hideinitializer</span>
<a name="l00106"></a>00106 <span class="comment"> */</span>
<a name="l00107"></a>00107 <span class="preprocessor">#define UIP_CONF_BUFFER_SIZE 420</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00109"></a>00109 <span class="comment">/**</span>
<a name="l00110"></a>00110 <span class="comment"> * CPU byte order.</span>
<a name="l00111"></a>00111 <span class="comment"> *</span>
<a name="l00112"></a>00112 <span class="comment"> * \hideinitializer</span>
<a name="l00113"></a>00113 <span class="comment"> */</span>
<a name="l00114"></a>00114 <span class="preprocessor">#define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00116"></a>00116 <span class="comment">/**</span>
<a name="l00117"></a>00117 <span class="comment"> * Logging on or off</span>
<a name="l00118"></a>00118 <span class="comment"> *</span>
<a name="l00119"></a>00119 <span class="comment"> * \hideinitializer</span>
<a name="l00120"></a>00120 <span class="comment"> */</span>
<a name="l00121"></a>00121 <span class="preprocessor">#define UIP_CONF_LOGGING 1</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00123"></a>00123 <span class="comment">/**</span>
<a name="l00124"></a>00124 <span class="comment"> * UDP support on or off</span>
<a name="l00125"></a>00125 <span class="comment"> *</span>
<a name="l00126"></a>00126 <span class="comment"> * \hideinitializer</span>
<a name="l00127"></a>00127 <span class="comment"> */</span>
<a name="l00128"></a>00128 <span class="preprocessor">#define UIP_CONF_UDP 0</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00130"></a>00130 <span class="comment">/**</span>
<a name="l00131"></a>00131 <span class="comment"> * UDP checksums on or off</span>
<a name="l00132"></a>00132 <span class="comment"> *</span>
<a name="l00133"></a>00133 <span class="comment"> * \hideinitializer</span>
<a name="l00134"></a>00134 <span class="comment"> */</span>
<a name="l00135"></a>00135 <span class="preprocessor">#define UIP_CONF_UDP_CHECKSUMS 1</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00137"></a>00137 <span class="comment">/**</span>
<a name="l00138"></a>00138 <span class="comment"> * uIP statistics on or off</span>
<a name="l00139"></a>00139 <span class="comment"> *</span>
<a name="l00140"></a>00140 <span class="comment"> * \hideinitializer</span>
<a name="l00141"></a>00141 <span class="comment"> */</span>
<a name="l00142"></a>00142 <span class="preprocessor">#define UIP_CONF_STATISTICS 1</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span>
<a name="l00144"></a>00144 <span class="comment">/* Here we include the header file for the application(s) we use in</span>
<a name="l00145"></a>00145 <span class="comment"> our project. */</span>
<a name="l00146"></a>00146 <span class="comment">/*#include "smtp.h"*/</span>
<a name="l00147"></a>00147 <span class="comment">/*#include "hello-world.h"*/</span>
<a name="l00148"></a>00148 <span class="comment">/*#include "telnetd.h"*/</span>
<a name="l00149"></a>00149 <span class="preprocessor">#include "webserver.h"</span>
<a name="l00150"></a>00150 <span class="comment">/*#include "dhcpc.h"*/</span>
<a name="l00151"></a>00151 <span class="comment">/*#include "resolv.h"*/</span>
<a name="l00152"></a>00152 <span class="comment">/*#include "webclient.h"*/</span>
<a name="l00153"></a>00153
<a name="l00154"></a>00154 <span class="preprocessor">#endif </span><span class="comment">/* __UIP_CONF_H__ */</span>
<a name="l00155"></a>00155 <span class="comment"></span>
<a name="l00156"></a>00156 <span class="comment">/** @} */</span><span class="comment"></span>
<a name="l00157"></a>00157 <span class="comment">/** @} */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+138
View File
@@ -0,0 +1,138 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip-code-style.c</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<h1>uip-code-style.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* This is the official code style of uIP. */</span>
<a name="l00002"></a>00002 <span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">/**</span>
<a name="l00004"></a>00004 <span class="comment"> * \defgroup codestyle Coding style</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This is how a Doxygen module is documented - start with a \defgroup</span>
<a name="l00007"></a>00007 <span class="comment"> * Doxygen keyword at the beginning of the file to define a module,</span>
<a name="l00008"></a>00008 <span class="comment"> * and use the \addtogroup Doxygen keyword in all other files that</span>
<a name="l00009"></a>00009 <span class="comment"> * belong to the same module. Typically, the \defgroup is placed in</span>
<a name="l00010"></a>00010 <span class="comment"> * the .h file and \addtogroup in the .c file.</span>
<a name="l00011"></a>00011 <span class="comment"> *</span>
<a name="l00012"></a>00012 <span class="comment"> * @{</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014 <span class="comment"></span>
<a name="l00015"></a>00015 <span class="comment">/**</span>
<a name="l00016"></a>00016 <span class="comment"> * \file</span>
<a name="l00017"></a>00017 <span class="comment"> * A brief description of what this file is.</span>
<a name="l00018"></a>00018 <span class="comment"> * \author</span>
<a name="l00019"></a>00019 <span class="comment"> * Adam Dunkels &lt;adam@sics.se&gt;</span>
<a name="l00020"></a>00020 <span class="comment"> *</span>
<a name="l00021"></a>00021 <span class="comment"> * Every file that is part of a documented module has to have</span>
<a name="l00022"></a>00022 <span class="comment"> * a \file block, else it will not show up in the Doxygen</span>
<a name="l00023"></a>00023 <span class="comment"> * "Modules" * section.</span>
<a name="l00024"></a>00024 <span class="comment"> */</span>
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <span class="comment">/* Single line comments look like this. */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="comment">/*</span>
<a name="l00029"></a>00029 <span class="comment"> * Multi-line comments look like this. Comments should prefferably be</span>
<a name="l00030"></a>00030 <span class="comment"> * full sentences, filled to look like real paragraphs.</span>
<a name="l00031"></a>00031 <span class="comment"> */</span>
<a name="l00032"></a>00032
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="a00136.html">uip.h</a>"</span>
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="comment">/*</span>
<a name="l00036"></a>00036 <span class="comment"> * Make sure that non-global variables are all maked with the static</span>
<a name="l00037"></a>00037 <span class="comment"> * keyword. This keeps the size of the symbol table down.</span>
<a name="l00038"></a>00038 <span class="comment"> */</span>
<a name="l00039"></a>00039 <span class="keyword">static</span> <span class="keywordtype">int</span> flag;
<a name="l00040"></a>00040
<a name="l00041"></a>00041 <span class="comment">/*</span>
<a name="l00042"></a>00042 <span class="comment"> * All variables and functions that are visible outside of the file</span>
<a name="l00043"></a>00043 <span class="comment"> * should have the module name prepended to them. This makes it easy</span>
<a name="l00044"></a>00044 <span class="comment"> * to know where to look for function and variable definitions.</span>
<a name="l00045"></a>00045 <span class="comment"> *</span>
<a name="l00046"></a>00046 <span class="comment"> * Put dividers (a single-line comment consisting only of dashes)</span>
<a name="l00047"></a>00047 <span class="comment"> * between functions.</span>
<a name="l00048"></a>00048 <span class="comment"> */</span>
<a name="l00049"></a>00049 <span class="comment">/*---------------------------------------------------------------------------*/</span><span class="comment"></span>
<a name="l00050"></a>00050 <span class="comment">/**</span>
<a name="l00051"></a>00051 <span class="comment"> * \brief Use Doxygen documentation for functions.</span>
<a name="l00052"></a>00052 <span class="comment"> * \param c Briefly describe all parameters.</span>
<a name="l00053"></a>00053 <span class="comment"> * \return Briefly describe the return value.</span>
<a name="l00054"></a>00054 <span class="comment"> * \retval 0 Functions that return a few specified values</span>
<a name="l00055"></a>00055 <span class="comment"> * \retval 1 can use the \retval keyword instead of \return.</span>
<a name="l00056"></a>00056 <span class="comment"> *</span>
<a name="l00057"></a>00057 <span class="comment"> * Put a longer description of what the function does</span>
<a name="l00058"></a>00058 <span class="comment"> * after the preamble of Doxygen keywords.</span>
<a name="l00059"></a>00059 <span class="comment"> *</span>
<a name="l00060"></a>00060 <span class="comment"> * This template should always be used to document</span>
<a name="l00061"></a>00061 <span class="comment"> * functions. The text following the introduction is used</span>
<a name="l00062"></a>00062 <span class="comment"> * as the function's documentation.</span>
<a name="l00063"></a>00063 <span class="comment"> *</span>
<a name="l00064"></a>00064 <span class="comment"> * Function prototypes have the return type on one line,</span>
<a name="l00065"></a>00065 <span class="comment"> * the name and arguments on one line (with no space</span>
<a name="l00066"></a>00066 <span class="comment"> * between the name and the first parenthesis), followed</span>
<a name="l00067"></a>00067 <span class="comment"> * by a single curly bracket on its own line.</span>
<a name="l00068"></a>00068 <span class="comment"> */</span>
<a name="l00069"></a>00069 <span class="keywordtype">void</span>
<a name="l00070"></a>00070 code_style_example_function(<span class="keywordtype">void</span>)
<a name="l00071"></a>00071 {
<a name="l00072"></a>00072 <span class="comment">/*</span>
<a name="l00073"></a>00073 <span class="comment"> * Local variables should always be declared at the start of the</span>
<a name="l00074"></a>00074 <span class="comment"> * function.</span>
<a name="l00075"></a>00075 <span class="comment"> */</span>
<a name="l00076"></a>00076 <span class="keywordtype">int</span> i; <span class="comment">/* Use short variable names for loop</span>
<a name="l00077"></a>00077 <span class="comment"> counters. */</span>
<a name="l00078"></a>00078
<a name="l00079"></a>00079 <span class="comment">/*</span>
<a name="l00080"></a>00080 <span class="comment"> * There should be no space between keywords and the first</span>
<a name="l00081"></a>00081 <span class="comment"> * parenthesis. There should be spaces around binary operators, no</span>
<a name="l00082"></a>00082 <span class="comment"> * spaces between a unary operator and its operand.</span>
<a name="l00083"></a>00083 <span class="comment"> *</span>
<a name="l00084"></a>00084 <span class="comment"> * Curly brackets following for(), if(), do, and case() statements</span>
<a name="l00085"></a>00085 <span class="comment"> * should follow the statement on the same line.</span>
<a name="l00086"></a>00086 <span class="comment"> */</span>
<a name="l00087"></a>00087 <span class="keywordflow">for</span>(i = 0; i &lt; 10; ++i) {
<a name="l00088"></a>00088 <span class="comment">/*</span>
<a name="l00089"></a>00089 <span class="comment"> * Always use full blocks (curly brackets) after if(), for(), and</span>
<a name="l00090"></a>00090 <span class="comment"> * while() statements, even though the statement is a single line</span>
<a name="l00091"></a>00091 <span class="comment"> * of code. This makes the code easier to read and modifications</span>
<a name="l00092"></a>00092 <span class="comment"> * are less error prone.</span>
<a name="l00093"></a>00093 <span class="comment"> */</span>
<a name="l00094"></a>00094 <span class="keywordflow">if</span>(i == c) {
<a name="l00095"></a>00095 <span class="keywordflow">return</span> c; <span class="comment">/* No parentesis around return values. */</span>
<a name="l00096"></a>00096 } <span class="keywordflow">else</span> { <span class="comment">/* The else keyword is placed inbetween</span>
<a name="l00097"></a>00097 <span class="comment"> curly brackers, always on its own line. */</span>
<a name="l00098"></a>00098 c++;
<a name="l00099"></a>00099 }
<a name="l00100"></a>00100 }
<a name="l00101"></a>00101 }
<a name="l00102"></a>00102 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00103"></a>00103 <span class="comment">/*</span>
<a name="l00104"></a>00104 <span class="comment"> * Static (non-global) functions do not need Doxygen comments. The</span>
<a name="l00105"></a>00105 <span class="comment"> * name should not be prepended with the module name - doing so would</span>
<a name="l00106"></a>00106 <span class="comment"> * create confusion.</span>
<a name="l00107"></a>00107 <span class="comment"> */</span>
<a name="l00108"></a>00108 <span class="keyword">static</span> <span class="keywordtype">void</span>
<a name="l00109"></a>00109 an_example_function(<span class="keywordtype">void</span>)
<a name="l00110"></a>00110 {
<a name="l00111"></a>00111
<a name="l00112"></a>00112 }
<a name="l00113"></a>00113 <span class="comment">/*---------------------------------------------------------------------------*/</span>
<a name="l00114"></a>00114
<a name="l00115"></a>00115 <span class="comment">/* The following stuff ends the \defgroup block at the beginning of</span>
<a name="l00116"></a>00116 <span class="comment"> the file: */</span>
<a name="l00117"></a>00117 <span class="comment"></span>
<a name="l00118"></a>00118 <span class="comment">/** @} */</span>
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+78
View File
@@ -0,0 +1,78 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: dhcpc_state Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>dhcpc_state Struct Reference</h1><!-- doxytag: class="dhcpc_state" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00048.html#_a0">dhcpc.c</a>, and <a class="el" href="a00049.html#_a43">dhcpc.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00169.html#l00039">39</a> of file <a class="el" href="a00169.html">dhcpc.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="31471b5e27bda51832d0fa49bd6d9b54"></a><!-- doxytag: member="dhcpc_state::pt" ref="31471b5e27bda51832d0fa49bd6d9b54" args="" -->
<a class="el" href="a00084.html">pt</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#31471b5e27bda51832d0fa49bd6d9b54">pt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e0b137a3875ad12a99e5e3e0e177fd12"></a><!-- doxytag: member="dhcpc_state::state" ref="e0b137a3875ad12a99e5e3e0e177fd12" args="" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#e0b137a3875ad12a99e5e3e0e177fd12">state</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cfd36e02c7498d766ff802575e981612"></a><!-- doxytag: member="dhcpc_state::conn" ref="cfd36e02c7498d766ff802575e981612" args="" -->
<a class="el" href="a00095.html">uip_udp_conn</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#cfd36e02c7498d766ff802575e981612">conn</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e80af46ceef63eab3c786525370ae720"></a><!-- doxytag: member="dhcpc_state::timer" ref="e80af46ceef63eab3c786525370ae720" args="" -->
<a class="el" href="a00087.html">timer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#e80af46ceef63eab3c786525370ae720">timer</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e707c39412e09d3a47f0b3c5dad33725"></a><!-- doxytag: member="dhcpc_state::ticks" ref="e707c39412e09d3a47f0b3c5dad33725" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#e707c39412e09d3a47f0b3c5dad33725">ticks</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2391bb18db5f620e0e9fb848ae5ba5e9"></a><!-- doxytag: member="dhcpc_state::mac_addr" ref="2391bb18db5f620e0e9fb848ae5ba5e9" args="" -->
const void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#2391bb18db5f620e0e9fb848ae5ba5e9">mac_addr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5361ef75bfbdb469b5cc31f0060a2670"></a><!-- doxytag: member="dhcpc_state::mac_len" ref="5361ef75bfbdb469b5cc31f0060a2670" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#5361ef75bfbdb469b5cc31f0060a2670">mac_len</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="564bab93ef6a268a5de2fab885c1d32a"></a><!-- doxytag: member="dhcpc_state::serverid" ref="564bab93ef6a268a5de2fab885c1d32a" args="[4]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#564bab93ef6a268a5de2fab885c1d32a">serverid</a> [4]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7a520a57d7d0541524f34a7685635597"></a><!-- doxytag: member="dhcpc_state::lease_time" ref="7a520a57d7d0541524f34a7685635597" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#7a520a57d7d0541524f34a7685635597">lease_time</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1d2f2751b0865045486c9aa59d0d0971"></a><!-- doxytag: member="dhcpc_state::ipaddr" ref="1d2f2751b0865045486c9aa59d0d0971" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#1d2f2751b0865045486c9aa59d0d0971">ipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="20541305548441e5dcb2e1e7e6f300eb"></a><!-- doxytag: member="dhcpc_state::netmask" ref="20541305548441e5dcb2e1e7e6f300eb" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#20541305548441e5dcb2e1e7e6f300eb">netmask</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="27df2817055bc099821d96eb60a40b34"></a><!-- doxytag: member="dhcpc_state::dnsaddr" ref="27df2817055bc099821d96eb60a40b34" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#27df2817055bc099821d96eb60a40b34">dnsaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5e16ca335dfd7394527f602da879fca2"></a><!-- doxytag: member="dhcpc_state::default_router" ref="5e16ca335dfd7394527f602da879fca2" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html#5e16ca335dfd7394527f602da879fca2">default_router</a> [2]</td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+51
View File
@@ -0,0 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: hello_world_state Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>hello_world_state Struct Reference<br>
<small>
[<a class="el" href="a00162.html">Hello, world</a>]</small>
</h1><!-- doxytag: class="hello_world_state" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00036.html#_a100">hello-world.c</a>, and <a class="el" href="a00037.html#_a117">hello-world.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00171.html#l00036">36</a> of file <a class="el" href="a00171.html">hello-world.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9825b5977b2d4dec66e6bd09e6ae6ea"></a><!-- doxytag: member="hello_world_state::p" ref="a9825b5977b2d4dec66e6bd09e6ae6ea" args="" -->
<a class="el" href="a00082.html">psock</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#a9825b5977b2d4dec66e6bd09e6ae6ea">p</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4b1b1436b50ed7638aece35f41421196"></a><!-- doxytag: member="hello_world_state::inputbuffer" ref="4b1b1436b50ed7638aece35f41421196" args="[10]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#4b1b1436b50ed7638aece35f41421196">inputbuffer</a> [10]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4da86e9feb5e5835eb15163c2cb61116"></a><!-- doxytag: member="hello_world_state::name" ref="4da86e9feb5e5835eb15163c2cb61116" args="[40]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html#4da86e9feb5e5835eb15163c2cb61116">name</a> [40]</td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+45
View File
@@ -0,0 +1,45 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: httpd_cgi_call Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>httpd_cgi_call Struct Reference<br>
<small>
[<a class="el" href="a00164.html">Web server</a>]</small>
</h1><!-- doxytag: class="httpd_cgi_call" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00183.html#l00060">60</a> of file <a class="el" href="a00183.html">httpd-cgi.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a84c69ec5a4705ccb1ca99fcd120add"></a><!-- doxytag: member="httpd_cgi_call::name" ref="9a84c69ec5a4705ccb1ca99fcd120add" args="" -->
const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html#9a84c69ec5a4705ccb1ca99fcd120add">name</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1513a9e88921750d2a611b518f6fc207"></a><!-- doxytag: member="httpd_cgi_call::function" ref="1513a9e88921750d2a611b518f6fc207" args="" -->
const httpd_cgifunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html#1513a9e88921750d2a611b518f6fc207">function</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+69
View File
@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: httpd_state Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>httpd_state Struct Reference</h1><!-- doxytag: class="httpd_state" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00185.html#l00041">41</a> of file <a class="el" href="a00185.html">httpd.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c39694ece9526b84012f90f2bb00af9f"></a><!-- doxytag: member="httpd_state::timer" ref="c39694ece9526b84012f90f2bb00af9f" args="" -->
unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#c39694ece9526b84012f90f2bb00af9f">timer</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9dd8edeece221c853a4c4516bf1b01c2"></a><!-- doxytag: member="httpd_state::sout" ref="9dd8edeece221c853a4c4516bf1b01c2" args="" -->
<a class="el" href="a00082.html">psock</a> sin&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#9dd8edeece221c853a4c4516bf1b01c2">sout</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e261f08e1556287d241764fb2e99fc26"></a><!-- doxytag: member="httpd_state::scriptpt" ref="e261f08e1556287d241764fb2e99fc26" args="" -->
<a class="el" href="a00084.html">pt</a> outputpt&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#e261f08e1556287d241764fb2e99fc26">scriptpt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4c6f843219271d25766ee5969e435d1a"></a><!-- doxytag: member="httpd_state::inputbuf" ref="4c6f843219271d25766ee5969e435d1a" args="[50]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#4c6f843219271d25766ee5969e435d1a">inputbuf</a> [50]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="447eb700ea7a185e0f155934995d49e5"></a><!-- doxytag: member="httpd_state::filename" ref="447eb700ea7a185e0f155934995d49e5" args="[20]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#447eb700ea7a185e0f155934995d49e5">filename</a> [20]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="94fcc9f5c47f419040d849ce58beae35"></a><!-- doxytag: member="httpd_state::state" ref="94fcc9f5c47f419040d849ce58beae35" args="" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#94fcc9f5c47f419040d849ce58beae35">state</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5e274a8f8b5fb2b3999c54fe27c76e46"></a><!-- doxytag: member="httpd_state::file" ref="5e274a8f8b5fb2b3999c54fe27c76e46" args="" -->
httpd_fs_file&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#5e274a8f8b5fb2b3999c54fe27c76e46">file</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="468c04fff28e784f93ebc3f0849211dd"></a><!-- doxytag: member="httpd_state::len" ref="468c04fff28e784f93ebc3f0849211dd" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#468c04fff28e784f93ebc3f0849211dd">len</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="78f82878f3fd0e7401c7d7d3b3fefbef"></a><!-- doxytag: member="httpd_state::scriptptr" ref="78f82878f3fd0e7401c7d7d3b3fefbef" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#78f82878f3fd0e7401c7d7d3b3fefbef">scriptptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="16a3a3056f44b7245ce085b937a269dd"></a><!-- doxytag: member="httpd_state::scriptlen" ref="16a3a3056f44b7245ce085b937a269dd" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#16a3a3056f44b7245ce085b937a269dd">scriptlen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6df929b448ea98bc44d41f5e96237bda"></a><!-- doxytag: member="httpd_state::count" ref="6df929b448ea98bc44d41f5e96237bda" args="" -->
unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html#6df929b448ea98bc44d41f5e96237bda">count</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+51
View File
@@ -0,0 +1,51 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: memb_blocks Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>memb_blocks Struct Reference<br>
<small>
[<a class="el" href="a00159.html">Memory block management functions</a>]</small>
</h1><!-- doxytag: class="memb_blocks" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00187.html#l00105">105</a> of file <a class="el" href="a00187.html">memb.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b42c7af6114fde5d21206a2e18a7d3ee"></a><!-- doxytag: member="memb_blocks::size" ref="b42c7af6114fde5d21206a2e18a7d3ee" args="" -->
unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html#b42c7af6114fde5d21206a2e18a7d3ee">size</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="164124d48fe85bc98d9a300382a5245d"></a><!-- doxytag: member="memb_blocks::num" ref="164124d48fe85bc98d9a300382a5245d" args="" -->
unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html#164124d48fe85bc98d9a300382a5245d">num</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5595902fd42d874e35a70206fad8f6d0"></a><!-- doxytag: member="memb_blocks::count" ref="5595902fd42d874e35a70206fad8f6d0" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html#5595902fd42d874e35a70206fad8f6d0">count</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5801722740492e69bcc73687476009f"></a><!-- doxytag: member="memb_blocks::mem" ref="b5801722740492e69bcc73687476009f" args="" -->
void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html#b5801722740492e69bcc73687476009f">mem</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+73
View File
@@ -0,0 +1,73 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: psock Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>psock Struct Reference<br>
<small>
[<a class="el" href="a00158.html">Protosockets library</a>]</small>
</h1><!-- doxytag: class="psock" --><code>#include &lt;<a class="el" href="a00193.html">psock.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The representation of a protosocket.
<p>
The protosocket structrure is an opaque structure with no user-visible elements. <dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00037.html#_a118">hello-world.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00193.html#l00106">106</a> of file <a class="el" href="a00193.html">psock.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="17aacf7c5e2046c1f3ab50faa1b2f7eb"></a><!-- doxytag: member="psock::psockpt" ref="17aacf7c5e2046c1f3ab50faa1b2f7eb" args="" -->
<a class="el" href="a00084.html">pt</a> <a class="el" href="a00084.html">pt</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#17aacf7c5e2046c1f3ab50faa1b2f7eb">psockpt</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="31f25efccba9fd043047133d0d0ba5ab"></a><!-- doxytag: member="psock::sendptr" ref="31f25efccba9fd043047133d0d0ba5ab" args="" -->
const <a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#31f25efccba9fd043047133d0d0ba5ab">sendptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b973f2e16c2883a8a0164d716cce5a31"></a><!-- doxytag: member="psock::readptr" ref="b973f2e16c2883a8a0164d716cce5a31" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#b973f2e16c2883a8a0164d716cce5a31">readptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c3d1bfbb1abde31973c015de97ce2f84"></a><!-- doxytag: member="psock::bufptr" ref="c3d1bfbb1abde31973c015de97ce2f84" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#c3d1bfbb1abde31973c015de97ce2f84">bufptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="19b82696bd84a803250cbf9812f2f125"></a><!-- doxytag: member="psock::sendlen" ref="19b82696bd84a803250cbf9812f2f125" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#19b82696bd84a803250cbf9812f2f125">sendlen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a408ca8630154ebd039f37a828399f7b"></a><!-- doxytag: member="psock::readlen" ref="a408ca8630154ebd039f37a828399f7b" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#a408ca8630154ebd039f37a828399f7b">readlen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d6bd03239291629676e4c0286ebb650f"></a><!-- doxytag: member="psock::buf" ref="d6bd03239291629676e4c0286ebb650f" args="" -->
<a class="el" href="a00083.html">psock_buf</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#d6bd03239291629676e4c0286ebb650f">buf</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6bfaf327ce839ba70accd71014398d0"></a><!-- doxytag: member="psock::bufsize" ref="a6bfaf327ce839ba70accd71014398d0" args="" -->
unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#a6bfaf327ce839ba70accd71014398d0">bufsize</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fda184638130452f3570966acc5b97f9"></a><!-- doxytag: member="psock::state" ref="fda184638130452f3570966acc5b97f9" args="" -->
unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html#fda184638130452f3570966acc5b97f9">state</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+45
View File
@@ -0,0 +1,45 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: psock_buf Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>psock_buf Struct Reference<br>
<small>
[<a class="el" href="a00158.html">Protosockets library</a>]</small>
</h1><!-- doxytag: class="psock_buf" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00193.html#l00095">95</a> of file <a class="el" href="a00193.html">psock.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5e8637b1514d03eb3eb12dc9a502e27e"></a><!-- doxytag: member="psock_buf::ptr" ref="5e8637b1514d03eb3eb12dc9a502e27e" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#5e8637b1514d03eb3eb12dc9a502e27e">ptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="20fae11b540a561c622a0d74cb4b9f97"></a><!-- doxytag: member="psock_buf::left" ref="20fae11b540a561c622a0d74cb4b9f97" args="" -->
unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html#20fae11b540a561c622a0d74cb4b9f97">left</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+45
View File
@@ -0,0 +1,45 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: pt Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>pt Struct Reference<br>
<small>
[<a class="el" href="a00142.html">Protothreads</a>]</small>
</h1><!-- doxytag: class="pt" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00049.html#_a44">dhcpc.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00194.html#l00054">54</a> of file <a class="el" href="a00194.html">pt.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c3fa0fa86689e3e7c039a16c16861dbe"></a><!-- doxytag: member="pt::lc" ref="c3fa0fa86689e3e7c039a16c16861dbe" args="" -->
<a class="el" href="a00155.html#g3983e0c026396d5c4506779d770007ba">lc_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#c3fa0fa86689e3e7c039a16c16861dbe">lc</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+69
View File
@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: smtp_state Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>smtp_state Struct Reference<br>
<small>
[<a class="el" href="a00161.html">SMTP E-mail sender</a>]</small>
</h1><!-- doxytag: class="smtp_state" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00037.html#_a122">hello-world.h</a>, <a class="el" href="a00038.html#_a163">smtp.c</a>, and <a class="el" href="a00039.html#_a199">smtp.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00175.html#l00081">81</a> of file <a class="el" href="a00175.html">smtp.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0bb4f34164e7207c2db26b77f23ccfff"></a><!-- doxytag: member="smtp_state::state" ref="0bb4f34164e7207c2db26b77f23ccfff" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#0bb4f34164e7207c2db26b77f23ccfff">state</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3592a1f5ae100db2ed9c0810b41c7bc7"></a><!-- doxytag: member="smtp_state::to" ref="3592a1f5ae100db2ed9c0810b41c7bc7" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#3592a1f5ae100db2ed9c0810b41c7bc7">to</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="668cab7d54ff0a2fc2a2179ca06b0798"></a><!-- doxytag: member="smtp_state::from" ref="668cab7d54ff0a2fc2a2179ca06b0798" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#668cab7d54ff0a2fc2a2179ca06b0798">from</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="503c2994a4e52300516e2b820f0fc65b"></a><!-- doxytag: member="smtp_state::subject" ref="503c2994a4e52300516e2b820f0fc65b" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#503c2994a4e52300516e2b820f0fc65b">subject</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="04833004cec509a41c502429df308e35"></a><!-- doxytag: member="smtp_state::msg" ref="04833004cec509a41c502429df308e35" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#04833004cec509a41c502429df308e35">msg</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a312da7b5f6441140721ec7e55f345a8"></a><!-- doxytag: member="smtp_state::msglen" ref="a312da7b5f6441140721ec7e55f345a8" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#a312da7b5f6441140721ec7e55f345a8">msglen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="68204df6bde3e3c27271ebde10579a57"></a><!-- doxytag: member="smtp_state::sentlen" ref="68204df6bde3e3c27271ebde10579a57" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#68204df6bde3e3c27271ebde10579a57">sentlen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0560495c60c68d62617ff1f3d0c424a4"></a><!-- doxytag: member="smtp_state::textlen" ref="0560495c60c68d62617ff1f3d0c424a4" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#0560495c60c68d62617ff1f3d0c424a4">textlen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5ed2615cec9e633d90ac5968771976eb"></a><!-- doxytag: member="smtp_state::sendptr" ref="5ed2615cec9e633d90ac5968771976eb" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html#5ed2615cec9e633d90ac5968771976eb">sendptr</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+54
View File
@@ -0,0 +1,54 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: telnetd_state Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>telnetd_state Struct Reference</h1><!-- doxytag: class="telnetd_state" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00044.html#_a207">telnetd.c</a>, and <a class="el" href="a00045.html#_a242">telnetd.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00179.html#l00049">49</a> of file <a class="el" href="a00179.html">telnetd.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cca775e46d4405b7775b328f7694f7e7"></a><!-- doxytag: member="telnetd_state::lines" ref="cca775e46d4405b7775b328f7694f7e7" args="[TELNETD_CONF_NUMLINES]" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#cca775e46d4405b7775b328f7694f7e7">lines</a> [TELNETD_CONF_NUMLINES]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="54a466311575a727830a92a6c3621cb2"></a><!-- doxytag: member="telnetd_state::buf" ref="54a466311575a727830a92a6c3621cb2" args="[TELNETD_CONF_LINELEN]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#54a466311575a727830a92a6c3621cb2">buf</a> [TELNETD_CONF_LINELEN]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5eced097547fd3fac4ba2a255493d921"></a><!-- doxytag: member="telnetd_state::bufptr" ref="5eced097547fd3fac4ba2a255493d921" args="" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#5eced097547fd3fac4ba2a255493d921">bufptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d85fc90c30d1fc37c63c4844be5fe09d"></a><!-- doxytag: member="telnetd_state::numsent" ref="d85fc90c30d1fc37c63c4844be5fe09d" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#d85fc90c30d1fc37c63c4844be5fe09d">numsent</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="41bf109b6a45328d5744c0a76563fb6c"></a><!-- doxytag: member="telnetd_state::state" ref="41bf109b6a45328d5744c0a76563fb6c" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html#41bf109b6a45328d5744c0a76563fb6c">state</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+52
View File
@@ -0,0 +1,52 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: timer Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>timer Struct Reference<br>
<small>
[<a class="el" href="a00156.html">Timer library</a>]</small>
</h1><!-- doxytag: class="timer" --><code>#include &lt;<a class="el" href="a00196.html">timer.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A timer.
<p>
This structure is used for declaring a timer. The timer must be set with <a class="el" href="a00156.html#g6614d96fdfcd95c95ec6e6f63071ff51">timer_set()</a> before it can be used. <dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00049.html#_a49">dhcpc.h</a>, <a class="el" href="a00042.html#_a61">example-mainloop-with-arp.c</a>, <a class="el" href="a00043.html#_a85">example-mainloop-without-arp.c</a>, and <a class="el" href="a00041.html#_a308">webclient.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00196.html#l00074">74</a> of file <a class="el" href="a00196.html">timer.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e8eb428c05bc1dee022246a3063d277c"></a><!-- doxytag: member="timer::start" ref="e8eb428c05bc1dee022246a3063d277c" args="" -->
clock_time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html#e8eb428c05bc1dee022246a3063d277c">start</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fe557d333c06cf65f52023f45f5b0a3a"></a><!-- doxytag: member="timer::interval" ref="fe557d333c06cf65f52023f45f5b0a3a" args="" -->
clock_time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html#fe557d333c06cf65f52023f45f5b0a3a">interval</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+103
View File
@@ -0,0 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_conn Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_conn Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_conn" --><code>#include &lt;<a class="el" href="a00202.html">uip.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Representation of a uIP TCP connection.
<p>
The <a class="el" href="a00088.html">uip_conn</a> structure is used for identifying a connection. All but one field in the structure are to be considered read-only by an application. The only exception is the appstate field whos purpose is to let the application store application-specific state (e.g., file pointers) for the connection. The type of this field is configured in the "uipopt.h" header file.
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01153">1153</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="79510aa86d3fa0a0fc6cfc49b1da7279"></a><!-- doxytag: member="uip_conn::ripaddr" ref="79510aa86d3fa0a0fc6cfc49b1da7279" args="" -->
<a class="el" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#79510aa86d3fa0a0fc6cfc49b1da7279">ripaddr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The IP address of the remote host. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0cd09beee671e7e9efb0b4aced10249e"></a><!-- doxytag: member="uip_conn::lport" ref="0cd09beee671e7e9efb0b4aced10249e" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#0cd09beee671e7e9efb0b4aced10249e">lport</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The local TCP port, in network byte order. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1df6aa054ef2fa634ac4c6f418228285"></a><!-- doxytag: member="uip_conn::rport" ref="1df6aa054ef2fa634ac4c6f418228285" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#1df6aa054ef2fa634ac4c6f418228285">rport</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The local remote TCP port, in network byte order. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="70297b3e6d4eaae7bd828cb50bd1efe3"></a><!-- doxytag: member="uip_conn::rcv_nxt" ref="70297b3e6d4eaae7bd828cb50bd1efe3" args="[4]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#70297b3e6d4eaae7bd828cb50bd1efe3">rcv_nxt</a> [4]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The sequence number that we expect to receive next. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8f6b08a5ba2a8d75ca7279e2056aa8c6"></a><!-- doxytag: member="uip_conn::snd_nxt" ref="8f6b08a5ba2a8d75ca7279e2056aa8c6" args="[4]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#8f6b08a5ba2a8d75ca7279e2056aa8c6">snd_nxt</a> [4]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The sequence number that was last sent by us. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0ef3ae2764714bf90620075c374c262e"></a><!-- doxytag: member="uip_conn::len" ref="0ef3ae2764714bf90620075c374c262e" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#0ef3ae2764714bf90620075c374c262e">len</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Length of the data that was previously sent. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3347ef1b6e8581402445d1a0280c7a14"></a><!-- doxytag: member="uip_conn::mss" ref="3347ef1b6e8581402445d1a0280c7a14" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#3347ef1b6e8581402445d1a0280c7a14">mss</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current maximum segment size for the connection. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="db7a3fadb68df5fdd37e8b91a2c751ea"></a><!-- doxytag: member="uip_conn::initialmss" ref="db7a3fadb68df5fdd37e8b91a2c751ea" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#db7a3fadb68df5fdd37e8b91a2c751ea">initialmss</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initial maximum segment size for the connection. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ef661afb3aa82f0437d2ed8d3c20be76"></a><!-- doxytag: member="uip_conn::sa" ref="ef661afb3aa82f0437d2ed8d3c20be76" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#ef661afb3aa82f0437d2ed8d3c20be76">sa</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retransmission time-out calculation state variable. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eb9fcbd3c9b0a795dcd63f33c323d65c"></a><!-- doxytag: member="uip_conn::sv" ref="eb9fcbd3c9b0a795dcd63f33c323d65c" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#eb9fcbd3c9b0a795dcd63f33c323d65c">sv</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retransmission time-out calculation state variable. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e3aa9cc25e45b663e6aabc54c013019e"></a><!-- doxytag: member="uip_conn::rto" ref="e3aa9cc25e45b663e6aabc54c013019e" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#e3aa9cc25e45b663e6aabc54c013019e">rto</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retransmission time-out. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a5f58074435cdc180f17de69651beebd"></a><!-- doxytag: member="uip_conn::tcpstateflags" ref="a5f58074435cdc180f17de69651beebd" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#a5f58074435cdc180f17de69651beebd">tcpstateflags</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TCP state and flags. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2d9732cf5752d30bd11cb25dc7d0c8d3"></a><!-- doxytag: member="uip_conn::timer" ref="2d9732cf5752d30bd11cb25dc7d0c8d3" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#2d9732cf5752d30bd11cb25dc7d0c8d3">timer</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The retransmission timer. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4289c59840b128f2f6526e9da2711d47"></a><!-- doxytag: member="uip_conn::nrtx" ref="4289c59840b128f2f6526e9da2711d47" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#4289c59840b128f2f6526e9da2711d47">nrtx</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The number of retransmissions for the last segment sent. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="97f9e1fda815bfb8b1f4577c355ade20"></a><!-- doxytag: member="uip_conn::appstate" ref="97f9e1fda815bfb8b1f4577c355ade20" args="" -->
<a class="el" href="a00085.html">uip_tcp_appstate_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html#97f9e1fda815bfb8b1f4577c355ade20">appstate</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application state. <br></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+44
View File
@@ -0,0 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_eth_addr Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_eth_addr Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_eth_addr" --><code>#include &lt;<a class="el" href="a00202.html">uip.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Representation of a 48-bit Ethernet address.
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01542">1542</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aacd5fa1806e0f0dd0bc96dd36507ad8"></a><!-- doxytag: member="uip_eth_addr::addr" ref="aacd5fa1806e0f0dd0bc96dd36507ad8" args="[6]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#aacd5fa1806e0f0dd0bc96dd36507ad8">addr</a> [6]</td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+50
View File
@@ -0,0 +1,50 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_eth_hdr Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_eth_hdr Struct Reference<br>
<small>
[<a class="el" href="a00152.html">uIP Address Resolution Protocol</a>]</small>
</h1><!-- doxytag: class="uip_eth_hdr" --><code>#include &lt;<a class="el" href="a00205.html">uip_arp.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The Ethernet header.
<p>
<p>
Definition at line <a class="el" href="a00205.html#l00063">63</a> of file <a class="el" href="a00205.html">uip_arp.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b684c17bf48c8e3b3fcf97b06b4c6ee1"></a><!-- doxytag: member="uip_eth_hdr::dest" ref="b684c17bf48c8e3b3fcf97b06b4c6ee1" args="" -->
<a class="el" href="a00089.html">uip_eth_addr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html#b684c17bf48c8e3b3fcf97b06b4c6ee1">dest</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1abbbe7bc5d7d033c727691528b85b8d"></a><!-- doxytag: member="uip_eth_hdr::src" ref="1abbbe7bc5d7d033c727691528b85b8d" args="" -->
<a class="el" href="a00089.html">uip_eth_addr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html#1abbbe7bc5d7d033c727691528b85b8d">src</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c9273cc1fcdaeeddc523ca9f34977e06"></a><!-- doxytag: member="uip_eth_hdr::type" ref="c9273cc1fcdaeeddc523ca9f34977e06" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00090.html#c9273cc1fcdaeeddc523ca9f34977e06">type</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+84
View File
@@ -0,0 +1,84 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_icmpip_hdr Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_icmpip_hdr Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_icmpip_hdr" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01423">1423</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7d472d8b3c41618d39c93c4ca92fb3f4"></a><!-- doxytag: member="uip_icmpip_hdr::vhl" ref="7d472d8b3c41618d39c93c4ca92fb3f4" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#7d472d8b3c41618d39c93c4ca92fb3f4">vhl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3f2d9cb20290019b2743e8df31a2f8b"></a><!-- doxytag: member="uip_icmpip_hdr::tos" ref="a3f2d9cb20290019b2743e8df31a2f8b" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a3f2d9cb20290019b2743e8df31a2f8b">tos</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b15853725b233d526b291db0347d4ecd"></a><!-- doxytag: member="uip_icmpip_hdr::len" ref="b15853725b233d526b291db0347d4ecd" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#b15853725b233d526b291db0347d4ecd">len</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="308463cc7b3d45d2dbcdcedd4cde9bb9"></a><!-- doxytag: member="uip_icmpip_hdr::ipid" ref="308463cc7b3d45d2dbcdcedd4cde9bb9" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#308463cc7b3d45d2dbcdcedd4cde9bb9">ipid</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4619e69ec86a47f6abe945b39ec7f63a"></a><!-- doxytag: member="uip_icmpip_hdr::ipoffset" ref="4619e69ec86a47f6abe945b39ec7f63a" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#4619e69ec86a47f6abe945b39ec7f63a">ipoffset</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="55be3d5413ce49c5c4f5576def12d7ec"></a><!-- doxytag: member="uip_icmpip_hdr::ttl" ref="55be3d5413ce49c5c4f5576def12d7ec" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#55be3d5413ce49c5c4f5576def12d7ec">ttl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="55e7764a9f6ed05aaa98076b9f6770a5"></a><!-- doxytag: member="uip_icmpip_hdr::proto" ref="55e7764a9f6ed05aaa98076b9f6770a5" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#55e7764a9f6ed05aaa98076b9f6770a5">proto</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="babb9c2be394477af97f79507bcb4c86"></a><!-- doxytag: member="uip_icmpip_hdr::ipchksum" ref="babb9c2be394477af97f79507bcb4c86" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#babb9c2be394477af97f79507bcb4c86">ipchksum</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0ec6a6cbcbfd191d393738c16d54e5e1"></a><!-- doxytag: member="uip_icmpip_hdr::srcipaddr" ref="0ec6a6cbcbfd191d393738c16d54e5e1" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#0ec6a6cbcbfd191d393738c16d54e5e1">srcipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e27f4949613fe3c1de5a839af01d99dd"></a><!-- doxytag: member="uip_icmpip_hdr::destipaddr" ref="e27f4949613fe3c1de5a839af01d99dd" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#e27f4949613fe3c1de5a839af01d99dd">destipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fa0fe6ca88f692d22af70ff007411252"></a><!-- doxytag: member="uip_icmpip_hdr::type" ref="fa0fe6ca88f692d22af70ff007411252" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#fa0fe6ca88f692d22af70ff007411252">type</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="266ea23d75c83f15b915ce54100e51c5"></a><!-- doxytag: member="uip_icmpip_hdr::icode" ref="266ea23d75c83f15b915ce54100e51c5" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#266ea23d75c83f15b915ce54100e51c5">icode</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="805f8fd5533a6d4b6793e0645005da4c"></a><!-- doxytag: member="uip_icmpip_hdr::icmpchksum" ref="805f8fd5533a6d4b6793e0645005da4c" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#805f8fd5533a6d4b6793e0645005da4c">icmpchksum</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6d51f3fa5da9b7f9cd37ae69600c04a"></a><!-- doxytag: member="uip_icmpip_hdr::id" ref="a6d51f3fa5da9b7f9cd37ae69600c04a" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#a6d51f3fa5da9b7f9cd37ae69600c04a">id</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="967def494c68cfc8a08d5a6c4dbbc25d"></a><!-- doxytag: member="uip_icmpip_hdr::seqno" ref="967def494c68cfc8a08d5a6c4dbbc25d" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00091.html#967def494c68cfc8a08d5a6c4dbbc25d">seqno</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+39
View File
@@ -0,0 +1,39 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_neighbor_addr Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_neighbor_addr Struct Reference</h1><!-- doxytag: class="uip_neighbor_addr" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00198.html#l00047">47</a> of file <a class="el" href="a00198.html">uip-neighbor.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4dc3294d67d705f7248ef57e4259424f"></a><!-- doxytag: member="uip_neighbor_addr::addr" ref="4dc3294d67d705f7248ef57e4259424f" args="" -->
<a class="el" href="a00089.html">uip_eth_addr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#4dc3294d67d705f7248ef57e4259424f">addr</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+143
View File
@@ -0,0 +1,143 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_stats Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_stats Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_stats" --><code>#include &lt;<a class="el" href="a00202.html">uip.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The structure holding the TCP/IP statistics that are gathered if UIP_STATISTICS is set to 1.
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01232">1232</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap><a class="anchor" name="1deb2899508216804823498a69378118"></a><!-- doxytag: member="uip_stats::ip" ref="1deb2899508216804823498a69378118" args="" -->
struct {</td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#5d8996950cdf3d8130cc3ad340eb9dff">drop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of dropped packets at the IP layer. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7f7bb2145afba5df00c6e10ddefa8ae1">recv</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of received packets at the IP layer. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#dc69abadd5aa07c7d74f9292db2cd93c">sent</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of sent packets at the IP layer. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#b93e351c3abba0c700b26b7b07e9527d">vhlerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of packets dropped due to wrong IP version or header length. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#0c816f34c0187f2154c91a18d3ad87c8">hblenerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of packets dropped due to wrong IP length, high byte. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#6157452bdc9921f44b2e22e4b5969258">lblenerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of packets dropped due to wrong IP length, low byte. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#8082509468b2ac80ed7746aa1a5bc4f7">fragerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of packets dropped since they were IP fragments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7675e6b9adbddbd545d3aac8ca092fbb">chkerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of packets dropped due to IP checksum errors. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#b4622e2599ff3a592db09219b2641682">protoerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of packets dropped since they were neither ICMP, UDP nor TCP. <br></td></tr>
<tr><td class="memItemLeft" nowrap valign="top">}&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#1deb2899508216804823498a69378118">ip</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">IP statistics. <br></td></tr>
<tr><td class="memItemLeft" nowrap><a class="anchor" name="3983b45977630418d3038231aa8b68ed"></a><!-- doxytag: member="uip_stats::icmp" ref="3983b45977630418d3038231aa8b68ed" args="" -->
struct {</td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#5d8996950cdf3d8130cc3ad340eb9dff">drop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of dropped ICMP packets. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7f7bb2145afba5df00c6e10ddefa8ae1">recv</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of received ICMP packets. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#dc69abadd5aa07c7d74f9292db2cd93c">sent</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of sent ICMP packets. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#8da121d6e50992ec55778f9b2141552d">typeerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of ICMP packets with a wrong type. <br></td></tr>
<tr><td class="memItemLeft" nowrap valign="top">}&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#3983b45977630418d3038231aa8b68ed">icmp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ICMP statistics. <br></td></tr>
<tr><td class="memItemLeft" nowrap><a class="anchor" name="e292b8977f6b81265bf14e1676face3e"></a><!-- doxytag: member="uip_stats::tcp" ref="e292b8977f6b81265bf14e1676face3e" args="" -->
struct {</td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#5d8996950cdf3d8130cc3ad340eb9dff">drop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of dropped TCP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7f7bb2145afba5df00c6e10ddefa8ae1">recv</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of recived TCP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#dc69abadd5aa07c7d74f9292db2cd93c">sent</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of sent TCP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7675e6b9adbddbd545d3aac8ca092fbb">chkerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of TCP segments with a bad checksum. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7a58d95f7f7827789ff52500e3d16c34">ackerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of TCP segments with a bad ACK number. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#b6e9a75167bdddd561373bc5b6ef501c">rst</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of recevied TCP RST (reset) segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#3ad48284f7a91f78bb24096aad89056e">rexmit</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of retransmitted TCP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#494ea6767a8a8fab7abe96b799d6c3b3">syndrop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of dropped SYNs due to too few connections was avaliable. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#e9205a565ea3c911a785fc4e87c91a58">synrst</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of SYNs for closed ports, triggering a RST. <br></td></tr>
<tr><td class="memItemLeft" nowrap valign="top">}&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#e292b8977f6b81265bf14e1676face3e">tcp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">TCP statistics. <br></td></tr>
<tr><td class="memItemLeft" nowrap><a class="anchor" name="4f39f0fe6a820d260fe6cddf9ccaa832"></a><!-- doxytag: member="uip_stats::udp" ref="4f39f0fe6a820d260fe6cddf9ccaa832" args="" -->
struct {</td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#5d8996950cdf3d8130cc3ad340eb9dff">drop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of dropped UDP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7f7bb2145afba5df00c6e10ddefa8ae1">recv</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of recived UDP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#dc69abadd5aa07c7d74f9292db2cd93c">sent</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of sent UDP segments. <br></td></tr>
<tr><td class="memItemLeft" nowrap>&nbsp;&nbsp;&nbsp;<a class="el" href="a00153.html#g727459e5c4f777543c81ffffa3df3f0c">uip_stats_t</a>&nbsp;&nbsp;&nbsp;<a class="el" href="a00093.html#7675e6b9adbddbd545d3aac8ca092fbb">chkerr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Number of UDP segments with a bad checksum. <br></td></tr>
<tr><td class="memItemLeft" nowrap valign="top">}&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#4f39f0fe6a820d260fe6cddf9ccaa832">udp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">UDP statistics. <br></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+99
View File
@@ -0,0 +1,99 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_tcpip_hdr Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_tcpip_hdr Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_tcpip_hdr" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01386">1386</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e1e60d56ea87dfa09230e25ca5ecf2fc"></a><!-- doxytag: member="uip_tcpip_hdr::vhl" ref="e1e60d56ea87dfa09230e25ca5ecf2fc" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#e1e60d56ea87dfa09230e25ca5ecf2fc">vhl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8cf0ca17b115ff2e3071b3fabcc43b53"></a><!-- doxytag: member="uip_tcpip_hdr::tos" ref="8cf0ca17b115ff2e3071b3fabcc43b53" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#8cf0ca17b115ff2e3071b3fabcc43b53">tos</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e57281f5bef284bc9545834ef8ed4a96"></a><!-- doxytag: member="uip_tcpip_hdr::len" ref="e57281f5bef284bc9545834ef8ed4a96" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#e57281f5bef284bc9545834ef8ed4a96">len</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7a59f0dad059786238d8ab604630e7f3"></a><!-- doxytag: member="uip_tcpip_hdr::ipid" ref="7a59f0dad059786238d8ab604630e7f3" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#7a59f0dad059786238d8ab604630e7f3">ipid</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="85d7f35662f7be20cd84e789a290dd4b"></a><!-- doxytag: member="uip_tcpip_hdr::ipoffset" ref="85d7f35662f7be20cd84e789a290dd4b" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#85d7f35662f7be20cd84e789a290dd4b">ipoffset</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0f27e16ddcf7199d514968204966f559"></a><!-- doxytag: member="uip_tcpip_hdr::ttl" ref="0f27e16ddcf7199d514968204966f559" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#0f27e16ddcf7199d514968204966f559">ttl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e45b31a0a277dd5325ad2a332358b21b"></a><!-- doxytag: member="uip_tcpip_hdr::proto" ref="e45b31a0a277dd5325ad2a332358b21b" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#e45b31a0a277dd5325ad2a332358b21b">proto</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="af7a8a5310ad945de38f5b3ac755ae7d"></a><!-- doxytag: member="uip_tcpip_hdr::ipchksum" ref="af7a8a5310ad945de38f5b3ac755ae7d" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#af7a8a5310ad945de38f5b3ac755ae7d">ipchksum</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c8f124419a231f38bb6cdf5041757a27"></a><!-- doxytag: member="uip_tcpip_hdr::srcipaddr" ref="c8f124419a231f38bb6cdf5041757a27" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#c8f124419a231f38bb6cdf5041757a27">srcipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8d4e08d051b35b1c710c3be5b8bbfa05"></a><!-- doxytag: member="uip_tcpip_hdr::destipaddr" ref="8d4e08d051b35b1c710c3be5b8bbfa05" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#8d4e08d051b35b1c710c3be5b8bbfa05">destipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a81fff4836049cb3c018304d77337554"></a><!-- doxytag: member="uip_tcpip_hdr::srcport" ref="a81fff4836049cb3c018304d77337554" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#a81fff4836049cb3c018304d77337554">srcport</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="025ffa46b799fa6952719c499a3ae17c"></a><!-- doxytag: member="uip_tcpip_hdr::destport" ref="025ffa46b799fa6952719c499a3ae17c" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#025ffa46b799fa6952719c499a3ae17c">destport</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2541fae506eb111ff1be2372e0919839"></a><!-- doxytag: member="uip_tcpip_hdr::seqno" ref="2541fae506eb111ff1be2372e0919839" args="[4]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#2541fae506eb111ff1be2372e0919839">seqno</a> [4]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="71721395f1c7c42b8bcc111b339bea7c"></a><!-- doxytag: member="uip_tcpip_hdr::ackno" ref="71721395f1c7c42b8bcc111b339bea7c" args="[4]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#71721395f1c7c42b8bcc111b339bea7c">ackno</a> [4]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6af8a59d0ab8967aacea749d6e59ac90"></a><!-- doxytag: member="uip_tcpip_hdr::tcpoffset" ref="6af8a59d0ab8967aacea749d6e59ac90" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#6af8a59d0ab8967aacea749d6e59ac90">tcpoffset</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="619d9755a5d4aaabdb2e5e6ea4c1e0bf"></a><!-- doxytag: member="uip_tcpip_hdr::flags" ref="619d9755a5d4aaabdb2e5e6ea4c1e0bf" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#619d9755a5d4aaabdb2e5e6ea4c1e0bf">flags</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7f0ab3fe3bcf1e3ed9f5950cb4474ec1"></a><!-- doxytag: member="uip_tcpip_hdr::wnd" ref="7f0ab3fe3bcf1e3ed9f5950cb4474ec1" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#7f0ab3fe3bcf1e3ed9f5950cb4474ec1">wnd</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f4a1d8cfbe270393a2de02b0c743e474"></a><!-- doxytag: member="uip_tcpip_hdr::tcpchksum" ref="f4a1d8cfbe270393a2de02b0c743e474" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#f4a1d8cfbe270393a2de02b0c743e474">tcpchksum</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dc7001682017599549f57771f4cd1b9a"></a><!-- doxytag: member="uip_tcpip_hdr::urgp" ref="dc7001682017599549f57771f4cd1b9a" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#dc7001682017599549f57771f4cd1b9a">urgp</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dde3cf9a57445814d01b3c67da08afdb"></a><!-- doxytag: member="uip_tcpip_hdr::optdata" ref="dde3cf9a57445814d01b3c67da08afdb" args="[4]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00094.html#dde3cf9a57445814d01b3c67da08afdb">optdata</a> [4]</td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+64
View File
@@ -0,0 +1,64 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_udp_conn Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_udp_conn Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_udp_conn" --><code>#include &lt;<a class="el" href="a00202.html">uip.h</a>&gt;</code>
<p>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Representation of a uIP UDP connection. <dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00049.html#_a47">dhcpc.h</a>, and <a class="el" href="a00046.html#_a129">resolv.c</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01210">1210</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8a661a2d544100b82d0d14a1985083d5"></a><!-- doxytag: member="uip_udp_conn::ripaddr" ref="8a661a2d544100b82d0d14a1985083d5" args="" -->
<a class="el" href="a00150.html#g1ef35301f43a5bbb9f89f07b5a36b9a0">uip_ipaddr_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html#8a661a2d544100b82d0d14a1985083d5">ripaddr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The IP address of the remote peer. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="981392e295db4d024eea95805c51c371"></a><!-- doxytag: member="uip_udp_conn::lport" ref="981392e295db4d024eea95805c51c371" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html#981392e295db4d024eea95805c51c371">lport</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The local port number in network byte order. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="280a0c2a93544e597f92bbacf36ee1dc"></a><!-- doxytag: member="uip_udp_conn::rport" ref="280a0c2a93544e597f92bbacf36ee1dc" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html#280a0c2a93544e597f92bbacf36ee1dc">rport</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The remote port number in network byte order. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4da1d7815516cd2b5bda3a66fdf05198"></a><!-- doxytag: member="uip_udp_conn::ttl" ref="4da1d7815516cd2b5bda3a66fdf05198" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html#4da1d7815516cd2b5bda3a66fdf05198">ttl</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default time-to-live. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c8afa29e0aa5e789d6929b366d98ba56"></a><!-- doxytag: member="uip_udp_conn::appstate" ref="c8afa29e0aa5e789d6929b366d98ba56" args="" -->
<a class="el" href="a00153.html#ga92afb113e122f860392bfbd385f842e">uip_udp_appstate_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00095.html#c8afa29e0aa5e789d6929b366d98ba56">appstate</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application state. <br></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: uip_udpip_hdr Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>uip_udpip_hdr Struct Reference<br>
<small>
[<a class="el" href="a00150.html">The uIP TCP/IP stack</a>]</small>
</h1><!-- doxytag: class="uip_udpip_hdr" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<p>
<p>
Definition at line <a class="el" href="a00202.html#l01460">1460</a> of file <a class="el" href="a00202.html">uip.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f1684ad96b8acf54154688df3883b801"></a><!-- doxytag: member="uip_udpip_hdr::vhl" ref="f1684ad96b8acf54154688df3883b801" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#f1684ad96b8acf54154688df3883b801">vhl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ed119a030ebd3bf7c30a12071c27d441"></a><!-- doxytag: member="uip_udpip_hdr::tos" ref="ed119a030ebd3bf7c30a12071c27d441" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#ed119a030ebd3bf7c30a12071c27d441">tos</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="47140aa52cb9e6a2de38fdfc5da08df1"></a><!-- doxytag: member="uip_udpip_hdr::len" ref="47140aa52cb9e6a2de38fdfc5da08df1" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#47140aa52cb9e6a2de38fdfc5da08df1">len</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="569382bc53aa64c227e57efe88fe13ac"></a><!-- doxytag: member="uip_udpip_hdr::ipid" ref="569382bc53aa64c227e57efe88fe13ac" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#569382bc53aa64c227e57efe88fe13ac">ipid</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8587178a29882482be20c2822b402b96"></a><!-- doxytag: member="uip_udpip_hdr::ipoffset" ref="8587178a29882482be20c2822b402b96" args="[2]" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#8587178a29882482be20c2822b402b96">ipoffset</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6f8c65cfc8242197bcc3cb5b4735b16f"></a><!-- doxytag: member="uip_udpip_hdr::ttl" ref="6f8c65cfc8242197bcc3cb5b4735b16f" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#6f8c65cfc8242197bcc3cb5b4735b16f">ttl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="51bbbe3099c10ef26119ddc2aa51e35e"></a><!-- doxytag: member="uip_udpip_hdr::proto" ref="51bbbe3099c10ef26119ddc2aa51e35e" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#51bbbe3099c10ef26119ddc2aa51e35e">proto</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f20186ef441ef5b600e8544a0f2d8d81"></a><!-- doxytag: member="uip_udpip_hdr::ipchksum" ref="f20186ef441ef5b600e8544a0f2d8d81" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#f20186ef441ef5b600e8544a0f2d8d81">ipchksum</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a80e8d0fc768525fa3bfb3d4e4cf260d"></a><!-- doxytag: member="uip_udpip_hdr::srcipaddr" ref="a80e8d0fc768525fa3bfb3d4e4cf260d" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#a80e8d0fc768525fa3bfb3d4e4cf260d">srcipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="be2c98748e180c1747823cd2fb8ecf0e"></a><!-- doxytag: member="uip_udpip_hdr::destipaddr" ref="be2c98748e180c1747823cd2fb8ecf0e" args="[2]" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#be2c98748e180c1747823cd2fb8ecf0e">destipaddr</a> [2]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b20096ae4953caaa42f6bb2373c4494c"></a><!-- doxytag: member="uip_udpip_hdr::srcport" ref="b20096ae4953caaa42f6bb2373c4494c" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#b20096ae4953caaa42f6bb2373c4494c">srcport</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e82f68cb91d8688a619d55d2a8572979"></a><!-- doxytag: member="uip_udpip_hdr::destport" ref="e82f68cb91d8688a619d55d2a8572979" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#e82f68cb91d8688a619d55d2a8572979">destport</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c92d2f194f096e84791f95d7e8f0ba92"></a><!-- doxytag: member="uip_udpip_hdr::udplen" ref="c92d2f194f096e84791f95d7e8f0ba92" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#c92d2f194f096e84791f95d7e8f0ba92">udplen</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="858f970feb7462871c814953697a8ad7"></a><!-- doxytag: member="uip_udpip_hdr::udpchksum" ref="858f970feb7462871c814953697a8ad7" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00096.html#858f970feb7462871c814953697a8ad7">udpchksum</a></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>
+75
View File
@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>uIP 1.0: webclient_state Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li id="current"><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul></div>
<h1>webclient_state Struct Reference<br>
<small>
[<a class="el" href="a00163.html">Web client</a>]</small>
</h1><!-- doxytag: class="webclient_state" --><hr><a name="_details"></a><h2>Detailed Description</h2>
<dl compact><dt><b>Examples: </b></dt><dd>
<p>
<a class="el" href="a00040.html#_a251">webclient.c</a>, and <a class="el" href="a00041.html#_a307">webclient.h</a>.</dl>
<p>
<p>
Definition at line <a class="el" href="a00181.html#l00055">55</a> of file <a class="el" href="a00181.html">webclient.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5960d82e7aca2986b8509a0d87d6cbc8"></a><!-- doxytag: member="webclient_state::timer" ref="5960d82e7aca2986b8509a0d87d6cbc8" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#5960d82e7aca2986b8509a0d87d6cbc8">timer</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8ae6395641b7752dce47881e20cee970"></a><!-- doxytag: member="webclient_state::state" ref="8ae6395641b7752dce47881e20cee970" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#8ae6395641b7752dce47881e20cee970">state</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6925d46b2819adb474a5f0036f02dd7d"></a><!-- doxytag: member="webclient_state::httpflag" ref="6925d46b2819adb474a5f0036f02dd7d" args="" -->
<a class="el" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#6925d46b2819adb474a5f0036f02dd7d">httpflag</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7092781c50dcad50f473888585c85b83"></a><!-- doxytag: member="webclient_state::port" ref="7092781c50dcad50f473888585c85b83" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#7092781c50dcad50f473888585c85b83">port</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6487b9c1c773b32656065d0e19bf142"></a><!-- doxytag: member="webclient_state::host" ref="a6487b9c1c773b32656065d0e19bf142" args="[40]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#a6487b9c1c773b32656065d0e19bf142">host</a> [40]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e87913860c6b05c6e6b060639b950098"></a><!-- doxytag: member="webclient_state::file" ref="e87913860c6b05c6e6b060639b950098" args="[WEBCLIENT_CONF_MAX_URLLEN]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#e87913860c6b05c6e6b060639b950098">file</a> [WEBCLIENT_CONF_MAX_URLLEN]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="134ec55c3d5abaebfed4ff8edfedf1ea"></a><!-- doxytag: member="webclient_state::getrequestptr" ref="134ec55c3d5abaebfed4ff8edfedf1ea" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#134ec55c3d5abaebfed4ff8edfedf1ea">getrequestptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a3116623c6a7da7c82db6c301ae0da3"></a><!-- doxytag: member="webclient_state::getrequestleft" ref="5a3116623c6a7da7c82db6c301ae0da3" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#5a3116623c6a7da7c82db6c301ae0da3">getrequestleft</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="606d2729bf411ade69044828403a72af"></a><!-- doxytag: member="webclient_state::httpheaderline" ref="606d2729bf411ade69044828403a72af" args="[200]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#606d2729bf411ade69044828403a72af">httpheaderline</a> [200]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2fca02673894f222b01ad2d3a4d7dd79"></a><!-- doxytag: member="webclient_state::httpheaderlineptr" ref="2fca02673894f222b01ad2d3a4d7dd79" args="" -->
<a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#2fca02673894f222b01ad2d3a4d7dd79">httpheaderlineptr</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fb60f42593d305ea36d9b4303722696e"></a><!-- doxytag: member="webclient_state::mimetype" ref="fb60f42593d305ea36d9b4303722696e" args="[32]" -->
char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#fb60f42593d305ea36d9b4303722696e">mimetype</a> [32]</td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More