uIP 1.0 based webserver for LPC1114 + ENC28J60

Dependencies:   mbed TMP102

Committer:
ban4jp
Date:
Sat Jun 21 11:54:24 2014 +0000
Revision:
2:4da9ed411bdc
Parent:
apps/webserver/httpd-fs.c@0:685224d2f66d
"/app/webserver" convert *.c to *.cpp.; added TMP102 Temperature sensor page.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ban4jp 0:685224d2f66d 1 /*
ban4jp 0:685224d2f66d 2 * Copyright (c) 2001, Swedish Institute of Computer Science.
ban4jp 0:685224d2f66d 3 * All rights reserved.
ban4jp 0:685224d2f66d 4 *
ban4jp 0:685224d2f66d 5 * Redistribution and use in source and binary forms, with or without
ban4jp 0:685224d2f66d 6 * modification, are permitted provided that the following conditions
ban4jp 0:685224d2f66d 7 * are met:
ban4jp 0:685224d2f66d 8 * 1. Redistributions of source code must retain the above copyright
ban4jp 0:685224d2f66d 9 * notice, this list of conditions and the following disclaimer.
ban4jp 0:685224d2f66d 10 * 2. Redistributions in binary form must reproduce the above copyright
ban4jp 0:685224d2f66d 11 * notice, this list of conditions and the following disclaimer in the
ban4jp 0:685224d2f66d 12 * documentation and/or other materials provided with the distribution.
ban4jp 0:685224d2f66d 13 * 3. Neither the name of the Institute nor the names of its contributors
ban4jp 0:685224d2f66d 14 * may be used to endorse or promote products derived from this software
ban4jp 0:685224d2f66d 15 * without specific prior written permission.
ban4jp 0:685224d2f66d 16 *
ban4jp 0:685224d2f66d 17 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
ban4jp 0:685224d2f66d 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
ban4jp 0:685224d2f66d 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ban4jp 0:685224d2f66d 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
ban4jp 0:685224d2f66d 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
ban4jp 0:685224d2f66d 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
ban4jp 0:685224d2f66d 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
ban4jp 0:685224d2f66d 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
ban4jp 0:685224d2f66d 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
ban4jp 0:685224d2f66d 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
ban4jp 0:685224d2f66d 27 * SUCH DAMAGE.
ban4jp 0:685224d2f66d 28 *
ban4jp 0:685224d2f66d 29 * This file is part of the lwIP TCP/IP stack.
ban4jp 0:685224d2f66d 30 *
ban4jp 0:685224d2f66d 31 * Author: Adam Dunkels <adam@sics.se>
ban4jp 0:685224d2f66d 32 *
ban4jp 0:685224d2f66d 33 * $Id: httpd-fs.c,v 1.1 2006/06/07 09:13:08 adam Exp $
ban4jp 0:685224d2f66d 34 */
ban4jp 0:685224d2f66d 35
ban4jp 2:4da9ed411bdc 36 extern "C" {
ban4jp 2:4da9ed411bdc 37 #include "httpd.h"
ban4jp 2:4da9ed411bdc 38 }
ban4jp 2:4da9ed411bdc 39 //#include "httpd-fs.h"
ban4jp 2:4da9ed411bdc 40 #include "httpd-fs-struct.h"
ban4jp 0:685224d2f66d 41
ban4jp 0:685224d2f66d 42 #ifndef NULL
ban4jp 0:685224d2f66d 43 #define NULL 0
ban4jp 0:685224d2f66d 44 #endif /* NULL */
ban4jp 0:685224d2f66d 45
ban4jp 2:4da9ed411bdc 46 #include "httpd-fs-data.h"
ban4jp 0:685224d2f66d 47
ban4jp 0:685224d2f66d 48 #if HTTPD_FS_STATISTICS
ban4jp 0:685224d2f66d 49 static u16_t count[HTTPD_FS_NUMFILES];
ban4jp 0:685224d2f66d 50 #endif /* HTTPD_FS_STATISTICS */
ban4jp 0:685224d2f66d 51
ban4jp 0:685224d2f66d 52 /*-----------------------------------------------------------------------------------*/
ban4jp 0:685224d2f66d 53 static u8_t
ban4jp 0:685224d2f66d 54 httpd_fs_strcmp(const char *str1, const char *str2)
ban4jp 0:685224d2f66d 55 {
ban4jp 0:685224d2f66d 56 u8_t i;
ban4jp 0:685224d2f66d 57 i = 0;
ban4jp 0:685224d2f66d 58 loop:
ban4jp 0:685224d2f66d 59
ban4jp 0:685224d2f66d 60 if(str2[i] == 0 ||
ban4jp 0:685224d2f66d 61 str1[i] == '\r' ||
ban4jp 0:685224d2f66d 62 str1[i] == '\n') {
ban4jp 0:685224d2f66d 63 return 0;
ban4jp 0:685224d2f66d 64 }
ban4jp 0:685224d2f66d 65
ban4jp 0:685224d2f66d 66 if(str1[i] != str2[i]) {
ban4jp 0:685224d2f66d 67 return 1;
ban4jp 0:685224d2f66d 68 }
ban4jp 0:685224d2f66d 69
ban4jp 0:685224d2f66d 70
ban4jp 0:685224d2f66d 71 ++i;
ban4jp 0:685224d2f66d 72 goto loop;
ban4jp 0:685224d2f66d 73 }
ban4jp 0:685224d2f66d 74 /*-----------------------------------------------------------------------------------*/
ban4jp 0:685224d2f66d 75 int
ban4jp 0:685224d2f66d 76 httpd_fs_open(const char *name, struct httpd_fs_file *file)
ban4jp 0:685224d2f66d 77 {
ban4jp 0:685224d2f66d 78 #if HTTPD_FS_STATISTICS
ban4jp 0:685224d2f66d 79 u16_t i = 0;
ban4jp 0:685224d2f66d 80 #endif /* HTTPD_FS_STATISTICS */
ban4jp 0:685224d2f66d 81 struct httpd_fsdata_file_noconst *f;
ban4jp 0:685224d2f66d 82
ban4jp 0:685224d2f66d 83 for(f = (struct httpd_fsdata_file_noconst *)HTTPD_FS_ROOT;
ban4jp 0:685224d2f66d 84 f != NULL;
ban4jp 0:685224d2f66d 85 f = (struct httpd_fsdata_file_noconst *)f->next) {
ban4jp 0:685224d2f66d 86
ban4jp 0:685224d2f66d 87 if(httpd_fs_strcmp(name, f->name) == 0) {
ban4jp 0:685224d2f66d 88 file->data = f->data;
ban4jp 0:685224d2f66d 89 file->len = f->len;
ban4jp 0:685224d2f66d 90 #if HTTPD_FS_STATISTICS
ban4jp 0:685224d2f66d 91 ++count[i];
ban4jp 0:685224d2f66d 92 #endif /* HTTPD_FS_STATISTICS */
ban4jp 0:685224d2f66d 93 return 1;
ban4jp 0:685224d2f66d 94 }
ban4jp 0:685224d2f66d 95 #if HTTPD_FS_STATISTICS
ban4jp 0:685224d2f66d 96 ++i;
ban4jp 0:685224d2f66d 97 #endif /* HTTPD_FS_STATISTICS */
ban4jp 0:685224d2f66d 98
ban4jp 0:685224d2f66d 99 }
ban4jp 0:685224d2f66d 100 return 0;
ban4jp 0:685224d2f66d 101 }
ban4jp 0:685224d2f66d 102 /*-----------------------------------------------------------------------------------*/
ban4jp 0:685224d2f66d 103 void
ban4jp 0:685224d2f66d 104 httpd_fs_init(void)
ban4jp 0:685224d2f66d 105 {
ban4jp 0:685224d2f66d 106 #if HTTPD_FS_STATISTICS
ban4jp 0:685224d2f66d 107 u16_t i;
ban4jp 0:685224d2f66d 108 for(i = 0; i < HTTPD_FS_NUMFILES; i++) {
ban4jp 0:685224d2f66d 109 count[i] = 0;
ban4jp 0:685224d2f66d 110 }
ban4jp 0:685224d2f66d 111 #endif /* HTTPD_FS_STATISTICS */
ban4jp 0:685224d2f66d 112 }
ban4jp 0:685224d2f66d 113 /*-----------------------------------------------------------------------------------*/
ban4jp 0:685224d2f66d 114 #if HTTPD_FS_STATISTICS
ban4jp 0:685224d2f66d 115 u16_t httpd_fs_count
ban4jp 0:685224d2f66d 116 (char *name)
ban4jp 0:685224d2f66d 117 {
ban4jp 0:685224d2f66d 118 struct httpd_fsdata_file_noconst *f;
ban4jp 0:685224d2f66d 119 u16_t i;
ban4jp 0:685224d2f66d 120
ban4jp 0:685224d2f66d 121 i = 0;
ban4jp 0:685224d2f66d 122 for(f = (struct httpd_fsdata_file_noconst *)HTTPD_FS_ROOT;
ban4jp 0:685224d2f66d 123 f != NULL;
ban4jp 0:685224d2f66d 124 f = (struct httpd_fsdata_file_noconst *)f->next) {
ban4jp 0:685224d2f66d 125
ban4jp 0:685224d2f66d 126 if(httpd_fs_strcmp(name, f->name) == 0) {
ban4jp 0:685224d2f66d 127 return count[i];
ban4jp 0:685224d2f66d 128 }
ban4jp 0:685224d2f66d 129 ++i;
ban4jp 0:685224d2f66d 130 }
ban4jp 0:685224d2f66d 131 return 0;
ban4jp 0:685224d2f66d 132 }
ban4jp 0:685224d2f66d 133 #endif /* HTTPD_FS_STATISTICS */
ban4jp 0:685224d2f66d 134 /*-----------------------------------------------------------------------------------*/