anyvar.patch
author Tomas Zeman <tzeman@volny.cz>
Fri, 23 Oct 2015 15:05:39 +0200
changeset 2 9c1ee7dfe89e
permissions -rw-r--r--
anyvar.patch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
# HG changeset patch
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
# Parent  9e657f6cad9e122bf465a264f31e26a57fd27c60
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
Anyvar module
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
diff --git a/Makefile b/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
--- a/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
+++ b/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
@@ -153,7 +153,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
 #     (which will cause the Makefiles to be regenerated when you run `make');
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
 # (2) otherwise, pass the desired values on the `make' command line.
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
-MAKE=make
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
+
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
 all-recursive install-data-recursive install-exec-recursive \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
 installdirs-recursive install-recursive uninstall-recursive  \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
diff --git a/config.status b/config.status
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
--- a/config.status
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
+++ b/config.status
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
@@ -512,7 +512,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
 s,@AUTOMAKE@,/home/tzeman/dev/vmailmgr-0.97/missing automake-1.4,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
 s,@AUTOHEADER@,/home/tzeman/dev/vmailmgr-0.97/missing autoheader,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
 s,@MAKEINFO@,makeinfo,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
-s,@SET_MAKE@,MAKE=make,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
+s,@SET_MAKE@,,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
 s,@KRB5_TRUE@,#,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
 s,@KRB5_FALSE@,,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
 s,@VPWTABLE_CDB_TRUE@,,;t t
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
diff --git a/daemon/Makefile b/daemon/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
--- a/daemon/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
+++ b/daemon/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
@@ -95,7 +95,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
 INCLUDES = -I../lib
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
-vmailmgrd_SOURCES = daemon.h 	adduser.cc 	autoresponse.cc 	chattr.cc 	check.cc 	command.h command.cc 	deluser.cc 	dispatch.cc 	listdomain.cc 	log.h log.cc 	lookup.cc 	main.cc 	stat.cc 	state.h state.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
+vmailmgrd_SOURCES = daemon.h 	adduser.cc 	anyvar.cc	autoresponse.cc 	chattr.cc 	check.cc 	command.h command.cc 	deluser.cc 	dispatch.cc 	listdomain.cc 	log.h log.cc 	lookup.cc 	main.cc 	stat.cc 	state.h state.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
 vmailmgrd_LDADD = ../lib/libvmailmgr.a ../lib/cli++/libcli++.a
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
@@ -108,7 +108,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
 CPPFLAGS = 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
 LDFLAGS = 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
 LIBS = -lcrypt 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
-vmailmgrd_OBJECTS =  adduser.o autoresponse.o chattr.o check.o command.o \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
+vmailmgrd_OBJECTS =  adduser.o anyvar.o autoresponse.o chattr.o check.o command.o \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
 deluser.o dispatch.o listdomain.o log.o lookup.o main.o stat.o state.o
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
 vmailmgrd_DEPENDENCIES =  ../lib/libvmailmgr.a ../lib/cli++/libcli++.a
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
 vmailmgrd_LDFLAGS = 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
@@ -288,6 +288,17 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
 	../lib/vpwtable/vpwtable.h ../lib/misc/response.h command.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
 	log.h ../lib/fdbuf/fdbuf.h ../lib/fdbuf/fdibuf.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
 	../lib/fdbuf/fdobuf.h
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
+anyvar.o: anyvar.cc ../config.h daemon.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
+	../lib/mystring/mystring.h ../lib/mystring/rep.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
+	../lib/mystring/iter.h ../lib/mystring/join.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
+	../lib/misc/pwentry.h ../lib/config/configrc.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
+	../lib/misc/strlist.h ../lib/vpwentry/vpwentry.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
+	../lib/misc/pwcrypt.h ../lib/misc/itoa.h state.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
+	../lib/vdomain/vdomain.h ../lib/vpwtable/vpwtable.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
+	../lib/misc/response.h command.h log.h ../lib/fdbuf/fdbuf.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
+	../lib/fdbuf/fdibuf.h ../lib/fdbuf/fdobuf.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
+	../lib/misc/lookup.h ../lib/misc/maildir.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
+	../lib/misc/pwentry_table.h ../lib/misc/stat_fns.h
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
 autoresponse.o: autoresponse.cc ../config.h daemon.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    66
 	../lib/mystring/mystring.h ../lib/mystring/rep.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    67
 	../lib/mystring/iter.h ../lib/mystring/join.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    68
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    69
--- a/daemon/Makefile.am
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    70
+++ b/daemon/Makefile.am
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    71
@@ -24,6 +24,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    72
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    73
 vmailmgrd_SOURCES = daemon.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    74
 	adduser.cc \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    75
