From: Jo-Philipp Wich
Date: Wed, 11 Jun 2014 12:37:19 +0000 (+0000)
Subject: Remove unmaintained components: lucid, fastindex, niu
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=91b97bc9f625d09431dc1c753209a037d7c42fbc;p=oweals%2Fluci.git
Remove unmaintained components: lucid, fastindex, niu
---
diff --git a/contrib/package/luci/Makefile b/contrib/package/luci/Makefile
index b5a0c1d07..5d81d436d 100644
--- a/contrib/package/luci/Makefile
+++ b/contrib/package/luci/Makefile
@@ -158,13 +158,9 @@ ifneq ($(CONFIG_PACKAGE_luci-lib-nixio_cyassl),)
endif
-$(eval $(call library,fastindex,Fastindex indexing module,+PACKAGE_luci-lib-fastindex:liblua))
$(eval $(call library,httpclient,HTTP(S) client library,+luci-lib-web +luci-lib-nixio))
$(eval $(call library,ipkg,LuCI IPKG/OPKG call abstraction library))
$(eval $(call library,json,LuCI JSON library))
-$(eval $(call library,lucid,LuCId Full-Stack Webserver,+luci-lib-nixio +luci-lib-web +luci-lib-px5g))
-$(eval $(call library,lucid-http,LuCId HTTP Backend,+luci-lib-lucid))
-$(eval $(call library,lucid-rpc,LuCId RPC Backend,+luci-lib-lucid))
$(eval $(call library,nixio,NIXIO POSIX library,+PACKAGE_luci-lib-nixio_openssl:libopenssl +PACKAGE_luci-lib-nixio_cyassl:libcyassl))
$(eval $(call library,px5g,RSA/X.509 Key Generator (required for LuCId SSL support),+luci-lib-nixio))
$(eval $(call library,sys,LuCI Linux/POSIX system library))
@@ -238,7 +234,6 @@ $(eval $(call module,admin-mini,LuCI Essentials - stripped down and user-friendl
$(eval $(call module,admin-full,LuCI Administration - full-featured for full control,+luci-mod-admin-core +luci-lib-ipkg))
$(eval $(call module,failsafe,LuCI Fail-Safe - Fail-Safe sysupgrade module,+luci-mod-admin-core))
$(eval $(call module,rpc,LuCI RPC - JSON-RPC API,+luci-lib-json))
-$(eval $(call module,niu,NIU - Next Generation Interface,+luci-mod-admin-core @BROKEN))
### Applications ###
diff --git a/libs/fastindex/Makefile b/libs/fastindex/Makefile
deleted file mode 100644
index ee1a40ea8..000000000
--- a/libs/fastindex/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-include ../../build/module.mk
-include ../../build/config.mk
-include ../../build/gccconfig.mk
-
-%.o: %.c
- $(COMPILE) $(LUA_CFLAGS) $(FPIC) -c -o $@ $<
-
-compile: src/fastindex.o
- mkdir -p dist$(LUCI_LIBRARYDIR)
- $(LINK) $(SHLIB_FLAGS) -o dist$(LUCI_LIBRARYDIR)/fastindex.so src/fastindex.o $(LUA_SHLIBS)
-
-clean:
- rm -f src/*.o
diff --git a/libs/fastindex/src/fastindex.c b/libs/fastindex/src/fastindex.c
deleted file mode 100644
index c9c64bf75..000000000
--- a/libs/fastindex/src/fastindex.c
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * fastindex - fast lua module indexing plugin
- * Copyright (C) 2008 Felix Fietkau
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include
-#include
-#include
-
-#ifndef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE /* XXX: portability hack for timestamp */
-#endif
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include "list.h"
-
-#define MODNAME "luci.fastindex"
-#define DEFAULT_BUFLEN 1024
-
-//#define DEBUG 1
-
-#ifdef DEBUG
-#define DPRINTF(...) fprintf(stderr, __VA_ARGS__)
-#else
-#define DPRINTF(...) do {} while (0)
-#endif
-
-/**
- * list_for_each_offset - iterate over a list, start with the provided pointer
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- */
-#define list_for_each_offset(pos, head, offset) \
- for (pos = (offset)->next; pos != (offset); \
- pos = ((pos->next == (head)) && ((offset) != (head)) ? (head)->next : pos->next))
-
-static char *namespace = NULL;
-
-struct fastindex_entry {
- struct list_head list;
- time_t timestamp;
- int checked;
- char *name;
-};
-
-struct fastindex_pattern {
- struct list_head list;
- char pattern[];
-};
-
-struct fastindex {
- lua_State *L;
- int checked;
- char *func;
- struct list_head patterns;
- struct list_head *last;
- struct list_head entries;
- int ofs;
- char *buf;
- int buflen;
-};
-
-static inline struct fastindex *
-to_fastindex(struct lua_State *L)
-{
- struct fastindex *f;
- lua_getfield(L, lua_upvalueindex(1), "__data");
- f = lua_touserdata(L, -1);
- lua_pop(L, 1);
- return f;
-}
-
-static int
-fastindex_module(lua_State *L)
-{
- const char *s;
- s = luaL_checkstring(L, 1);
-
- if (s) {
- if (namespace)
- free(namespace);
- namespace = strdup(s);
- }
-
- return 0;
-}
-
-static struct fastindex_entry *
-find_entry(struct fastindex *f, char *name)
-{
- struct list_head *p;
-
- if (!f->last)
- f->last = &f->entries;
-
- list_for_each_offset(p, &f->entries, f->last) {
- struct fastindex_entry *e;
- e = container_of(p, struct fastindex_entry, list);
- if (!strcmp(e->name, name))
- return e;
- }
- return NULL;
-}
-
-static struct fastindex_entry *
-new_entry(struct fastindex *f, char *name)
-{
- struct fastindex_entry *e;
-
- e = malloc(sizeof(struct fastindex_entry));
- if (!e)
- goto error;
-
- memset(e, 0, sizeof(struct fastindex_entry));
- e->name = strdup(name);
- if (!e->name) {
- free(e);
- goto error;
- }
- INIT_LIST_HEAD(&e->list);
-
- return e;
-
-error:
- return NULL;
-}
-
-static void free_entry(struct fastindex_entry *e)
-{
- list_del(&e->list);
- free(e->name);
- free(e);
-}
-
-int bufferwriter(lua_State *L, const void *p, size_t sz, void *ud)
-{
- struct fastindex *f = ud;
-
- while (f->ofs + sz > f->buflen) {
- char *b = f->buf;
- f->buflen *= 2;
- f->buf = realloc(f->buf, f->buflen);
- if (!f->buf) {
- free(b);
- return 1;
- }
- }
- memcpy(f->buf + f->ofs, p, sz);
- f->ofs += sz;
- return 0;
-}
-
-static void
-load_index(struct fastindex *f, struct fastindex_entry *e)
-{
- lua_State *L;
-
- DPRINTF("Loading module: %s\n", e->name);
-
- if (!f->buf)
- f->buf = malloc(f->buflen);
-
- if (!f->buf)
- luaL_error(f->L, "Out of memory!\n");
-
- f->ofs = 0;
- L = luaL_newstate();
- if (!L)
- return;
-
- namespace = NULL;
- luaL_openlibs(L);
- lua_pushcfunction(L, fastindex_module);
- lua_setfield(L, LUA_GLOBALSINDEX, "module");
-
- do {
- if (luaL_dofile(L, e->name)) {
- DPRINTF("Warning: unable to open module '%s'\n", e->name);
- break;
- }
-
- lua_getglobal(L, f->func);
- lua_dump(L, bufferwriter, f);
- DPRINTF("Got %d bytes\n", f->ofs);
- if (f->ofs == 0)
- break;
- lua_createtable(f->L, (namespace ? 2 : 1), 0);
- luaL_loadbuffer(f->L, f->buf, f->ofs, "tmp");
- lua_rawseti(f->L, -2, 1);
- if (namespace) {
- DPRINTF("Module has namespace '%s'\n", namespace);
- lua_pushstring(f->L, namespace);
- lua_rawseti(f->L, -2, 2);
- free(namespace);
- namespace = NULL;
- }
- lua_setfield(f->L, -2, e->name);
- } while (0);
-
- lua_close(L);
-}
-
-
-static int
-fastindex_scan(lua_State *L)
-{
- struct list_head *tmp, *p;
- struct fastindex *f;
- glob_t gl;
- int i;
- int gl_flags = GLOB_NOESCAPE | GLOB_NOSORT | GLOB_MARK;
-
- f = to_fastindex(L);
- f->checked++;
-
-
- if (list_empty(&f->patterns))
- return 0;
-
- lua_getfield(L, lua_upvalueindex(1), "indexes");
- list_for_each(p, &f->patterns) {
- struct fastindex_pattern *pt = container_of(p, struct fastindex_pattern, list);
- glob(pt->pattern, gl_flags, NULL, &gl);
- gl_flags |= GLOB_APPEND;
- }
- for (i = 0; i < gl.gl_pathc; i++) {
- struct fastindex_entry *e;
- struct stat st;
-
- if (stat(gl.gl_pathv[i], &st))
- continue;
-
- if ((st.st_mode & S_IFMT) != S_IFREG)
- continue;
-
- e = find_entry(f, gl.gl_pathv[i]);
- if (!e) {
- e = new_entry(f, gl.gl_pathv[i]);
- list_add_tail(&e->list, &f->entries);
- }
-
- e->checked = f->checked;
- if ((e->timestamp < st.st_mtime)) {
- load_index(f, e);
- e->timestamp = st.st_mtime;
- }
- }
- globfree(&gl);
- list_for_each_safe(p, tmp, &f->entries) {
- struct fastindex_entry *e = container_of(p, struct fastindex_entry, list);
- if (e->checked < f->checked) {
- lua_pushnil(f->L);
- lua_setfield(f->L, -2, e->name);
- free_entry(e);
- }
- }
- lua_pop(L, 1);
-
- return 0;
-}
-
-static int
-fastindex_free(lua_State *L)
-{
- struct fastindex *f;
- struct list_head *p, *tmp;
-
- f = lua_touserdata(L, -1);
- list_for_each_safe(p, tmp, &f->patterns) {
- struct fastindex_pattern *pt;
- pt = container_of(p, struct fastindex_pattern, list);
- list_del(p);
- free(pt);
- }
- list_for_each_safe(p, tmp, &f->entries) {
- struct fastindex_entry *e;
- e = container_of(p, struct fastindex_entry, list);
- free_entry(e);
- }
- return 0;
-}
-
-static int
-fastindex_add(lua_State *L)
-{
- struct fastindex_pattern *pt;
- struct fastindex *f;
- const char *str;
-
- f = to_fastindex(L);
- str = luaL_checkstring(L, 1);
- if (!str)
- luaL_error(L, "Invalid argument");
-
- pt = malloc(sizeof(struct fastindex_pattern) + strlen(str) + 1);
- if (!pt)
- luaL_error(L, "Out of memory");
-
- INIT_LIST_HEAD(&pt->list);
- strcpy(pt->pattern, str);
- list_add(&pt->list, &f->patterns);
-
- return 0;
-}
-
-static const luaL_Reg fastindex_m[] = {
- { "add", fastindex_add },
- { "scan", fastindex_scan },
- { NULL, NULL }
-};
-
-static int
-fastindex_new(lua_State *L)
-{
- struct fastindex *f;
- const char *func;
-
- func = luaL_checkstring(L, 1);
-
- f = lua_newuserdata(L, sizeof(struct fastindex));
- lua_createtable(L, 0, 2);
- lua_pushvalue(L, -1);
- lua_setfield(L, -2, "__index");
- lua_pushcfunction(L, fastindex_free);
- lua_setfield(L, -2, "__gc");
- lua_pushvalue(L, -1);
- lua_setmetatable(L, -3);
- lua_pushvalue(L, -2);
- lua_setfield(L, -2, "__data");
- lua_createtable(L, 0, 1);
- lua_setfield(L, -2, "indexes");
- lua_pushvalue(L, -2);
- luaI_openlib(L, NULL, fastindex_m, 1);
-
- memset(f, 0, sizeof(struct fastindex));
- f->L = L;
- f->buflen = DEFAULT_BUFLEN;
- INIT_LIST_HEAD(&f->entries);
- INIT_LIST_HEAD(&f->patterns);
-
- f->func = strdup(func);
- if (!f->func) {
- if (f->func)
- free(f->func);
- luaL_error(L, "Out of memory\n");
- }
-
- return 1;
-}
-
-static const luaL_Reg fastindex[] = {
- { "new", fastindex_new },
- { NULL, NULL },
-};
-
-int
-luaopen_luci_fastindex(lua_State *L)
-{
- luaL_register(L, MODNAME, fastindex);
- return 0;
-}
diff --git a/libs/fastindex/src/list.h b/libs/fastindex/src/list.h
deleted file mode 100644
index 2959a061d..000000000
--- a/libs/fastindex/src/list.h
+++ /dev/null
@@ -1,601 +0,0 @@
-#ifndef _LINUX_LIST_H
-#define _LINUX_LIST_H
-
-#include
-/**
- * container_of - cast a member of a structure out to the containing structure
- * @ptr: the pointer to the member.
- * @type: the type of the container struct this is embedded in.
- * @member: the name of the member within the struct.
- *
- */
-#ifndef container_of
-#define container_of(ptr, type, member) ( \
- (type *)( (char *)ptr - offsetof(type,member) ))
-#endif
-
-
-/*
- * Simple doubly linked list implementation.
- *
- * Some of the internal functions ("__xxx") are useful when
- * manipulating whole lists rather than single entries, as
- * sometimes we already know the next/prev entries and we can
- * generate better code by using them directly rather than
- * using the generic single-entry routines.
- */
-
-struct list_head {
- struct list_head *next, *prev;
-};
-
-#define LIST_HEAD_INIT(name) { &(name), &(name) }
-
-#define LIST_HEAD(name) \
- struct list_head name = LIST_HEAD_INIT(name)
-
-static inline void INIT_LIST_HEAD(struct list_head *list)
-{
- list->next = list;
- list->prev = list;
-}
-
-/*
- * Insert a new entry between two known consecutive entries.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-static inline void __list_add(struct list_head *new,
- struct list_head *prev,
- struct list_head *next)
-{
- next->prev = new;
- new->next = next;
- new->prev = prev;
- prev->next = new;
-}
-
-/**
- * list_add - add a new entry
- * @new: new entry to be added
- * @head: list head to add it after
- *
- * Insert a new entry after the specified head.
- * This is good for implementing stacks.
- */
-static inline void list_add(struct list_head *new, struct list_head *head)
-{
- __list_add(new, head, head->next);
-}
-
-
-/**
- * list_add_tail - add a new entry
- * @new: new entry to be added
- * @head: list head to add it before
- *
- * Insert a new entry before the specified head.
- * This is useful for implementing queues.
- */
-static inline void list_add_tail(struct list_head *new, struct list_head *head)
-{
- __list_add(new, head->prev, head);
-}
-
-
-/*
- * Delete a list entry by making the prev/next entries
- * point to each other.
- *
- * This is only for internal list manipulation where we know
- * the prev/next entries already!
- */
-static inline void __list_del(struct list_head * prev, struct list_head * next)
-{
- next->prev = prev;
- prev->next = next;
-}
-
-/**
- * list_del - deletes entry from list.
- * @entry: the element to delete from the list.
- * Note: list_empty() on entry does not return true after this, the entry is
- * in an undefined state.
- */
-static inline void list_del(struct list_head *entry)
-{
- __list_del(entry->prev, entry->next);
- entry->next = NULL;
- entry->prev = NULL;
-}
-
-/**
- * list_replace - replace old entry by new one
- * @old : the element to be replaced
- * @new : the new element to insert
- *
- * If @old was empty, it will be overwritten.
- */
-static inline void list_replace(struct list_head *old,
- struct list_head *new)
-{
- new->next = old->next;
- new->next->prev = new;
- new->prev = old->prev;
- new->prev->next = new;
-}
-
-static inline void list_replace_init(struct list_head *old,
- struct list_head *new)
-{
- list_replace(old, new);
- INIT_LIST_HEAD(old);
-}
-
-/**
- * list_del_init - deletes entry from list and reinitialize it.
- * @entry: the element to delete from the list.
- */
-static inline void list_del_init(struct list_head *entry)
-{
- __list_del(entry->prev, entry->next);
- INIT_LIST_HEAD(entry);
-}
-
-/**
- * list_move - delete from one list and add as another's head
- * @list: the entry to move
- * @head: the head that will precede our entry
- */
-static inline void list_move(struct list_head *list, struct list_head *head)
-{
- __list_del(list->prev, list->next);
- list_add(list, head);
-}
-
-/**
- * list_move_tail - delete from one list and add as another's tail
- * @list: the entry to move
- * @head: the head that will follow our entry
- */
-static inline void list_move_tail(struct list_head *list,
- struct list_head *head)
-{
- __list_del(list->prev, list->next);
- list_add_tail(list, head);
-}
-
-/**
- * list_is_last - tests whether @list is the last entry in list @head
- * @list: the entry to test
- * @head: the head of the list
- */
-static inline int list_is_last(const struct list_head *list,
- const struct list_head *head)
-{
- return list->next == head;
-}
-
-/**
- * list_empty - tests whether a list is empty
- * @head: the list to test.
- */
-static inline int list_empty(const struct list_head *head)
-{
- return head->next == head;
-}
-
-/**
- * list_empty_careful - tests whether a list is empty and not being modified
- * @head: the list to test
- *
- * Description:
- * tests whether a list is empty _and_ checks that no other CPU might be
- * in the process of modifying either member (next or prev)
- *
- * NOTE: using list_empty_careful() without synchronization
- * can only be safe if the only activity that can happen
- * to the list entry is list_del_init(). Eg. it cannot be used
- * if another CPU could re-list_add() it.
- */
-static inline int list_empty_careful(const struct list_head *head)
-{
- struct list_head *next = head->next;
- return (next == head) && (next == head->prev);
-}
-
-static inline void __list_splice(struct list_head *list,
- struct list_head *head)
-{
- struct list_head *first = list->next;
- struct list_head *last = list->prev;
- struct list_head *at = head->next;
-
- first->prev = head;
- head->next = first;
-
- last->next = at;
- at->prev = last;
-}
-
-/**
- * list_splice - join two lists
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- */
-static inline void list_splice(struct list_head *list, struct list_head *head)
-{
- if (!list_empty(list))
- __list_splice(list, head);
-}
-
-/**
- * list_splice_init - join two lists and reinitialise the emptied list.
- * @list: the new list to add.
- * @head: the place to add it in the first list.
- *
- * The list at @list is reinitialised
- */
-static inline void list_splice_init(struct list_head *list,
- struct list_head *head)
-{
- if (!list_empty(list)) {
- __list_splice(list, head);
- INIT_LIST_HEAD(list);
- }
-}
-
-/**
- * list_entry - get the struct for this entry
- * @ptr: the &struct list_head pointer.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the list_struct within the struct.
- */
-#define list_entry(ptr, type, member) \
- container_of(ptr, type, member)
-
-/**
- * list_first_entry - get the first element from a list
- * @ptr: the list head to take the element from.
- * @type: the type of the struct this is embedded in.
- * @member: the name of the list_struct within the struct.
- *
- * Note, that list is expected to be not empty.
- */
-#define list_first_entry(ptr, type, member) \
- list_entry((ptr)->next, type, member)
-
-/**
- * list_for_each - iterate over a list
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- */
-#define list_for_each(pos, head) \
- for (pos = (head)->next; pos != (head); \
- pos = pos->next)
-
-/**
- * __list_for_each - iterate over a list
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- *
- * This variant differs from list_for_each() in that it's the
- * simplest possible list iteration code, no prefetching is done.
- * Use this for code that knows the list to be very short (empty
- * or 1 entry) most of the time.
- */
-#define __list_for_each(pos, head) \
- for (pos = (head)->next; pos != (head); pos = pos->next)
-
-/**
- * list_for_each_prev - iterate over a list backwards
- * @pos: the &struct list_head to use as a loop cursor.
- * @head: the head for your list.
- */
-#define list_for_each_prev(pos, head) \
- for (pos = (head)->prev; pos != (head); \
- pos = pos->prev)
-
-/**
- * list_for_each_safe - iterate over a list safe against removal of list entry
- * @pos: the &struct list_head to use as a loop cursor.
- * @n: another &struct list_head to use as temporary storage
- * @head: the head for your list.
- */
-#define list_for_each_safe(pos, n, head) \
- for (pos = (head)->next, n = pos->next; pos != (head); \
- pos = n, n = pos->next)
-
-/**
- * list_for_each_prev_safe - iterate over a list backwards safe against removal of list entry
- * @pos: the &struct list_head to use as a loop cursor.
- * @n: another &struct list_head to use as temporary storage
- * @head: the head for your list.
- */
-#define list_for_each_prev_safe(pos, n, head) \
- for (pos = (head)->prev, n = pos->prev; \
- pos != (head); \
- pos = n, n = pos->prev)
-
-/**
- * list_for_each_entry - iterate over list of given type
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- */
-#define list_for_each_entry(pos, head, member) \
- for (pos = list_entry((head)->next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_reverse - iterate backwards over list of given type.
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- */
-#define list_for_each_entry_reverse(pos, head, member) \
- for (pos = list_entry((head)->prev, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.prev, typeof(*pos), member))
-
-/**
- * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue()
- * @pos: the type * to use as a start point
- * @head: the head of the list
- * @member: the name of the list_struct within the struct.
- *
- * Prepares a pos entry for use as a start point in list_for_each_entry_continue().
- */
-#define list_prepare_entry(pos, head, member) \
- ((pos) ? : list_entry(head, typeof(*pos), member))
-
-/**
- * list_for_each_entry_continue - continue iteration over list of given type
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Continue to iterate over list of given type, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue(pos, head, member) \
- for (pos = list_entry(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_continue_reverse - iterate backwards from the given point
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Start to iterate over list of given type backwards, continuing after
- * the current position.
- */
-#define list_for_each_entry_continue_reverse(pos, head, member) \
- for (pos = list_entry(pos->member.prev, typeof(*pos), member); \
- &pos->member != (head); \
- pos = list_entry(pos->member.prev, typeof(*pos), member))
-
-/**
- * list_for_each_entry_from - iterate over list of given type from the current point
- * @pos: the type * to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate over list of given type, continuing from current position.
- */
-#define list_for_each_entry_from(pos, head, member) \
- for (; &pos->member != (head); \
- pos = list_entry(pos->member.next, typeof(*pos), member))
-
-/**
- * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- */
-#define list_for_each_entry_safe(pos, n, head, member) \
- for (pos = list_entry((head)->next, typeof(*pos), member), \
- n = list_entry(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_continue
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate over list of given type, continuing after current point,
- * safe against removal of list entry.
- */
-#define list_for_each_entry_safe_continue(pos, n, head, member) \
- for (pos = list_entry(pos->member.next, typeof(*pos), member), \
- n = list_entry(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_from
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate over list of given type from current point, safe against
- * removal of list entry.
- */
-#define list_for_each_entry_safe_from(pos, n, head, member) \
- for (n = list_entry(pos->member.next, typeof(*pos), member); \
- &pos->member != (head); \
- pos = n, n = list_entry(n->member.next, typeof(*n), member))
-
-/**
- * list_for_each_entry_safe_reverse
- * @pos: the type * to use as a loop cursor.
- * @n: another type * to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the list_struct within the struct.
- *
- * Iterate backwards over list of given type, safe against removal
- * of list entry.
- */
-#define list_for_each_entry_safe_reverse(pos, n, head, member) \
- for (pos = list_entry((head)->prev, typeof(*pos), member), \
- n = list_entry(pos->member.prev, typeof(*pos), member); \
- &pos->member != (head); \
- pos = n, n = list_entry(n->member.prev, typeof(*n), member))
-
-/*
- * Double linked lists with a single pointer list head.
- * Mostly useful for hash tables where the two pointer list head is
- * too wasteful.
- * You lose the ability to access the tail in O(1).
- */
-
-struct hlist_head {
- struct hlist_node *first;
-};
-
-struct hlist_node {
- struct hlist_node *next, **pprev;
-};
-
-#define HLIST_HEAD_INIT { .first = NULL }
-#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL }
-#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)
-static inline void INIT_HLIST_NODE(struct hlist_node *h)
-{
- h->next = NULL;
- h->pprev = NULL;
-}
-
-static inline int hlist_unhashed(const struct hlist_node *h)
-{
- return !h->pprev;
-}
-
-static inline int hlist_empty(const struct hlist_head *h)
-{
- return !h->first;
-}
-
-static inline void __hlist_del(struct hlist_node *n)
-{
- struct hlist_node *next = n->next;
- struct hlist_node **pprev = n->pprev;
- *pprev = next;
- if (next)
- next->pprev = pprev;
-}
-
-static inline void hlist_del(struct hlist_node *n)
-{
- __hlist_del(n);
- n->next = NULL;
- n->pprev = NULL;
-}
-
-static inline void hlist_del_init(struct hlist_node *n)
-{
- if (!hlist_unhashed(n)) {
- __hlist_del(n);
- INIT_HLIST_NODE(n);
- }
-}
-
-
-static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
-{
- struct hlist_node *first = h->first;
- n->next = first;
- if (first)
- first->pprev = &n->next;
- h->first = n;
- n->pprev = &h->first;
-}
-
-
-/* next must be != NULL */
-static inline void hlist_add_before(struct hlist_node *n,
- struct hlist_node *next)
-{
- n->pprev = next->pprev;
- n->next = next;
- next->pprev = &n->next;
- *(n->pprev) = n;
-}
-
-static inline void hlist_add_after(struct hlist_node *n,
- struct hlist_node *next)
-{
- next->next = n->next;
- n->next = next;
- next->pprev = &n->next;
-
- if(next->next)
- next->next->pprev = &next->next;
-}
-
-#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
-
-#define hlist_for_each(pos, head) \
- for (pos = (head)->first; pos; pos = pos->next)
-
-#define hlist_for_each_safe(pos, n, head) \
- for (pos = (head)->first; pos; pos = n)
-
-/**
- * hlist_for_each_entry - iterate over list of given type
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry(tpos, pos, head, member) \
- for (pos = (head)->first; pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_for_each_entry_continue - iterate over a hlist continuing after current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_continue(tpos, pos, member) \
- for (pos = (pos)->next; pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_for_each_entry_from - iterate over a hlist continuing from current point
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_from(tpos, pos, member) \
- for (; pos && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = pos->next)
-
-/**
- * hlist_for_each_entry_safe - iterate over list of given type safe against removal of list entry
- * @tpos: the type * to use as a loop cursor.
- * @pos: the &struct hlist_node to use as a loop cursor.
- * @n: another &struct hlist_node to use as temporary storage
- * @head: the head for your list.
- * @member: the name of the hlist_node within the struct.
- */
-#define hlist_for_each_entry_safe(tpos, pos, n, head, member) \
- for (pos = (head)->first; \
- pos && ({ n = pos->next; 1; }) && \
- ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \
- pos = n)
-
-#endif
diff --git a/libs/lucid-http/Makefile b/libs/lucid-http/Makefile
deleted file mode 100644
index 2bdfad16e..000000000
--- a/libs/lucid-http/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-include ../../build/module.mk
-include ../../build/config.mk
\ No newline at end of file
diff --git a/libs/lucid-http/docs/OVERVIEW b/libs/lucid-http/docs/OVERVIEW
deleted file mode 100644
index 74b499ca9..000000000
--- a/libs/lucid-http/docs/OVERVIEW
+++ /dev/null
@@ -1,17 +0,0 @@
- LuCId HTTP/1.1 Server Slave
-
-*** Abstract ***
-The LuCId HTTP-Server Slave is an HTTP/1.1 implementation for the LuCId
-superserver loosely based on the LuCI HTTP stack. It supports keep-alive,
-pipelining, basic authentication, kernel-mode file transfer (sendfile()
-through nixio), address and hostname based virtual hosts, custom 404 pages,
-E-Tags, conditional headers, directory indexing and partial file transfers.
-
-
-*** Workflow ***
-After receiving an incoming connection from LuCId, the slave parses the request
-and prepares the environment for the acion handler. After that the virtual host
-will be dispatched and the request will be passed on to the respective handler.
-The handler will enforce access restrictions if configured and then returns a
-status code a set of response headers, as well as a content resource that will
-be sent to the user.
\ No newline at end of file
diff --git a/libs/lucid-http/luasrc/lucid/http.lua b/libs/lucid-http/luasrc/lucid/http.lua
deleted file mode 100644
index 931967c56..000000000
--- a/libs/lucid-http/luasrc/lucid/http.lua
+++ /dev/null
@@ -1,36 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2009 Steven Barth
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local require, ipairs, pcall = require, ipairs, pcall
-local srv = require "luci.lucid.http.server"
-
-module "luci.lucid.http"
-
---- Prepare the HTTP-daemon and its associated publishers.
--- @param publisher Table of publishers
--- @return factory callback or nil, error message
-function factory(publisher)
- local server = srv.Server()
- for _, r in ipairs(publisher) do
- local t = r[".type"]
- local s, mod = pcall(require, "luci.lucid.http." .. (r[".type"] or ""))
- if s and mod then
- mod.factory(server, r)
- else
- return nil, mod
- end
- end
-
- return function(...) return server:process(...) end
-end
\ No newline at end of file
diff --git a/libs/lucid-http/luasrc/lucid/http/DirectoryPublisher.lua b/libs/lucid-http/luasrc/lucid/http/DirectoryPublisher.lua
deleted file mode 100644
index 09cade49e..000000000
--- a/libs/lucid-http/luasrc/lucid/http/DirectoryPublisher.lua
+++ /dev/null
@@ -1,50 +0,0 @@
---[[
-LuCId HTTP-Slave
-(c) 2009 Steven Barth
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local ipairs, require, tostring, type = ipairs, require, tostring, type
-local file = require "luci.lucid.http.handler.file"
-local srv = require "luci.lucid.http.server"
-
-module "luci.lucid.http.DirectoryPublisher"
-
-
---- Prepare a directory publisher and assign it to a given Virtual Host.
--- @param server HTTP daemon object
--- @param config publisher configuration
-function factory(server, config)
- config.domain = config.domain or ""
- local vhost = server:get_vhosts()[config.domain]
- if not vhost then
- vhost = srv.VHost()
- server:set_vhost(config.domain, vhost)
- end
-
- local handler = file.Simple(config.name, config.physical, config)
- if config.read then
- for _, r in ipairs(config.read) do
- if r:sub(1,1) == ":" then
- handler:restrict({interface = r:sub(2)})
- else
- handler:restrict({user = r})
- end
- end
- end
-
- if type(config.virtual) == "table" then
- for _, v in ipairs(config.virtual) do
- vhost:set_handler(v, handler)
- end
- else
- vhost:set_handler(config.virtual or "", handler)
- end
-end
diff --git a/libs/lucid-http/luasrc/lucid/http/LuciWebPublisher.lua b/libs/lucid-http/luasrc/lucid/http/LuciWebPublisher.lua
deleted file mode 100644
index 5dc70df84..000000000
--- a/libs/lucid-http/luasrc/lucid/http/LuciWebPublisher.lua
+++ /dev/null
@@ -1,73 +0,0 @@
---[[
-LuCId HTTP-Slave
-(c) 2009 Steven Barth
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local ipairs, pcall, type = ipairs, pcall, type
-local luci = require "luci.lucid.http.handler.luci"
-local srv = require "luci.lucid.http.server"
-
-
-module "luci.lucid.http.LuciWebPublisher"
-
-
---- Prepare a LuCI web publisher and assign it to a given Virtual Host.
--- @param server HTTP daemon object
--- @param config publisher configuration
-function factory(server, config)
- pcall(function()
- require "luci.dispatcher"
- require "luci.cbi"
- end)
-
- config.domain = config.domain or ""
- local vhost = server:get_vhosts()[config.domain]
- if not vhost then
- vhost = srv.VHost()
- server:set_vhost(config.domain, vhost)
- end
-
- local prefix
- if config.physical and #config.physical > 0 then
- prefix = {}
- for k in config.physical:gmatch("[^/]+") do
- if #k > 0 then
- prefix[#prefix+1] = k
- end
- end
- end
-
- local handler = luci.Luci(config.name, prefix)
- if config.exec then
- for _, r in ipairs(config.exec) do
- if r:sub(1,1) == ":" then
- handler:restrict({interface = r:sub(2)})
- else
- handler:restrict({user = r})
- end
- end
- end
-
- local mypath
- if type(config.virtual) == "table" then
- for _, v in ipairs(config.virtual) do
- mypath = mypath or v
- vhost:set_handler(v, handler)
- end
- else
- mypath = config.virtual
- vhost:set_handler(config.virtual or "", handler)
- end
-
- if config.home then
- vhost.default = mypath
- end
-end
diff --git a/libs/lucid-http/luasrc/lucid/http/Redirector.lua b/libs/lucid-http/luasrc/lucid/http/Redirector.lua
deleted file mode 100644
index 66a86a7ff..000000000
--- a/libs/lucid-http/luasrc/lucid/http/Redirector.lua
+++ /dev/null
@@ -1,33 +0,0 @@
---[[
-LuCId HTTP-Slave
-(c) 2009 Steven Barth
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local ipairs = ipairs
-local catchall = require "luci.lucid.http.handler.catchall"
-local srv = require "luci.lucid.http.server"
-
-module "luci.lucid.http.Redirector"
-
---- Prepare a redirector publisher and assign it to a given Virtual Host.
--- @param server HTTP daemon object
--- @param config publisher configuration
-function factory(server, config)
- config.domain = config.domain or ""
- local vhost = server:get_vhosts()[config.domain]
- if not vhost then
- vhost = srv.VHost()
- server:set_vhost(config.domain, vhost)
- end
-
- local handler = catchall.Redirect(config.name, config.physical)
- vhost:set_handler(config.virtual or "", handler)
-end
diff --git a/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua b/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua
deleted file mode 100644
index 13272d91e..000000000
--- a/libs/lucid-http/luasrc/lucid/http/handler/catchall.lua
+++ /dev/null
@@ -1,87 +0,0 @@
---[[
-LuCId HTTP-Slave
-(c) 2009 Steven Barth
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-
-local srv = require "luci.lucid.http.server"
-local proto = require "luci.http.protocol"
-local util = require "luci.util"
-local ip = require "luci.ip"
-local ipairs = ipairs
-
---- Catchall Handler
--- @cstyle instance
-module "luci.lucid.http.handler.catchall"
-
---- Create a Redirect handler.
--- @param name Name
--- @param target Redirect Target
--- @class function
--- @return Redirect handler object
-Redirect = util.class(srv.Handler)
-
-function Redirect.__init__(self, name, target)
- srv.Handler.__init__(self, name)
- self.target = target
-end
-
---- Handle a GET request.
--- @param request Request object
--- @return status code, header table, response source
-function Redirect.handle_GET(self, request)
- local target = self.target
- local protocol = request.env.HTTPS and "https://" or "http://"
- local server = request.env.SERVER_ADDR
-
- if request.env.REMOTE_ADDR and not request.env.REMOTE_ADDR:find(":") then
- local compare = ip.IPv4(request.env.REMOTE_ADDR)
- for _, iface in ipairs(request.server.interfaces) do
- if iface.family == "inet" and iface.addr and iface.netmask then
- if ip.IPv4(iface.addr, iface.netmask):contains(compare) then
- server = iface.addr
- break
- end
- end
- end
- end
-
- if server:find(":") then
- server = "[" .. server .. "]"
- end
-
- if self.target:sub(1,1) == ":" then
- target = protocol .. server .. target
- end
-
- local s, e = target:find("%TARGET%", 1, true)
- if s then
- local req = protocol .. (request.env.HTTP_HOST or server)
- .. request.env.REQUEST_URI
- target = target:sub(1, s-1) .. req .. target:sub(e+1)
- end
-
- return 302, { Location = target }
-end
-
---- Handle a POST request.
--- @class function
--- @param request Request object
--- @return status code, header table, response source
-Redirect.handle_POST = Redirect.handle_GET
-
---- Handle a HEAD request.
--- @class function
--- @param request Request object
--- @return status code, header table, response source
-function Redirect.handle_HEAD(self, request)
- local stat, head = self:handle_GET(request)
- return stat, head
-end
diff --git a/libs/lucid-http/luasrc/lucid/http/handler/file.lua b/libs/lucid-http/luasrc/lucid/http/handler/file.lua
deleted file mode 100644
index 4f29c8bd2..000000000
--- a/libs/lucid-http/luasrc/lucid/http/handler/file.lua
+++ /dev/null
@@ -1,272 +0,0 @@
---[[
-
-HTTP server implementation for LuCI - file handler
-(c) 2008 Steven Barth
-(c) 2008 Freifunk Leipzig / Jo-Philipp Wich
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
-]]--
-
-local ipairs, type, tonumber = ipairs, type, tonumber
-local os = require "os"
-local nixio = require "nixio", require "nixio.util"
-local fs = require "nixio.fs"
-local util = require "luci.util"
-local ltn12 = require "luci.ltn12"
-local srv = require "luci.lucid.http.server"
-local string = require "string"
-
-local prot = require "luci.http.protocol"
-local date = require "luci.http.protocol.date"
-local mime = require "luci.http.protocol.mime"
-local cond = require "luci.http.protocol.conditionals"
-
---- File system handler
--- @cstyle instance
-module "luci.lucid.http.handler.file"
-
---- Create a simple file system handler.
--- @class function
--- @param name Name
--- @param docroot Physical Document Root
--- @param options Options
--- @return Simple file system handler object
-Simple = util.class(srv.Handler)
-
-function Simple.__init__(self, name, docroot, options)
- srv.Handler.__init__(self, name)
- self.docroot = docroot
- self.realdocroot = fs.realpath(self.docroot)
-
- options = options or {}
- self.dirlist = not options.noindex
- self.error404 = options.error404
-end
-
---- Parse a range request.
--- @param request Request object
--- @param size File size
--- @return offset, length, range header or boolean status
-function Simple.parse_range(self, request, size)
- if not request.headers.Range then
- return true
- end
-
- local from, to = request.headers.Range:match("bytes=([0-9]*)-([0-9]*)")
- if not (from or to) then
- return true
- end
-
- from, to = tonumber(from), tonumber(to)
- if not (from or to) then
- return true
- elseif not from then
- from, to = size - to, size - 1
- elseif not to then
- to = size - 1
- end
-
- -- Not satisfiable
- if from >= size then
- return false
- end
-
- -- Normalize
- if to >= size then
- to = size - 1
- end
-
- local range = "bytes " .. from .. "-" .. to .. "/" .. size
- return from, (1 + to - from), range
-end
-
---- Translate path and return file information.
--- @param uri Request URI
--- @return physical file path, file information
-function Simple.getfile(self, uri)
- if not self.realdocroot then
- self.realdocroot = fs.realpath(self.docroot)
- end
- local file = fs.realpath(self.docroot .. uri)
- if not file or file:sub(1, #self.realdocroot) ~= self.realdocroot then
- return uri
- end
- return file, fs.stat(file)
-end
-
---- Handle a GET request.
--- @param request Request object
--- @return status code, header table, response source
-function Simple.handle_GET(self, request)
- local file, stat = self:getfile(prot.urldecode(request.env.PATH_INFO, true))
-
- if stat then
- if stat.type == "reg" then
-
- -- Generate Entity Tag
- local etag = cond.mk_etag( stat )
-
- -- Check conditionals
- local ok, code, hdrs
-
- ok, code, hdrs = cond.if_modified_since( request, stat )
- if ok then
- ok, code, hdrs = cond.if_match( request, stat )
- if ok then
- ok, code, hdrs = cond.if_unmodified_since( request, stat )
- if ok then
- ok, code, hdrs = cond.if_none_match( request, stat )
- if ok then
- local f, err = nixio.open(file)
-
- if f then
- local code = 200
- local o, s, r = self:parse_range(request, stat.size)
-
- if not o then
- return self:failure(416, "Invalid Range")
- end
-
- local headers = {
- ["Cache-Control"] = "max-age=29030400",
- ["Last-Modified"] = date.to_http( stat.mtime ),
- ["Content-Type"] = mime.to_mime( file ),
- ["ETag"] = etag,
- ["Accept-Ranges"] = "bytes",
- }
-
- if o == true then
- s = stat.size
- else
- code = 206
- headers["Content-Range"] = r
- f:seek(o)
- end
-
- headers["Content-Length"] = s
-
- -- Send Response
- return code, headers, srv.IOResource(f, s)
- else
- return self:failure( 403, err:gsub("^.+: ", "") )
- end
- else
- return code, hdrs
- end
- else
- return code, hdrs
- end
- else
- return code, hdrs
- end
- else
- return code, hdrs
- end
-
- elseif stat.type == "dir" then
-
- local ruri = request.env.REQUEST_URI:gsub("/$", "")
- local duri = prot.urldecode( ruri, true )
- local root = self.docroot
-
- -- check for index files
- local index_candidates = {
- "index.html", "index.htm", "default.html", "default.htm",
- "index.txt", "default.txt"
- }
-
- -- try to find an index file and redirect to it
- for i, candidate in ipairs( index_candidates ) do
- local istat = fs.stat(
- root .. "/" .. duri .. "/" .. candidate
- )
-
- if istat ~= nil and istat.type == "reg" then
- return 302, { Location = ruri .. "/" .. candidate }
- end
- end
-
-
- local html = string.format(
- '\n' ..
- '\n'..
- '\n' ..
- '\n' ..
- 'Index of %s/\n' ..
- '
',
- duri, duri, ruri
- )
-
- local entries = fs.dir( file )
-
- if type(entries) == "function" then
- for i, e in util.vspairs(nixio.util.consume(entries)) do
- local estat = fs.stat( file .. "/" .. e )
-
- if estat.type == "dir" then
- html = html .. string.format(
- '
<%=arps%><% if leasefn then %>
-(<%=leasefn%> assigned)
-<% end %>
-
-<% end %>
-
-
-
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/network/rtable.htm b/modules/niu/luasrc/view/niu/network/rtable.htm
deleted file mode 100644
index 412baa166..000000000
--- a/modules/niu/luasrc/view/niu/network/rtable.htm
+++ /dev/null
@@ -1,112 +0,0 @@
-<%#
-LuCI - Lua Configuration Interface
-Copyright 2008-2009 Steven Barth
-Copyright 2008-2009 Jo-Philipp Wich
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
--%>
-
-<%-
- local fs = require "nixio.fs"
- local bit = require "nixio".bit
- local sys = require "luci.sys"
- local uci = require "luci.model.uci"
- local inst = uci.inst
- local state = uci.inst_state
- local http = require "luci.http"
- local style = true
-
-
- local ifc = {__index = function(self, key)
- local net = key
- state:foreach("network", "interface", function(s)
- if s.ifname == key then
- net = s[".name"]
- end
- end)
- rawset(self, key, net)
- return net
- end}
- setmetatable(ifc, ifc)
-
- if http.formvalue("toggle_rtable") then
- local cursor = uci.cursor()
- local rt = cursor:get("network", "lan", "_showrtable") or "1"
- cursor:set("network", "lan", "_showrtable", rt == "1" and "0" or "1")
- cursor:save("network")
- cursor:unload("network")
- inst:unload("network")
- end
--%>
-
-
-
-
-<% if inst:get("network", "lan", "_showrtable") ~= "0" then %>
-
-
-
-
-
- <% if fs.access("/proc/net/ipv6_route") then style = true %>
-
-
- <% end %>
-
-<% end %>
diff --git a/modules/niu/luasrc/view/niu/network/warn_ip_change.htm b/modules/niu/luasrc/view/niu/network/warn_ip_change.htm
deleted file mode 100644
index c8a787510..000000000
--- a/modules/niu/luasrc/view/niu/network/warn_ip_change.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-<%
-local http = require "luci.http"
-local dsp = require "luci.dispatcher"
-local ip = require "luci.model.uci".inst:get("network", "lan", "ipaddr")
-local url = (http.getenv("HTTPS") and "https" or "http") .. "://" .. ip ..
-dsp.build_url("niu")
-%>
-
-
Warning! The device IP-address has been changed.
-It will be available in a few seconds at <%=url%>
-
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/network/wlanwanscan.htm b/modules/niu/luasrc/view/niu/network/wlanwanscan.htm
deleted file mode 100644
index f02b32ff5..000000000
--- a/modules/niu/luasrc/view/niu/network/wlanwanscan.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
Scanning for wireless networks in range
-
This may take a few seconds. Please wait...
-
-
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/null.htm b/modules/niu/luasrc/view/niu/null.htm
deleted file mode 100644
index fe3a0735d..000000000
--- a/modules/niu/luasrc/view/niu/null.htm
+++ /dev/null
@@ -1 +0,0 @@
-NULL
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/system.htm b/modules/niu/luasrc/view/niu/system.htm
deleted file mode 100644
index c702214e1..000000000
--- a/modules/niu/luasrc/view/niu/system.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<%
-local nxo = require "nixio"
-local fs = require "nixio.fs"
-local sinfo = nxo.sysinfo()
-local load1 = nxo.bit.div(sinfo.loads[1] * 100, 1)
-local load15 = nxo.bit.div(sinfo.loads[3] * 100, 1)
-
-local meminfo = fs.readfile("/proc/meminfo")
-local totalram = nxo.bit.div(sinfo.totalram, 1024)
-local freeram = nxo.bit.div(sinfo.freeram, 1024)
-local buffers = nxo.bit.div(sinfo.bufferram, 1024)
-local cached = tonumber(meminfo:match("Cached:%s+([0-9]+)%s+"))
-local memused = nxo.bit.div(totalram - freeram - cached - buffers, 1024)
-totalram = nxo.bit.div(totalram, 1024)
-
-local totalswap = nxo.bit.div(sinfo.totalswap, 1048576)
-local usedswap = totalswap - nxo.bit.div(sinfo.freeswap, 1048576)
-
-
-local function date_format(secs)
- local suff = {"min", "h", "d"}
- local mins = 0
- local hour = 0
- local days = 0
-
- secs = nxo.bit.div(secs, 1)
- if secs > 60 then
- mins = nxo.bit.div(secs, 60)
- secs = secs % 60
- end
-
- if mins > 60 then
- hour = nxo.bit.div(mins, 60)
- mins = mins % 60
- end
-
- if hour > 24 then
- days = nxo.bit.div(hour, 24)
- hour = hour % 24
- end
-
- if days > 0 then
- return string.format("%.0fd %02.0fh %02.0fmin", days, hour, mins)
- else
- return string.format("%02.0fh %02.0fmin", hour, mins)
- end
-end
-%>
-
-
-
Load:
-
<%=load1%>% / <%=load15%>%
-
-
-
Memory:
-
<%=memused%> MiB / <%=totalram%> MiB
-
-
-
-<% if totalswap > 0 then %>
-
-
Swap:
-
<%=usedswap%> MiB / <%=totalswap%> MiB
-
-<% end %>
-
-
-
Uptime:
-
<%=date_format(sinfo.uptime)%>
-
-
-
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/system/backup.htm b/modules/niu/luasrc/view/niu/system/backup.htm
deleted file mode 100644
index 82b9314be..000000000
--- a/modules/niu/luasrc/view/niu/system/backup.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<%#
-LuCI - Lua Configuration Interface
-Copyright 2008 Steven Barth
-Copyright 2008 Jo-Philipp Wich
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
--%>
-<%+header%>
-
-
-
-
-
-<%+footer%>
diff --git a/modules/niu/luasrc/view/niu/system/reboot.htm b/modules/niu/luasrc/view/niu/system/reboot.htm
deleted file mode 100644
index 4b356d61e..000000000
--- a/modules/niu/luasrc/view/niu/system/reboot.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-Rebooting. Please wait...
-
-
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/system/upgrade.htm b/modules/niu/luasrc/view/niu/system/upgrade.htm
deleted file mode 100644
index 1083a1618..000000000
--- a/modules/niu/luasrc/view/niu/system/upgrade.htm
+++ /dev/null
@@ -1,105 +0,0 @@
-<%#
-LuCI - Lua Configuration Interface
-Copyright 2008 Steven Barth
-Copyright 2008-2009 Jo-Philipp Wich
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
--%>
-
-<%+header%>
-
-
-
-<% if step == 1 then %>
- <% if supported then %>
-
-
- <%:Firmware image%>:
-
-
-
-
- <% if keepavail then -%>
-
- <%:Keep configuration files%>
- <% end -%>
-
-
-
-
-
- <% else %>
-
<%_ Sorry.
- OpenWrt does not support a system upgrade on this platform.
- You need to manually flash your device. %>
- <% end %>
-<% elseif step == 2 then %>
-
- <%_ The flash image was uploaded.
- Below is the checksum and file size listed,
- compare them with the original file to ensure data integrity.
- Click "Proceed" below to start the flash procedure. %>
-
- <% if flashsize > 0 and filesize > flashsize then %>
-
-
<%:It appears that you try to
- flash an image that does not fit into the flash memory, please verify
- the image file! %>
- <% end %>
-
-
-
-
<%:Checksum%>: <%=checksum%>
-
<%:Size%>: <%
- local w = require "luci.tools.webadmin"
- write(w.byte_format(filesize))
-
- if flashsize > 0 then
- write(luci.i18n.translatef(
- " (%s available)",
- w.byte_format(flashsize)
- ))
- end
- %>
-
-
-
-
-
-
-<% elseif step == 3 then %>
-
<%_ The system is flashing now.
- DO NOT POWER OFF THE DEVICE!
- Wait a few minutes until you try to reconnect.
- It might be necessary to renew the address of your computer to reach the device
- again, depending on your settings. %>
-<%=fwon and translate("active") or translate("inactive")%>
-
-
-<% end %>
-
-
-
\ No newline at end of file
diff --git a/modules/niu/luasrc/view/niu/traffic/conntrack.htm b/modules/niu/luasrc/view/niu/traffic/conntrack.htm
deleted file mode 100644
index 09b1d6b1c..000000000
--- a/modules/niu/luasrc/view/niu/traffic/conntrack.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<%#
-LuCI - Lua Configuration Interface
-Copyright 2008-2009 Steven Barth
-Copyright 2008-2009 Jo-Philipp Wich
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-
--%>
-
-<%-
- local sys = require "luci.sys"
- local style = true
--%>
-
-<%+header%>
-
-
<%:This page gives an overview over currently active network connections.%>
-
-
-
-
-
-
-
-
-<%+footer%>
-
diff --git a/modules/niu/root/etc/uci-defaults/luci-niu-firstrun b/modules/niu/root/etc/uci-defaults/luci-niu-firstrun
deleted file mode 100644
index 3462a38ee..000000000
--- a/modules/niu/root/etc/uci-defaults/luci-niu-firstrun
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-# Disable some services by default
-
-uci get luci.main._niuinit && exit 0
-uci set qos.wan.enabled=0
-uci set upnpd.config.external_iface=none
-uci set luci.main._niuinit=1
\ No newline at end of file