pure-config/trunk: Makefile Makefile.am README USAGE autogen.sh
configure.ac pure-config.c pure-conf...
twittner
cvs at pld-linux.org
Sat Jun 18 11:39:02 CEST 2005
Author: twittner
Date: Sat Jun 18 11:38:54 2005
New Revision: 6126
Added:
pure-config/trunk/Makefile
pure-config/trunk/Makefile.am
pure-config/trunk/README
pure-config/trunk/USAGE
pure-config/trunk/autogen.sh (contents, props changed)
pure-config/trunk/configure.ac
pure-config/trunk/pure-config.c
pure-config/trunk/pure-config.h
pure-config/trunk/pureftpd.conf
pure-config/trunk/release.sh (contents, props changed)
Log:
- place new ver. in trunk
Added: pure-config/trunk/Makefile
==============================================================================
--- (empty file)
+++ pure-config/trunk/Makefile Sat Jun 18 11:38:54 2005
@@ -0,0 +1,10 @@
+CC = cc
+CFLAGS =
+LDFLAGS =
+
+pure-config: pure-config.c pure-config.h
+ $(CC) -lcfg+ $(CFLAGS) $(LDFLAGS) -Wall -o $@ $<
+
+clean:
+ rm -f pure-config
+
Added: pure-config/trunk/Makefile.am
==============================================================================
--- (empty file)
+++ pure-config/trunk/Makefile.am Sat Jun 18 11:38:54 2005
@@ -0,0 +1,4 @@
+sbin_PROGRAMS = pure-config
+
+pure_config_SOURCES = pure-config.c pure-config.h
+
Added: pure-config/trunk/README
==============================================================================
--- (empty file)
+++ pure-config/trunk/README Sat Jun 18 11:38:54 2005
@@ -0,0 +1,103 @@
+* Program: pure-config
+
+* Description: Main configuration file's parser/converter for pure-ftpd
+ server written in C, on the top of libcfg+ - see:
+ http://platon.sk/projects/libcfg+/.
+
+* Copyright: Tomasz Wittner, 2004 under terms of GNU GPL v.2 license.
+
+
+1. Building this software on Linux:
+
+ a). Special prerequisites.
+ At first you have to have libcfg+ library installed in your system. For
+ futher informations about building and instalation of libcfg+ library
+ see at http://platon.sk/projects/libcfg+/.
+
+ b). Compilation and instalation.
+ Run `make CFLAGS='-O2' ' in source directory. After successul compilation
+ copy pure-config binary wherever you need.
+
+2. Usage.
+
+ a). From commandline.
+ [root at pdp11 6:66 ~]# pure-fptd $( pure-config -f /etc/pure-ftpd.conf [-d|--debug] [-l|--long] ) \
+ [--put_here_additional_pure-ftpd\'s_options|...]
+ f.e.:
+ [root at pdp11 6:66 ~]# pure-fptd $( pure-config -f /etc/pure-ftpd.conf -l ) --daemonize
+
+ b). From PLD Linux Distribution's initscript.
+
+#!/bin/sh
+#
+# pureftpd PureFTPD server
+#
+# chkconfig: 345 85 15
+# description: PureFTPD is fast, production-quality, standard-conformant FTP server
+#
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Get service config
+[ -f /etc/sysconfig/pure-ftpd ] && . /etc/sysconfig/pure-ftpd
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ # nls "ERROR: Networking is down. %s can't be run." <service>
+ msg_network_down pure-ftpd
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ # Check if the service is already running?
+ if [ ! -f /var/lock/subsys/pure-ftpd ]; then
+ msg_starting pure-ftpd
+ rm -f /var/run/pure-ftpd/client*
+ daemon pure-ftpd $(pure-config -f /etc/ftpd/pureftpd.conf -l) --daemonize
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pure-ftpd
+ else
+ msg_already_running pure-ftpd
+ fi
+ ;;
+ stop)
+ # Stop daemons.
+ if [ -f /var/lock/subsys/pure-ftpd ]; then
+ msg_stopping pure-ftpd
+ killproc pure-ftpd
+ rm -f /var/lock/subsys/pure-ftpd > /dev/null 2>&1
+ else
+ msg_not_running pure-ftpd
+ fi
+ ;;
+ status)
+ status pure-ftpd
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ pure-ftpwho
+ fi
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ exit $?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|force-reload|status}"
+ exit 3
+ ;;
+esac
+
+exit $RETVAL
+
Added: pure-config/trunk/USAGE
==============================================================================
--- (empty file)
+++ pure-config/trunk/USAGE Sat Jun 18 11:38:54 2005
@@ -0,0 +1 @@
+# pure-fptd $(pure-config -f /etc/pure-ftpd.conf [-d|--debug] [-l|--long]) [--put_here_additional_pure-ftpd\'s_options|...]
Added: pure-config/trunk/autogen.sh
==============================================================================
--- (empty file)
+++ pure-config/trunk/autogen.sh Sat Jun 18 11:38:54 2005
@@ -0,0 +1,28 @@
+#!/bin/sh -x
+
+rm -fr aclocal.m4 \
+ autom4te.cache \
+ config.h \
+ config.h.in \
+ config.h.in~ \
+ config.log \
+ config.status \
+ configure \
+ configure.scan \
+ depcomp \
+ install-sh \
+ Makefile \
+ Makefile.in \
+ missing \
+ pure-config \
+ pure-config.o \
+ stamp-h1 \
+ .deps
+
+[ x"$@" = "xclean" ] && exit 0
+
+aclocal
+autoconf
+autoheader
+automake -a -c -f --foreign
+
Added: pure-config/trunk/configure.ac
==============================================================================
--- (empty file)
+++ pure-config/trunk/configure.ac Sat Jun 18 11:38:54 2005
@@ -0,0 +1,35 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT(pure-config, 20041201)
+AC_CONFIG_SRCDIR([pure-config.c])
+AC_CONFIG_HEADER([config.h])
+
+# Checks for programs.
+AC_PROG_CC
+
+# Checks for libraries.
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(errno.h cfg+.h)
+
+# Checks for typedefs, structures, and compiler characteristics.
+
+# Checks for library functions.
+AC_CHECK_FUNCS([strncasecmp])
+
+AC_CHECK_LIB([cfg+], [cfg_get_context])
+AC_CHECK_FUNCS(cfg_set_cmdline_context \
+ cfg_parse \
+ cfg_fprint_error \
+ cfg_add_property \
+ cfg_set_cfgfile_context \
+ , , AC_MSG_ERROR(Your cfg+ library seems broken. Goodbye.)
+ )
+
+AM_INIT_AUTOMAKE
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+
Added: pure-config/trunk/pure-config.c
==============================================================================
--- (empty file)
+++ pure-config/trunk/pure-config.c Sat Jun 18 11:38:54 2005
@@ -0,0 +1,206 @@
+/*
+ * vim:tw=130:sw=4:ts=4
+ *
+ * Program name: pure-config
+ *
+ * Description: Parser-converter for main configuration pure-ftpd file
+ * written in C, on the top of libcfg+ - see:
+ * http://platon.sk/projects/libcfg+/.
+ *
+ * Copyright: Tomasz Wittner, 2004, 2005 under terms of GNU GPL v.2 license
+ *
+ */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "pure-config.h"
+
+static char *blank_char_pos(char *s); /* returns pointer to first blank character (' ' or '\t') in s or NULL if any not found. */
+static char *rm_blanks(char *s); /* removes blanks (' ' or '\t') from s . */
+static int usage(void); /* prints standard `usage' message */
+static int version(void); /* prints informaton about program */
+
+int main(int argc, char **argv)
+{
+ int i, j, ret;
+ char *sc; /* place for semicolon instead blank between numbers */
+
+ CFG_CONTEXT con = cfg_get_context(options);
+
+ if(!con)
+ {
+ fprintf(stderr, "Error: can\'t allocate memory. Program exited.\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, ENOMEM);
+
+ exit(ENOMEM);
+ }
+
+ cfg_set_cmdline_context(con, 1, -1, argv);
+
+ ret = cfg_parse(con);
+
+ if(ret < 0)
+ {
+ cfg_fprint_error(con, stderr);
+ fprintf(stderr, "\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, ret);
+
+ exit(ret);
+ }
+
+ if(opt[HELP])
+ usage();
+
+ if (opt[VERSIONOPT])
+ version();
+
+ ret = cfg_add_property(con, CFG_FILE_OPTION_ARG_SEPARATOR, " "); /* OK = ret 1, BAD = 0 */
+
+ if(!ret)
+ {
+ cfg_fprint_error(con, stderr);
+ fprintf(stderr, "\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, ret);
+
+ exit(ret);
+ }
+
+ ret = cfg_add_property(con, CFG_FILE_OPTION_ARG_SEPARATOR, "\t");
+ if(!ret)
+ {
+ cfg_fprint_error(con, stderr);
+ fprintf(stderr, "\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, ret);
+
+ exit(ret);
+ }
+
+ if(opt[CFGFILE])
+ cfg_set_cfgfile_context(con, 0, -1, opt[CFGFILE]);
+
+ else
+ {
+ fprintf(stderr, "Error: file for parsing not given.\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, ret);
+
+ exit(1);
+ }
+
+ ret = cfg_parse(con);
+
+ if(ret < 0)
+ {
+ cfg_fprint_error(con, stderr);
+ fprintf(stderr, "\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, ret);
+
+ exit(ret);
+ }
+
+ for( i = 4 ; i <= OPTQNT - 1 ; i++)
+ {
+ if(opt[i] && strncasecmp("no", opt[i], 2)) {
+
+ if(!strncasecmp("yes", opt[i], 3))
+ printf(" %s", output[i][(opt[LONGOPT]) ? 1 : 0]);
+
+ else
+ {
+ if( i >= SEMICOL_S && i <= SEMICOL_E && opt[i] ) { /* convert '1 2' to '1:2' */
+ sc = opt[i];
+
+ if( (sc = blank_char_pos(sc)) )
+ {
+ *sc = ':';
+ opt[i] = rm_blanks( opt[i] );
+ }
+ }
+
+ printf(" %s%s", output[i][(opt[LONGOPT]) ? 1 : 0], opt[i]);
+ }
+ }
+ }
+
+ printf("\n");
+
+ if(opt[DEBUG])
+ fprintf(stderr, "In %s at %d line program exited with %d code.\n", __FILE__, __LINE__ + 2, EXIT_SUCCESS);
+
+ cfg_free_context(con);
+ return EXIT_SUCCESS;
+}
+
+static char *rm_blanks(char *s)
+{
+ char *p, *t;
+ p = t = s;
+
+ while( p && *p != '\0' )
+ {
+ if( *p != ' ' && *p != '\t' )
+ *t++ = *p++;
+
+ else
+ p++;
+ }
+
+ *t = '\0';
+ return s;
+}
+
+static char *blank_char_pos(char *s) {
+
+ char *t = s;
+
+ for( ; t && *t != '\0' && *t != ' ' && *t != '\t' ; t++ )
+ ;
+
+ if( t && *t != '\0' )
+
+ return t;
+
+ return NULL;
+}
+
+static int usage(void) {
+
+ puts("");
+ puts("pure-config main pure-ftpd configuration file parser.");
+ puts(" parses configuration file and prints pure-ftpd commandline");
+ puts(" options on stdout.");
+ puts("");
+ puts("Usage:");
+ puts(" pure-config -d, --debug print some debug information on stderr");
+ puts(" pure-config -f, --file=/path/to/pureftpd.conf parse given pure-ftpd configuration file");
+ puts(" pure-config -h, --help print this message on stdout and exit");
+ puts(" pure-config -l, --long print long names of pure-ftpd options");
+ puts(" pure-config -V, --version print version number of pure-ftpd and exit");
+ puts("");
+ puts("Example of usage:");
+ puts(" pure-ftpd $(pure-config -f /etc/pure-ftpd/pureftpd.conf)");
+ puts("");
+ exit(EXIT_SUCCESS);
+}
+
+static version(void) {
+
+ puts("");
+ puts("pure-config main pure-ftpd configuration file parser.");
+ puts("version: " VERSION );
+ exit(EXIT_SUCCESS);
+}
Added: pure-config/trunk/pure-config.h
==============================================================================
--- (empty file)
+++ pure-config/trunk/pure-config.h Sat Jun 18 11:38:54 2005
@@ -0,0 +1,177 @@
+/*
+ * vim:tw=180:ts=8:sw=8
+ *
+ * Program name: pure-config
+ *
+ * Description: Parser-converter for main configuration pure-ftpd file
+ * written in C, on the top of libcfg+ - see:
+ * http://platon.sk/projects/libcfg+/.
+ *
+ * Copyright: Tomasz Wittner, 2004 under terms of GNU GPL v.2 license.
+ *
+ */
+
+#ifndef PURE_CONFIG_H
+#define PURE_CONFIG_H 1
+
+#include "config.h"
+#ifdef HAVE_CFG__H
+#include <cfg+.h>
+#endif /* HAVE_CFG__H */
+
+#define OPTQNT 66
+#define CFGFILE 0
+#define DEBUG 1
+#define HELP 2
+#define LONGOPT 3
+#define VERSIONOPT 5
+#define SEMICOL_S 52
+#define SEMICOL_E SEMICOL_S + 7
+#define I __LINE__ - 38
+
+
+char *opt[OPTQNT];
+
+struct cfg_option options[] = {
+
+/* cmdline_long, cmdline_short, cfgfile_name, cfg_option_type, value val */
+{ "file", 'f', NULL, CFG_STR, (void*) &opt[I], 0 },
+{ "debug", 'd', NULL, CFG_BOOL, (void*) &opt[I], 0 },
+{ "help", 'h', NULL, CFG_BOOL, (void*) &opt[I], 0 },
+{ "long", 'l', NULL, CFG_BOOL, (void*) &opt[I], 0 },
+{ "verbose", 'v', NULL, CFG_BOOL, (void*) &opt[I], 0 }, /* not implemented */
+{ "version", 'V', NULL, CFG_BOOL, (void*) &opt[I], 0 }, /* mainly for help2man */
+{ NULL, '\0', /* '4' */ "IPV4Only", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* '6' */ "IPV6Only", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'A' */ "ChrootEveryone", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'b' */ "BrokenClientsCompatibility", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'B' */ "Daemonize", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'd' */ "VerboseLog", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'D' */ "DisplayDotFiles", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'e' */ "AnonymousOnly", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'E' */ "NoAnonymous", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'H' */ "DontResolve", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'M' */ "AnonymousCanCreateDirs", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'N' */ "NATmode", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'o' */ "CallUploadScript", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 's' */ "AntiWarez", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'w' */ "AllowUserFXP", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'W' */ "AllowAnonymousFXP", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'x' */ "ProhibitDotFilesWrite", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'X' */ "ProhibitDotFilesRead", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'z' */ "AllowDotFiles", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'r' */ "AutoRename", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'i' */ "AnonymousCantUpload", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* '1' */ "LogPID", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'R' */ "NoChmod", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'K' */ "KeepAllFiles", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'j' */ "CreateHomeDir", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'G' */ "NoRename", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'Z' */ "CustomerProof", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* '0' */ "NoTruncate", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'f' */ "SyslogFacility", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'F' */ "FortunesFile", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'P' */ "ForcePassiveIP", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'S' */ "Bind", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 't' */ "AnonymousBandwidth", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'T' */ "UserBandwidth", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'V' */ "TrustedIP", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'O' */ "AltLog", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'g' */ "PIDFile", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* '7' */ "SSLCertFile", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'I' */ "MaxIdleTime", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'k' */ "MaxDiskUsage", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'a' */ "TrustedGID", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'c' */ "MaxClientsNumber", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'C' */ "MaxClientsPerIP", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'm' */ "MaxLoad", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'u' */ "MinUID", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'Y' */ "TLS", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'L' */ "LimitRecursion", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'p' */ "PassivePortRange", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'q' */ "AnonymousRatio", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'Q' */ "UserRatio", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'U' */ "Umask", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'n' */ "Quota", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* 'y' */ "PerUserLimits", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lldap: */ "LDAPConfigFile", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lmysql: */ "MySQLConfigFile", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lpgsql: */ "PGSQLConfigFile", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lpuredb: */ "PureDB", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lextauth: */ "ExtAuth", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lpam */ "PAMAuthentication", CFG_STR, (void*) &opt[I], 0 },
+{ NULL, '\0', /* lunix */ "UnixAuthentication", CFG_STR, (void*) &opt[I], 0 },
+ CFG_END_OF_LIST
+};
+
+char *output[OPTQNT][2] = {
+
+ { "", "" },
+ { "", "" },
+ { "", "" },
+ { "", "" },
+ { "", "" },
+ { "", "" },
+ { "-4", "--ipv4only" },
+ { "-6", "--ipv6only" },
+ { "-A", "--chrooteveryone" },
+ { "-b", "--brokenclientscompatibility" },
+ { "-B", "--daemonize" },
+ { "-d", "--verboselog" },
+ { "-D", "--displaydotfiles" },
+ { "-e", "--anonymousonly" },
+ { "-E", "--noanonymous" },
+ { "-H", "--dontresolve" },
+ { "-M", "--anonymouscancreatedirs" },
+ { "-N", "--natmode" },
+ { "-o", "--calluploadscript" },
+ { "-s", "--antiwarez" },
+ { "-w", "--allowuserfxp" },
+ { "-W", "--allowanonymousfxp" },
+ { "-x", "--prohibitdotfileswrite" },
+ { "-X", "--prohibitdotfilesread" },
+ { "-z", "--allowdotfiles" },
+ { "-r", "--autorename" },
+ { "-i", "--anonymouscantupload" },
+ { "-1", "--logpid=" },
+ { "-R", "--nochmod" },
+ { "-K", "--keepallfiles" },
+ { "-j", "--createhomedir" },
+ { "-G", "--norename" },
+ { "-Z", "--customerproof" },
+ { "-0", "--notruncate" },
+ { "-f", "--syslogfacility=" },
+ { "-F", "--fortunesfile=" },
+ { "-P", "--forcepassiveip=" },
+ { "-S", "--bind=" },
+ { "-t", "--anonymousbandwidth=" },
+ { "-T", "--userbandwidth=" },
+ { "-V", "--trustedip=" },
+ { "-O", "--altlog=" },
+ { "-g", "--pidfile=" },
+ { "-7", "--sslcertfile=" },
+ { "-I", "--maxidletime=" },
+ { "-k", "--maxdiskusage=" },
+ { "-a", "--trustedgid=" },
+ { "-c", "--maxclientsnumber=" },
+ { "-C", "--maxclientsperip=" },
+ { "-m", "--maxload=" },
+ { "-u", "--minuid=" },
+ { "-Y", "--tls=" },
+ { "-L", "--limitrecursion=" },
+ { "-p", "--passiveportrange=" },
+ { "-q", "--anonymousratio=" },
+ { "-Q", "--userratio=" },
+ { "-U", "--umask=" },
+ { "-n", "--quota=" },
+ { "-y", "--peruserlimits=" },
+ { "-lldap:", "--login=ldap:" },
+ { "-lmysql:", "--login=mysql:" },
+ { "-lpgsql:", "--login=pgsql:" },
+ { "-lpuredb:", "--login=puredb:" },
+ { "-lextauth:", "--login=extauth:" },
+ { "-lpam", "--login=pam" },
+ { "-lunix", "--login=unix" }
+
+};
+#endif /* PURE_CONFIG_H */
Added: pure-config/trunk/pureftpd.conf
==============================================================================
--- (empty file)
+++ pure-config/trunk/pureftpd.conf Sat Jun 18 11:38:54 2005
@@ -0,0 +1,317 @@
+
+############################################################
+# #
+# Configuration file for pure-ftpd wrappers #
+# #
+############################################################
+
+# If you want to run Pure-FTPd with this configuration
+# instead of command-line options, please run the
+# following command :
+#
+# /usr/sbin/pure-config.pl /usr/etc/pure-ftpd.conf
+#
+# Please don't forget to have a look at documentation at
+# http://www.pureftpd.org/documentation.html for a complete list of
+# options.
+
+# Cage in every user in his home directory
+ChrootEveryone yes
+
+# If the previous option is set to "no", members of the following group
+# won't be caged. Others will be. If you don't want chroot()ing anyone,
+# just comment out ChrootEveryone and TrustedGID.
+
+ TrustedGID 100
+
+# Turn on compatibility hacks for broken clients
+BrokenClientsCompatibility yes
+
+# Maximum number of simultaneous users
+MaxClientsNumber 50
+
+# Fork in background
+Daemonize yes
+
+# Maximum number of sim clients with the same IP address
+MaxClientsPerIP 8
+
+# If you want to log all client commands, set this to "yes".
+# This directive can be duplicated to also log server responses.
+VerboseLog yes
+
+# List dot-files even when the client doesn't send "-a".
+DisplayDotFiles yes
+
+# Don't allow authenticated users - have a public anonymous FTP only.
+AnonymousOnly no
+
+# Disallow anonymous connections. Only allow authenticated users.
+NoAnonymous yes
+
+# Syslog facility (auth, authpriv, daemon, ftp, security, user, local*)
+# The default facility is "ftp". "none" disables logging.
+SyslogFacility ftp
+
+# Display fortune cookies
+
+# FortunesFile /usr/share/fortune/zippy
+
+# Don't resolve host names in log files. Logs are less verbose, but
+# it uses less bandwidth. Set this to "yes" on very busy servers or
+# if you don't have a working DNS.
+DontResolve yes
+
+# Maximum idle time in minutes (default = 15 minutes)
+
+MaxIdleTime 15
+
+# LDAP configuration file (see README.LDAP)
+
+# LDAPConfigFile /etc/ftpd/pureftpd-ldap.conf
+
+# MySQL configuration file (see README.MySQL)
+# MySQLConfigFile /etc/ftpd/pureftpd-mysql.conf
+
+# Postgres configuration file (see README.PGSQL)
+
+# PGSQLConfigFile /etc/ftpd/pureftpd-pgsql.conf
+
+
+# PureDB user database (see README.Virtual-Users)
+
+PureDB /etc/ftpd/pureftpd.pdb
+
+
+# Path to pure-authd socket (see README.Authentication-Modules)
+
+ ExtAuth /var/run/ftpd.sock
+
+# If you want to enable PAM authentication, uncomment the following line
+
+ PAMAuthentication yes
+
+# If you want simple Unix (/etc/passwd) authentication, uncomment this
+
+ UnixAuthentication yes
+
+# Please note that LDAPConfigFile, MySQLConfigFile, PAMAuthentication and
+# UnixAuthentication can be used only once, but they can be combined
+# together. For instance, if you use MySQLConfigFile, then UnixAuthentication,
+# the SQL server will be asked. If the SQL authentication fails because the
+# user wasn't found, another try # will be done with /etc/passwd and
+# /etc/shadow. If the SQL authentication fails because the password was wrong,
+# the authentication chain stops here. Authentication methods are chained in
+# the order they are given.
+
+# 'ls' recursion limits. The first argument is the maximum number of
+# files to be displayed. The second one is the max subdirectories depth
+
+LimitRecursion 2000 8
+
+# Are anonymous users allowed to create new directories ?
+AnonymousCanCreateDirs no
+
+# If the system is more loaded than the following value,
+# anonymous users aren't allowed to download.
+MaxLoad 50
+
+# Port range for passive connections replies. - for firewalling.
+ PassivePortRange 30000 50000
+
+# Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
+# Symbolic host names are also accepted for gateways with dynamic IP
+# addresses.
+
+ ForcePassiveIP 192.168.0.10
+
+# Upload/download ratio for anonymous users.
+
+ AnonymousRatio 1 10
+
+# Upload/download ratio for all users.
+# This directive superscedes the previous one.
+
+ UserRatio 1 10
+
+# Disallow downloading of files owned by "ftp", ie.
+# files that were uploaded but not validated by a local admin.
+
+AntiWarez yes
+
+# IP address/port to listen to (default=all IP and port 21).
+ Bind 127.0.0.1,21
+
+# Maximum bandwidth for anonymous users in KB/s
+
+ AnonymousBandwidth 8
+
+# Maximum bandwidth for *all* users (including anonymous) in KB/s
+# Use AnonymousBandwidth *or* UserBandwidth, both makes no sense.
+
+ UserBandwidth 8
+
+# File creation mask. <umask for files>:<umask for dirs> .
+# 177:077 if you feel paranoid.
+# Umask 133:022
+Umask 177:077
+
+# Minimum UID for an authenticated user to log in.
+
+MinUID 100
+
+# Allow FXP transfers for authenticated users only.
+AllowUserFXP yes
+
+# Allow anonymous FXP for anonymous and non-anonymous users.
+AllowAnonymousFXP no
+
+# Users can't delete/write files beginning with a dot ('.')
+# even if they own them. If TrustedGID is enabled, this group
+# will have access to dot-files, though.
+ProhibitDotFilesWrite no
+
+# Prohibit *reading* of files beginning with a dot (.history, .ssh...)
+ProhibitDotFilesRead no
+
+# Never overwrite files. When a file whoose name already exist is uploaded,
+# it get automatically renamed to file.1, file.2, file.3, ...
+AutoRename no
+
+# Disallow anonymous users to upload new files (no = upload is allowed)
+AnonymousCantUpload yes
+
+# Only connections to this specific IP address are allowed to be
+# non-anonymous. You can use this directive to open several public IPs for
+# anonymous FTP, and keep a private firewalled IP for remote administration.
+# You can also only allow a non-routable local IP (like 10.x.x.x) to
+# authenticate, and keep a public anon-only FTP server on another IP.
+
+ TrustedIP 127.0.0.1
+
+# If you want to add the PID to every logged line, uncomment the following
+# line.
+
+ LogPID yes
+
+# Create an additional log file with transfers logged in a Apache-like format :
+# fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
+# This log file can then be processed by www traffic analyzers.
+
+ AltLog clf:/var/log/pureftpd.log
+
+# Create an additional log file with transfers logged in a format optimized
+# for statistic reports.
+
+ #AltLog stats:/var/log/pureftpd.log
+
+# Create an additional log file with transfers logged in the standard W3C
+# format (compatible with most commercial log analyzers)
+
+ #AltLog w3c:/var/log/pureftpd.log
+
+# Disallow the CHMOD command. Users can't change perms of their files.
+
+ NoChmod yes
+
+# Allow users to resume and upload files, but *NOT* to delete them.
+
+ KeepAllFiles yes
+
+# Automatically create home directories if they are missing
+
+ CreateHomeDir yes
+
+# Enable virtual quotas. The first number is the max number of files.
+# The second number is the max size of megabytes.
+# So 1000:10 limits every user to 1000 files and 10 Mb.
+
+ Quota 1000:10
+
+# If your pure-ftpd has been compiled with standalone support, you can change
+# the location of the pid file. The default is /var/run/pure-ftpd.pid
+
+# PIDFile /var/run/pure-ftpd.pid
+
+# If your pure-ftpd has been compiled with pure-uploadscript support,
+# this will make pure-ftpd write info about new uploads to
+# /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and
+# spawn a script to handle the upload.
+
+ CallUploadScript yes
+
+
+
+# This option is useful with servers where anonymous upload is
+# allowed. As /var/ftp is in /var, it save some space and protect
+# the log files. When the partition is more that X percent full,
+# new uploads are disallowed.
+
+ MaxDiskUsage 99
+
+
+
+# Set to 'yes' if you don't want your users to rename files.
+
+ NoRename yes
+
+
+
+# Be 'customer proof' : workaround against common customer mistakes like
+# 'chmod 0 public_html', that are valid, but that could cause ignorant
+# customers to lock their files, and then keep your technical support busy
+# with silly issues. If you're sure all your users have some basic Unix
+# knowledge, this feature is useless. If you're a hosting service, enable it.
+
+CustomerProof yes
+
+
+
+# Per-user concurrency limits. It will only work if the FTP server has
+# been compiled with --with-peruserlimits (and this is the case on
+# most binary distributions) .
+# The format is : <max sessions per user>:<max anonymous sessions>
+# For instance, 3:20 means that the same authenticated user can have 3 active
+# sessions max. And there are 20 anonymous sessions max.
+
+ PerUserLimits 3:20
+
+
+
+# When a file is uploaded and there is already a previous version of the file
+# with the same name, the old file will neither get removed nor truncated.
+# Upload will take place in a temporary file and once the upload is complete,
+# the switch to the new version will be atomic. For instance, when a large PHP
+# script is being uploaded, the web server will still serve the old version and
+# immediatly switch to the new one as soon as the full file will have been
+# transfered. This option is incompatible with virtual quotas.
+
+ NoTruncate yes
+
+
+
+# This option can accept three values :
+# 0 : disable SSL/TLS encryption layer (default).
+# 1 : accept both traditional and encrypted sessions.
+# 2 : refuse connections that don't use SSL/TLS security mechanisms,
+# including anonymous sessions.
+# Do _not_ uncomment this blindly. Be sure that :
+# 1) Your server has been compiled with SSL/TLS support (--with-tls),
+# 2) A valid certificate is in place,
+# 3) Only compatible clients will log in.
+
+TLS 1
+# SSLCertFile /etc/ssl/private/pure-ftpd.pem
+SSLCertFile /etc/ftpd/pureftpd.pem
+#(current location in PLD)
+
+
+# Listen only to IPv4 addresses in standalone mode (ie. disable IPv6)
+# By default, both IPv4 and IPv6 are enabled.
+
+IPV4Only yes
+
+# Listen only to IPv6 addresses in standalone mode (ie. disable IPv4)
+# By default, both IPv4 and IPv6 are enabled.
+
+# IPV6Only yes
Added: pure-config/trunk/release.sh
==============================================================================
--- (empty file)
+++ pure-config/trunk/release.sh Sat Jun 18 11:38:54 2005
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cp -v pure-config.{c,h} autogen.sh configure.ac Makefile.am README ../public/pure-config/
+[ x"$@" = "xpld" ] && cp -v pure-config.{c,h} autogen.sh configure.ac Makefile.am README \
+ ~/my/devel/pld/svn/pure-config/
More information about the pld-cvs-commit
mailing list