+	anyvar.cc \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    76
 	autoresponse.cc \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    77
 	chattr.cc \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    78
 	check.cc \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    79
diff --git a/daemon/Makefile.in b/daemon/Makefile.in
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    80
--- a/daemon/Makefile.in
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    81
+++ b/daemon/Makefile.in
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    82
@@ -95,7 +95,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    83
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    84
 INCLUDES = -I../lib
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    85
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    86
-vmailmgrd_SOURCES = daemon.h 	adduser.cc 	autoresponse.cc 	chattr.cc 	check.cc 	command.h command.cc 	deluser.cc 	dispatch.cc 	listdomain.cc 	log.h log.cc 	lookup.cc 	main.cc 	stat.cc 	state.h state.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    87
+vmailmgrd_SOURCES = daemon.h 	adduser.cc 	anyvar.cc	autoresponse.cc 	chattr.cc 	check.cc 	command.h command.cc 	deluser.cc 	dispatch.cc 	listdomain.cc 	log.h log.cc 	lookup.cc 	main.cc 	stat.cc 	state.h state.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    88
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    89
 vmailmgrd_LDADD = ../lib/libvmailmgr.a ../lib/cli++/libcli++.a
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    90
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    91
@@ -108,7 +108,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    92
 CPPFLAGS = @CPPFLAGS@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    93
 LDFLAGS = @LDFLAGS@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    94
 LIBS = @LIBS@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    95
-vmailmgrd_OBJECTS =  adduser.o autoresponse.o chattr.o check.o command.o \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    96
+vmailmgrd_OBJECTS =  adduser.o anyvar.o autoresponse.o chattr.o check.o command.o \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    97
 deluser.o dispatch.o listdomain.o log.o lookup.o main.o stat.o state.o
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    98
 vmailmgrd_DEPENDENCIES =  ../lib/libvmailmgr.a ../lib/cli++/libcli++.a
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    99
 vmailmgrd_LDFLAGS = 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   100
@@ -288,6 +288,17 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   101
 	../lib/vpwtable/vpwtable.h ../lib/misc/response.h command.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   102
 	log.h ../lib/fdbuf/fdbuf.h ../lib/fdbuf/fdibuf.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   103
 	../lib/fdbuf/fdobuf.h
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   104
+anyvar.o: anyvar.cc ../config.h daemon.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   105
+	../lib/mystring/mystring.h ../lib/mystring/rep.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   106
+	../lib/mystring/iter.h ../lib/mystring/join.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   107
+	../lib/misc/pwentry.h ../lib/config/configrc.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   108
+	../lib/misc/strlist.h ../lib/vpwentry/vpwentry.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   109
+	../lib/misc/pwcrypt.h ../lib/misc/itoa.h state.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   110
+	../lib/vdomain/vdomain.h ../lib/vpwtable/vpwtable.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   111
+	../lib/misc/response.h command.h log.h ../lib/fdbuf/fdbuf.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   112
+	../lib/fdbuf/fdibuf.h ../lib/fdbuf/fdobuf.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   113
+	../lib/misc/lookup.h ../lib/misc/maildir.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   114
+	../lib/misc/pwentry_table.h ../lib/misc/stat_fns.h
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   115
 autoresponse.o: autoresponse.cc ../config.h daemon.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   116
 	../lib/mystring/mystring.h ../lib/mystring/rep.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   117
 	../lib/mystring/iter.h ../lib/mystring/join.h \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   118
