README HUM -- HTTP Upload Module -- Instructions Copyright (c) 2000 Edward V. POPKOV Distributed under GPL, see COPYING for details "Edward V. POPKOV" $Id: README,v 0.7 2000/03/01 02:32:43 root Exp root $ $Log: README,v $ Revision 0.7 2000/03/01 02:32:43 root Don't run as root. Revision 0.6 2000/02/18 20:29:31 root Check for install in configure, generate temp. filename if output file exists Revision 0.5 2000/02/09 22:01:11 root better memory usage, small file upload bug fixed Revision 0.4 2000/01/31 13:56:27 root Added file pump, cosmetic changes Revision 0.3 2000/01/28 02:28:05 root Bugfixes: filename, log fallback. Added: buffered read Revision 0.2 2000/01/25 23:23:09 root Added strict filename conversion, minor changes Revision 0.1 2000/01/25 16:26:28 root Fixed bug in configure script and missing include of errno.h Revision 0.0 2000/01/22 17:25:52 root Initial check-in Contents 1. What is HUM? 2. Requirements 3. Installation 4. Distribution 5. Acknowledgements 1. What is HUM? HUM is a CGI module that processes multipart/form-data input, extracts a file being uploaded and saves it under compiled-in dir preserving original filename. If the file already exists, HUM calls tmpnam() function to generate unique file name. Note that this can result in saving the file in a totally different location. This depends upon P_tmpdir constant found in . See tmpnam(3). This feature is pretty much experimental. There are several ways to generate unique filename in *nix, and I have choosen tmpnam() just because it's POSIX compliant. If you believe HUM must use tempnam, or mktemp, or whatever other way to avoid overwriting existing files, please let me know. In many senses HUM is referemtial implementation and some parts must be changed to make it more stable and usable in extra heavy load enviroments. Note that since version 0.7 HUM refuses to run with root (e)uid/(e)gid. It's not configurable, don't even ask. You can change HUM behaviour by altering the code, but you aren't encouraged to. Running your HTTP server under root account is asking for troubles. 2. Requirements At present stage development occurs on PC with Linux 2.0.38 and the following software: -GNU libc5 -GNU cc 2.7.2.3 -Apache 1.3.1 -bash 1.14.7(1) -w3m, Netscape Navigator All the code is written with portability in mind. If something doesn't work for you as expected, send me stdout and stderr of configure script and make. 3. Installation HUM is shipped together with configure script and Makefile to adhere GNU software distribution guidelines. Your normal way is # ./configure # make # make -n install Check dirs and permissions, then # make install For configure script and Makefile to work you need to have cp, rm, sed, and bash available. Read the bottom part of INSTALL to see how to tell configure about your system. 4. Distribution NUM is currently GPL'ed, see COPYING for details. 5. Acknowledgements This project was rolled at eLance, proposed and sponsored by Bob PICKLES In my work I'm using: Linux, bash, Apache, w3m, Netscape, vim, autoconf, make, sed Thanks to developers of these and numerous other free and open source tools. Thx and take care Edward V. POPKOV Independent Developer -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/CC d-(+) s:- a C$ UL+++>$ P+ L++(+++)>$ E--- W--(+) N o? K? w$ !O M? V PS+ PE Y PGP t? 5? X? R !tv b++@ DI D+ G++ e h* r++ y+++ -----END GEEK CODE BLOCK----- End of README