diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/linux/linux/fs/jffs2/nodelist.h ewrt-0.3/src/linux/linux/fs/jffs2/nodelist.h --- cvs/ewrt-0.3/src/linux/linux/fs/jffs2/nodelist.h 2005-02-11 23:43:59.000000000 +0100 +++ ewrt-0.3/src/linux/linux/fs/jffs2/nodelist.h 2005-04-09 15:19:58.000000000 +0200 @@ -222,13 +222,21 @@ #define ALLOC_DELETION 1 /* Deletion node. Best to allow it */ #define ALLOC_GC 2 /* Space requested for GC. Give it or die */ +#if 0 #define JFFS2_RESERVED_BLOCKS_BASE 3 /* Number of free blocks there must be before we... */ #define JFFS2_RESERVED_BLOCKS_WRITE (JFFS2_RESERVED_BLOCKS_BASE + 2) /* ... allow a normal filesystem write */ #define JFFS2_RESERVED_BLOCKS_DELETION (JFFS2_RESERVED_BLOCKS_BASE + 1) /* ... allow a normal filesystem deletion */ #define JFFS2_RESERVED_BLOCKS_GCTRIGGER (JFFS2_RESERVED_BLOCKS_BASE + 3) /* ... wake up the GC thread */ #define JFFS2_RESERVED_BLOCKS_GCBAD (JFFS2_RESERVED_BLOCKS_BASE + 1) /* ... pick a block from the bad_list to GC */ #define JFFS2_RESERVED_BLOCKS_GCMERGE (JFFS2_RESERVED_BLOCKS_BASE) /* ... merge pages when garbage collecting */ - +#else +#define JFFS2_RESERVED_BLOCKS_BASE 1 /* Number of free blocks there must be before we... */ +#define JFFS2_RESERVED_BLOCKS_WRITE (JFFS2_RESERVED_BLOCKS_BASE + 1) /* ... allow a normal filesystem write */ +#define JFFS2_RESERVED_BLOCKS_DELETION (JFFS2_RESERVED_BLOCKS_BASE) /* ... allow a normal filesystem deletion */ +#define JFFS2_RESERVED_BLOCKS_GCTRIGGER (JFFS2_RESERVED_BLOCKS_BASE + 1) /* ... wake up the GC thread */ +#define JFFS2_RESERVED_BLOCKS_GCBAD (JFFS2_RESERVED_BLOCKS_BASE + 1) /* ... pick a block from the bad_list to GC */ +#define JFFS2_RESERVED_BLOCKS_GCMERGE (JFFS2_RESERVED_BLOCKS_BASE) /* ... merge pages when garbage collecting */ +#endif #define PAD(x) (((x)+3)&~3) diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/linux/linux/fs/jffs2/nodemgmt.c ewrt-0.3/src/linux/linux/fs/jffs2/nodemgmt.c --- cvs/ewrt-0.3/src/linux/linux/fs/jffs2/nodemgmt.c 2005-02-11 23:43:59.000000000 +0100 +++ ewrt-0.3/src/linux/linux/fs/jffs2/nodemgmt.c 2005-04-09 13:22:49.000000000 +0200 @@ -85,6 +85,7 @@ while(ret == -EAGAIN) { while(c->nr_free_blocks + c->nr_erasing_blocks < blocksneeded) { int ret; + D1(printk(KERN_DEBUG "nr_free_blocks=%x nr_erasing_blocks=%x blocksneeded=%x (%x<%x)\n", c->nr_free_blocks, c->nr_erasing_blocks, blocksneeded, c->nr_free_blocks + c->nr_erasing_blocks, blocksneeded)); up(&c->alloc_sem); if (c->dirty_size < c->sector_size) { diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/busybox/.config ewrt-0.3/src/router/busybox/.config --- cvs/ewrt-0.3/src/router/busybox/.config 2005-02-12 01:17:00.000000000 +0100 +++ ewrt-0.3/src/router/busybox/.config 2005-04-09 12:02:15.000000000 +0200 @@ -46,7 +46,7 @@ # CONFIG_RPM2CPIO is not set # CONFIG_RPM is not set CONFIG_TAR=y -CONFIG_FEATURE_TAR_CREATE=n +# CONFIG_FEATURE_TAR_CREATE is not set # CONFIG_FEATURE_TAR_BZIP2 is not set # CONFIG_FEATURE_TAR_FROM is not set # CONFIG_FEATURE_TAR_GZIP is not set @@ -77,7 +77,7 @@ CONFIG_CUT=y CONFIG_DATE=y # CONFIG_FEATURE_DATE_ISOFMT is not set -# CONFIG_DD is not set +CONFIG_DD=y CONFIG_DF=y # CONFIG_DIRNAME is not set # CONFIG_DOS2UNIX is not set @@ -272,7 +272,7 @@ # CONFIG_LSMOD is not set CONFIG_FEATURE_QUERY_MODULE_INTERFACE=y # CONFIG_MODPROBE is not set -# CONFIG_RMMOD is not set +CONFIG_RMMOD=y # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set # @@ -283,7 +283,16 @@ CONFIG_FTPGET=y # CONFIG_FTPPUT is not set # CONFIG_HOSTNAME is not set -# CONFIG_HTTPD is not set +CONFIG_HTTPD=y +# CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY is not set +CONFIG_FEATURE_HTTPD_BASIC_AUTH=y +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP=y +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set +CONFIG_FEATURE_HTTPD_CGI=y +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y CONFIG_IFCONFIG=y CONFIG_FEATURE_IFCONFIG_STATUS=y # CONFIG_FEATURE_IFCONFIG_SLIP is not set @@ -391,8 +400,6 @@ # CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set # CONFIG_FDISK is not set -# FDISK_SUPPORT_LARGE_DISKS is not set -# CONFIG_FEATURE_FDISK_WRITABLE is not set # CONFIG_FREERAMDISK is not set # CONFIG_FSCK_MINIX is not set # CONFIG_MKFS_MINIX is not set diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/busybox/include/applets.h ewrt-0.3/src/router/busybox/include/applets.h --- cvs/ewrt-0.3/src/router/busybox/include/applets.h 2005-02-11 23:45:59.000000000 +0100 +++ ewrt-0.3/src/router/busybox/include/applets.h 2005-04-08 01:11:01.000000000 +0200 @@ -257,7 +257,7 @@ APPLET(hostname, hostname_main, _BB_DIR_BIN, _BB_SUID_NEVER) #endif #ifdef CONFIG_HTTPD - APPLET(httpd, httpd_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER) + APPLET(httpd2, httpd2_main, _BB_DIR_USR_SBIN, _BB_SUID_NEVER) #endif #ifdef CONFIG_HUSH APPLET_NOUSAGE("hush", hush_main, _BB_DIR_BIN, _BB_SUID_NEVER) diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/busybox/include/config.h ewrt-0.3/src/router/busybox/include/config.h --- cvs/ewrt-0.3/src/router/busybox/include/config.h 2005-02-12 01:17:02.000000000 +0100 +++ ewrt-0.3/src/router/busybox/include/config.h 2005-04-09 12:02:15.000000000 +0200 @@ -6,7 +6,7 @@ /* Version Number */ #define BB_VER "1.00" -#define BB_BT "2005.01.24-19:50+0000" +#define BB_BT "2005.04.09-10:02+0000" #define HAVE_DOT_CONFIG 1 @@ -16,7 +16,7 @@ #undef CONFIG_FEATURE_BUFFERS_USE_MALLOC #define CONFIG_FEATURE_BUFFERS_GO_ON_STACK 1 #undef CONFIG_FEATURE_BUFFERS_GO_IN_BSS -#undef CONFIG_FEATURE_VERBOSE_USAGE +#define CONFIG_FEATURE_VERBOSE_USAGE 1 #undef CONFIG_FEATURE_INSTALLER #undef CONFIG_LOCALE_SUPPORT #define CONFIG_FEATURE_DEVFS 1 @@ -32,7 +32,7 @@ #undef CONFIG_LFS #define USING_CROSS_COMPILER 1 #define CROSS_COMPILER_PREFIX "/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-" -#define EXTRA_CFLAGS_OPTIONS "" +#define EXTRA_CFLAGS_OPTIONS "-Os " /* * Installation Options @@ -53,7 +53,7 @@ #undef CONFIG_RPM2CPIO #undef CONFIG_RPM #define CONFIG_TAR 1 -#define CONFIG_FEATURE_TAR_CREATE 1 +#undef CONFIG_FEATURE_TAR_CREATE #undef CONFIG_FEATURE_TAR_BZIP2 #undef CONFIG_FEATURE_TAR_FROM #undef CONFIG_FEATURE_TAR_GZIP @@ -84,7 +84,7 @@ #define CONFIG_CUT 1 #define CONFIG_DATE 1 #undef CONFIG_FEATURE_DATE_ISOFMT -#undef CONFIG_DD +#define CONFIG_DD 1 #define CONFIG_DF 1 #undef CONFIG_DIRNAME #undef CONFIG_DOS2UNIX @@ -107,7 +107,7 @@ #undef CONFIG_FEATURE_LS_FILETYPES #undef CONFIG_FEATURE_LS_FOLLOWLINKS #undef CONFIG_FEATURE_LS_RECURSIVE -#undef CONFIG_FEATURE_LS_SORTFILES +#define CONFIG_FEATURE_LS_SORTFILES 1 #undef CONFIG_FEATURE_LS_TIMESTAMPS #undef CONFIG_FEATURE_LS_USERNAME #undef CONFIG_FEATURE_LS_COLOR @@ -279,7 +279,7 @@ #undef CONFIG_LSMOD #define CONFIG_FEATURE_QUERY_MODULE_INTERFACE 1 #undef CONFIG_MODPROBE -#undef CONFIG_RMMOD +#define CONFIG_RMMOD 1 #undef CONFIG_FEATURE_CHECK_TAINTED_MODULE /* @@ -290,7 +290,16 @@ #define CONFIG_FTPGET 1 #undef CONFIG_FTPPUT #undef CONFIG_HOSTNAME -#undef CONFIG_HTTPD +#define CONFIG_HTTPD 1 +#undef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY +#define CONFIG_FEATURE_HTTPD_BASIC_AUTH 1 +#undef CONFIG_FEATURE_HTTPD_AUTH_MD5 +#define CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP 1 +#undef CONFIG_FEATURE_HTTPD_SETUID +#undef CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES +#define CONFIG_FEATURE_HTTPD_CGI 1 +#undef CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV +#define CONFIG_FEATURE_HTTPD_ENCODE_URL_STR 1 #define CONFIG_IFCONFIG 1 #define CONFIG_FEATURE_IFCONFIG_STATUS 1 #undef CONFIG_FEATURE_IFCONFIG_SLIP @@ -397,9 +406,7 @@ #undef CONFIG_FBSET #undef CONFIG_FDFLUSH #undef CONFIG_FDFORMAT -#define CONFIG_FDISK 1 -#undef FDISK_SUPPORT_LARGE_DISKS -#undef CONFIG_FEATURE_FDISK_WRITABLE +#undef CONFIG_FDISK #undef CONFIG_FREERAMDISK #undef CONFIG_FSCK_MINIX #undef CONFIG_MKFS_MINIX @@ -414,14 +421,14 @@ #undef CONFIG_RDATE #undef CONFIG_SWAPONOFF #define CONFIG_MOUNT 1 -#define CONFIG_NFSMOUNT 1 +#undef CONFIG_NFSMOUNT #define CONFIG_UMOUNT 1 -#define CONFIG_FEATURE_MOUNT_FORCE 1 +#undef CONFIG_FEATURE_MOUNT_FORCE /* * Common options for mount/umount */ -#define CONFIG_FEATURE_MOUNT_LOOP 1 +#undef CONFIG_FEATURE_MOUNT_LOOP #undef CONFIG_FEATURE_MTAB_SUPPORT /* diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/busybox/include/usage.h ewrt-0.3/src/router/busybox/include/usage.h --- cvs/ewrt-0.3/src/router/busybox/include/usage.h 2005-02-11 23:45:59.000000000 +0100 +++ ewrt-0.3/src/router/busybox/include/usage.h 2005-04-08 01:12:43.000000000 +0200 @@ -1006,7 +1006,7 @@ #define USAGE_HTTPD_SETUID(a) #endif #endif -#define httpd_trivial_usage \ +#define httpd2_trivial_usage \ "[-c ]" \ USAGE_HTTPD_STANDALONE(" [-p ]") \ USAGE_HTTPD_SETUID(" [-u user]") \ @@ -1014,7 +1014,7 @@ USAGE_HTTPD_AUTH_MD5(" [-m pass]") \ " [-h home]" \ " [-d/-e ]" -#define httpd_full_usage \ +#define httpd2_full_usage \ "Listens for incoming http server requests.\n\n"\ "Options:\n" \ "\t-c FILE\t\tSpecifies configuration file. (default httpd.conf)\n" \ diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/busybox/init/init.c ewrt-0.3/src/router/busybox/init/init.c --- cvs/ewrt-0.3/src/router/busybox/init/init.c 2005-02-11 23:45:56.000000000 +0100 +++ ewrt-0.3/src/router/busybox/init/init.c 2005-04-08 02:41:51.000000000 +0200 @@ -88,7 +88,7 @@ #ifndef _PATH_STDPATH -#define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin" +#define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin:/tmp/var/bin" #endif #if defined CONFIG_FEATURE_INIT_COREDUMPS diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/busybox/networking/Makefile.in ewrt-0.3/src/router/busybox/networking/Makefile.in --- cvs/ewrt-0.3/src/router/busybox/networking/Makefile.in 2005-02-11 23:45:58.000000000 +0100 +++ ewrt-0.3/src/router/busybox/networking/Makefile.in 2005-04-08 01:06:39.000000000 +0200 @@ -27,7 +27,7 @@ NETWORKING-$(CONFIG_FTPGET) += ftpgetput.o NETWORKING-$(CONFIG_FTPPUT) += ftpgetput.o NETWORKING-$(CONFIG_HOSTNAME) += hostname.o -NETWORKING-$(CONFIG_HTTPD) += httpd.o +NETWORKING-$(CONFIG_HTTPD) += httpd2.o NETWORKING-$(CONFIG_IFCONFIG) += ifconfig.o NETWORKING-$(CONFIG_IFUPDOWN) += ifupdown.o NETWORKING-$(CONFIG_INETD) += inetd.o diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/lib/Makefile ewrt-0.3/src/router/lib/Makefile --- cvs/ewrt-0.3/src/router/lib/Makefile 2005-02-11 23:45:31.000000000 +0100 +++ ewrt-0.3/src/router/lib/Makefile 2005-04-08 13:45:38.000000000 +0200 @@ -23,6 +23,8 @@ lib-$(CONFIG_LIBNSL) += libnsl ifeq ($(PARENTAL_CONTROL_SUPPORT),1) lib-$(CONFIG_LIBPTHREAD) += libpthread +else +lib-$(CONFIG_LIBPTHREAD) += libpthread endif lib-$(CONFIG_LIBRESOLV) += libresolv lib-$(CONFIG_LIBUTIL) += libutil diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/Makefile ewrt-0.3/src/router/Makefile --- cvs/ewrt-0.3/src/router/Makefile 2005-03-07 05:29:54.000000000 +0100 +++ ewrt-0.3/src/router/Makefile 2005-04-09 14:12:51.000000000 +0200 @@ -128,6 +128,12 @@ obj-$(CONFIG_EOU) += eou obj-$(CONFIG_HW_QOS) += iproute2 +# obj-y += libusb +obj-y += fuse +obj-y += owfs +obj-y += rrdtool +obj-y += temploggerd +obj-y += mag obj-clean := $(foreach obj,$(obj-y) $(obj-n),$(obj)-clean) diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/rc/init.c ewrt-0.3/src/router/rc/init.c --- cvs/ewrt-0.3/src/router/rc/init.c 2005-02-11 23:45:31.000000000 +0100 +++ ewrt-0.3/src/router/rc/init.c 2005-04-09 16:26:59.000000000 +0200 @@ -114,7 +114,7 @@ char *envp[] = { "TERM=vt100", "HOME=/", - "PATH=/usr/bin:/bin:/usr/sbin:/sbin", + "PATH=/usr/bin:/bin:/usr/sbin:/sbin:/tmp/var/bin", "SHELL=" SHELL, "USER=root", tz, @@ -159,13 +159,39 @@ } } +static int +find_mount(char *path) +{ + char tmp[129]; + char *p = NULL, *p2; + FILE *fp; + int found = 0; + + if(!(fp = fopen("/proc/mounts", "r"))) return found; + while(!feof(fp)) { + if(!(p = fgets(tmp, 128, fp))) break; + p2 = strtok(p, " "); + if(p2) p2 = strtok(NULL, " "); + if(p2 && !strcmp(p2, path)) { + found = 1; + break; + } + } + fclose(fp); + return found; +} + + static void shutdown_system(void) { int sig; + int ret; + char opt[] = "/opt"; /* Irving - cleanly unmount /opt if we can */ - eval("/bin/umount", "/opt"); + eval("/bin/umount", opt); + ret = find_mount(opt); /* Disable signal handlers */ for (sig = 0; sig < (_NSIG-1); sig++) @@ -178,10 +204,22 @@ kill(-1, SIGTERM); sleep(1); + /* unmount /opt if it failed last time */ + if(ret) { + eval("/bin/umount", opt); + ret = find_mount(opt); + } + cprintf("Sending SIGKILL to all processes\n"); kill(-1, SIGKILL); sleep(1); + /* unmount /opt if it failed last time */ + if(ret) { + eval("/bin/umount", opt); + ret = find_mount(opt); + } + sync(); } diff --exclude '*Entries' -ruw cvs/ewrt-0.3/src/router/rc/services.c ewrt-0.3/src/router/rc/services.c --- cvs/ewrt-0.3/src/router/rc/services.c 2005-03-07 05:26:58.000000000 +0100 +++ ewrt-0.3/src/router/rc/services.c 2005-04-08 11:40:55.000000000 +0200 @@ -400,6 +400,22 @@ } int +start_rcstartup(void) +{ + int ret = 0; + pid_t pid; + char *rc_startup_argv[] = { "/opt/rc.start", + NULL + }; + struct stat st; + if( !stat(rc_startup_argv[0], &st) && S_ISREG(st.st_mode) && + (st.st_mode&S_IXUSR) ) + ret = _eval(rc_startup_argv, NULL, 0, &pid); + dprintf("done\n"); + return ret; +} + +int start_services(void) { start_syslog(); @@ -412,6 +428,7 @@ start_nas("lan"); start_zebra(); start_eou(); + start_rcstartup(); /* Irving */ clearflags(); #ifdef HAVE_DROPBEAR