diff --git a/daemon/autoresponse.cc b/daemon/anyvar.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   119
copy from daemon/autoresponse.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   120
copy to daemon/anyvar.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   121
--- a/daemon/autoresponse.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   122
+++ b/daemon/anyvar.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   123
@@ -27,7 +27,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   124
 #include "misc/pwentry_table.h"
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   125
 #include "misc/stat_fns.h"
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   126
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   127
-response autoresponse_write(const mystring& directory,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   128
+response anyvar_write(const mystring& directory,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   129
 			    const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   130
 			    const mystring& disabled,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   131
 			    const mystring& msg)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   132
@@ -36,18 +36,18 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   133
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   134
   if(!is_dir(directory.c_str())) {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   135
     if(mkdir(directory.c_str(), 0755))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   136
-      RETURN(err, "Could not create autoresponse directory");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   137
+      RETURN(err, "Could not create anyvar directory");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   138
   }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   139
   
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   140
   if(is_exist(tmpfile.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   141
-    RETURN(err, "Temporary autoresponse file already exists");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   142
+    RETURN(err, "Temporary anyvar file already exists");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   143
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   144
   if(is_exist(disabled.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   145
     RETURN(err, "Autoresponse is disabled, reenable it before writing a new message");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   146
   
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   147
   fdobuf out(tmpfile.c_str(), fdobuf::create | fdobuf::excl, 0644);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   148
   if(!out)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   149
-    RETURN(err, "Unable to open temporary autoresponse file for writing");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   150
+    RETURN(err, "Unable to open temporary anyvar file for writing");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   151
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   152
   out << msg;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   153
   if(!out.flush() || !out.close()) {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   154
@@ -56,34 +56,34 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   155
   }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   156
   if(rename(tmpfile.c_str(), location.c_str())) {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   157
     unlink(tmpfile.c_str());
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   158
-    RETURN(err, "Unable to rename temporary autoresponse file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   159
+    RETURN(err, "Unable to rename temporary anyvar file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   160
   }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   161
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   162
-  RETURN(ok, "Message successfully written to autoresponse file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   163
+  RETURN(ok, "Message successfully written to anyvar file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   164
 }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   165
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   166
-response autoresponse_disable(const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   167
+response anyvar_disable(const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   168
 			      const mystring& disabled)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   169
 {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   170
   if(!is_exist(location.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   171
-    RETURN(ok, "Autoresponse file did not exist");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   172
+    RETURN(ok, "Anyvar file did not exist");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   173
   if(is_exist(disabled.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   174
-    RETURN(err, "Disabled autoresponse file already exists");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   175
+    RETURN(err, "Disabled anyvar file already exists");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   176
   if(rename(location.c_str(), disabled.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   177
-    RETURN(err, "Unable to rename autoresponse file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   178
-  RETURN(ok, "Autoresponse file sucessfully disabled");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   179
+    RETURN(err, "Unable to rename anyvar file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   180
+  RETURN(ok, "Anyvar file sucessfully disabled");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   181
 }  
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   182
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   183
-response autoresponse_enable(const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   184
+response anyvar_enable(const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   185
 			     const mystring& disabled)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   186
 {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   187
   if(is_exist(location.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   188
-    RETURN(ok, "Autoresponse is already enabled");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   189
+    RETURN(ok, "Anyvar is already enabled");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   190
   if(!is_exist(disabled.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   191
-    RETURN(err, "Disabled autoresponse file did not exist");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   192
+    RETURN(err, "Disabled anyvar file did not exist");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   193
   if(rename(disabled.c_str(), location.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   194
-    RETURN(err, "Unable to rename previously disabled autoresponse file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   195
-  RETURN(ok, "Autoresponse file sucessfully restored");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   196
+    RETURN(err, "Unable to rename previously disabled anyvar file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   197
+  RETURN(ok, "Anyvar file sucessfully restored");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   198
 }  
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   199
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   200
 static bool read_file(const mystring& filename, mystring& out)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   201
@@ -99,33 +99,39 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   202
   return true;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   203
 }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   204
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   205
-response autoresponse_read(const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   206
+response anyvar_read(const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   207
 			   const mystring& disabled, int fd)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   208
 {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   209
   mystring line;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   210
   if(!is_exist(location.c_str()) &&
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   211
      !is_exist(disabled.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   212
-    RETURN(err, "Autoresponder file does not exist");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   213
+    RETURN(err, "Anyvar file does not exist");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   214
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   215
   mystring contents;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   216
   if(!read_file(location, contents) &&
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   217
      !read_file(disabled, contents))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   218
-    RETURN(err, "Unable to read data from autoresponse file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   219
+    RETURN(err, "Unable to read data from anyvar file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   220
   response resp(response::ok, contents);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   221
   resp.write(fd);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   222
-  RETURN(ok, "Retrieved autoresponse file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   223
+  RETURN(ok, "Retrieved anyvar file");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   224
 }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   225
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   226
-response autoresponse_delete(const mystring& directory)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   227
+response anyvar_delete(const mystring& directory,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   228
+			     const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   229
+			     const mystring& disabled)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   230
 {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   231
   if(!is_dir(directory.c_str()))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   232
-    RETURN(err, "Autoresponse directory does not exist.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   233
-  if(!delete_directory(directory))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   234
-    RETURN(err, "Could not delete autoresponse directory.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   235
-  RETURN(ok, "Autoresponse directory deleted.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   236
+    RETURN(err, "Anyvar directory does not exist.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   237
+  const char* fn = is_file(location.c_str()) ? location.c_str() :
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   238
+    is_file(disabled.c_str()) ? disabled.c_str() : NULL;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   239
+  if(fn == NULL)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   240
+    RETURN(err, "Anyvar file does not exist.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   241
+  if(unlink(fn))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   242
+    RETURN(err, "Failed to remove anyvar file.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   243
+  RETURN(ok, "Anyvar file deleted.");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   244
 }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   245
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   246
-response autoresponse_status(const mystring& directory,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   247
+response anyvar_status(const mystring& directory,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   248
 			     const mystring& location,
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   249
 			     const mystring& disabled)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   250
 {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   251
@@ -141,18 +147,19 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   252
   RETURN(ok, msg);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   253
 }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   254
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   255
-CMD_FD(autoresponse)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   256
-  // Usage: autoresponse baseuser-virtuser pass action [autorespmessage]
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   257
+CMD_FD(anyvar)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   258
+  // Usage: anyvar baseuser-virtuser pass action varname [value]
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   259
 {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   260
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   261
   mystring user = args[0];
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   262
   mystring pass = args[1];
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   263
   args[1] = LOG_PASSWORD;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   264
   mystring action = args[2];
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   265
-  mystring message;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   266
-  if(args.count() == 4) {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   267
-    message = args[3];
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   268
-    args[3] = LOG_MESSAGE;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   269
+  mystring varname = args[3];
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   270
+  mystring value;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   271
+  if(args.count() == 5) {
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   272
+    value = args[4];
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   273
+    args[4] = LOG_MESSAGE;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   274
   }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   275
   logcommand(args);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   276
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   277
@@ -160,25 +167,25 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   278
   vpwentry* vpw;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   279
   OK_RESPONSE(lookup_and_validate(user, pw, vpw, pass, true, true));
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   280
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   281
-  const mystring directory = vpw->directory + "/" + config->autoresponse_dir();
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   282
-  const mystring filename = directory + "/" + config->autoresponse_file();
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   283
+  const mystring directory = vpw->directory + "/anyvar"; // XXX: + config->anyvar_dir();
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   284
+  const mystring filename = directory + "/" + varname;
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   285
   const mystring disabled = filename + ".disabled";
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   286
   
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   287
   if(action == "disable")
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   288
-    return autoresponse_disable(filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   289
+    return anyvar_disable(filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   290
   else if(action == "enable")
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   291
-    return autoresponse_enable(filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   292
+    return anyvar_enable(filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   293
   else if(action == "read")
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   294
-    return autoresponse_read(filename, disabled, fd);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   295
+    return anyvar_read(filename, disabled, fd);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   296
   else if(action == "write")
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   297
-    if(!message)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   298
-      RETURN(bad, "Missing autoresponse message argument");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   299
+    if(!value)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   300
+      RETURN(bad, "Missing anyvar value argument");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   301
     else
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   302
-      return autoresponse_write(directory, filename, disabled, message);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   303
+      return anyvar_write(directory, filename, disabled, value);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   304
   else if(action == "delete")
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   305
-    return autoresponse_delete(directory);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   306
+    return anyvar_delete(directory, filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   307
   else if(action == "status")
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   308
-    return autoresponse_status(directory, filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   309
+    return anyvar_status(directory, filename, disabled);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   310
   
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   311
   RETURN(err, "Unrecognized command");
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   312
 }
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   313
diff --git a/daemon/dispatch.cc b/daemon/dispatch.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   314
--- a/daemon/dispatch.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   315
+++ b/daemon/dispatch.cc
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   316
@@ -21,6 +21,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   317
 // declare the commands
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   318
 extern CMD(adduser2);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   319
 extern CMD(adduser3);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   320
+extern CMD(anyvar);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   321
 extern CMD(autoresponse);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   322
 extern CMD(chattr);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   323
 extern CMD(check);
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   324
@@ -72,6 +73,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   325
   ENTRY(chattr,       5, -1, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   326
   ENTRY(adduser2,     4, -1, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   327
   ENTRY(adduser3,     5, -1, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   328
+  ENTRY(anyvar,       5,  6, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   329
   ENTRY(autoresponse, 4,  5, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   330
   ENTRY(deluser,      3,  3, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   331
   ENTRY(stat,         3,  3, true),
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   332
diff --git a/lib/Makefile b/lib/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   333
--- a/lib/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   334
+++ b/lib/Makefile
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   335
@@ -166,7 +166,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   336
 #     (which will cause the Makefiles to be regenerated when you run `make');
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   337
 # (2) otherwise, pass the desired values on the `make' command line.
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   338
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   339
-MAKE=make
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   340
+
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   341
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   342
 all-recursive install-data-recursive install-exec-recursive \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   343
 installdirs-recursive install-recursive uninstall-recursive  \
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   344
diff --git a/python/commands.py b/python/commands.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   345
--- a/python/commands.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   346
+++ b/python/commands.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   347
@@ -45,6 +45,12 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   348
 def lookup(domain, username, password):
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   349
     return types.VUser(execute('lookup', domain, username, password))
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   350
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   351
+def anyvar(domain, user, password, action, varname, value=None):
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   352
+    cmd = [ domain, user, password, action, varname ]
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   353
+    if value:
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   354
+        cmd.append(value)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   355
+    return daemon.execute('anyvar', cmd)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   356
+
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   357
 def autoresponse(domain, user, password, action, message=None):
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   358
     cmd = [ domain, user, password, action ]
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   359
     if message:
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   360
diff --git a/python/config.py b/python/config.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   361
--- a/python/config.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   362
+++ b/python/config.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   363
@@ -16,7 +16,7 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   364
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   365
 import os
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   366
 import string
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   367
-import local
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   368
+#import local
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   369
 
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   370
 def read(name, default):
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   371
     try:
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   372
diff --git a/python/types.py b/python/types.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   373
--- a/python/types.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   374
+++ b/python/types.py
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   375
@@ -94,7 +94,8 @@
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   376
             if flag == ATTR_MAILBOX_ENABLED:
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   377
                 self.mailbox_enabled = Flag(val)
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   378
             else:
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   379
-                raise ValueError, "Invalid flag number %d in vuser data" % flag
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   380
+                #raise ValueError, "Invalid flag number %d in vuser data" % flag
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   381
+                print "Invalid flag number %d in vuser data" % flag
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   382
         bin = string.split(bin[i+1:], '\0')
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   383
         self.password = bin[0]
9c1ee7dfe89e anyvar.patch
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   384
         self.mailbox = bin[1]