diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/cfr/main/introweb.html linuxconf-1.13r15.1/help.files/cfr/main/introweb.html *** linuxconf-1.13r15/help.files/cfr/main/introweb.html Sat Jan 30 23:09:02 1999 --- linuxconf-1.13r15.1/help.files/cfr/main/introweb.html Mon Mar 8 18:36:16 1999 *************** *** 1,8 **** ! Linuxconf 1.13r13 !

Linuxconf 1.13r13


1. Qu'est-ce que Linuxconf

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. Qu'est-ce que Linuxconf

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/fi/main/introweb.html linuxconf-1.13r15.1/help.files/fi/main/introweb.html *** linuxconf-1.13r15/help.files/fi/main/introweb.html Sat Jan 30 23:09:16 1999 --- linuxconf-1.13r15.1/help.files/fi/main/introweb.html Mon Mar 8 18:36:30 1999 *************** *** 1,8 **** ! Linuxconf 1.13r13 !

Linuxconf 1.13r13


1. Mikä Linuxconf?

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. Mikä Linuxconf?

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/fr/main/introweb.html linuxconf-1.13r15.1/help.files/fr/main/introweb.html *** linuxconf-1.13r15/help.files/fr/main/introweb.html Sun Feb 28 12:54:41 1999 --- linuxconf-1.13r15.1/help.files/fr/main/introweb.html Mon Mar 8 18:36:42 1999 *************** *** 1,8 **** ! Linuxconf 1.13r14 !

Linuxconf 1.13r14


1. Qu'est ce que Linuxconf

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. Qu'est ce que Linuxconf

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/it/main/introweb.html linuxconf-1.13r15.1/help.files/it/main/introweb.html *** linuxconf-1.13r15/help.files/it/main/introweb.html Sat Jan 30 23:09:42 1999 --- linuxconf-1.13r15.1/help.files/it/main/introweb.html Mon Mar 8 18:37:01 1999 *************** *** 1,8 **** ! Linuxconf 1.13r13 !

Linuxconf 1.13r13


1. Cos'é Linuxconf

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. Cos'é Linuxconf

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/no/main/introweb.html linuxconf-1.13r15.1/help.files/no/main/introweb.html *** linuxconf-1.13r15/help.files/no/main/introweb.html Sat Jan 30 23:09:49 1999 --- linuxconf-1.13r15.1/help.files/no/main/introweb.html Mon Mar 8 18:37:08 1999 *************** *** 1,8 **** ! Linuxconf 1.13r13 !

Linuxconf 1.13r13


1. Hva er Linuxconf

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. Hva er Linuxconf

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/pt/main/introweb.html linuxconf-1.13r15.1/help.files/pt/main/introweb.html *** linuxconf-1.13r15/help.files/pt/main/introweb.html Wed Feb 24 17:03:55 1999 --- linuxconf-1.13r15.1/help.files/pt/main/introweb.html Mon Mar 8 18:37:19 1999 *************** *** 1,8 **** ! Configurador Linux 1.13r12 !

Configurador Linux 1.13r12


O que é o Configurador Linux

--- 1,8 ---- ! Configurador Linux 1.13r15.1 !

Configurador Linux 1.13r15.1


O que é o Configurador Linux

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/se/main/introweb.html linuxconf-1.13r15.1/help.files/se/main/introweb.html *** linuxconf-1.13r15/help.files/se/main/introweb.html Tue Feb 23 17:00:58 1999 --- linuxconf-1.13r15.1/help.files/se/main/introweb.html Mon Mar 8 18:37:41 1999 *************** *** 1,8 **** ! Linuxconf 1.13r14 !

Linuxconf 1.13r14


1. What is Linuxconf

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. What is Linuxconf

diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/help.files/sk/main/introweb.html linuxconf-1.13r15.1/help.files/sk/main/introweb.html *** linuxconf-1.13r15/help.files/sk/main/introweb.html Sat Jan 30 23:10:20 1999 --- linuxconf-1.13r15.1/help.files/sk/main/introweb.html Mon Mar 8 18:37:54 1999 *************** *** 1,8 **** ! Linuxconf 1.13r13 !

Linuxconf 1.13r13


1. Èo je Linuxconf

--- 1,8 ---- ! Linuxconf 1.13r15.1 !

Linuxconf 1.13r15.1


1. Èo je Linuxconf

Only in linuxconf-1.13r15/help.files/sources/main: introweb.html diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/messages/sources/mailconf.dic linuxconf-1.13r15.1/messages/sources/mailconf.dic *** linuxconf-1.13r15/messages/sources/mailconf.dic Wed Mar 3 09:43:57 1999 --- linuxconf-1.13r15.1/messages/sources/mailconf.dic Mon Mar 8 21:08:20 1999 *************** *** 530,534 **** + --help\n + --addvdom domain [--startuid uid ] [--daliases domain_alias ]\n ! + [--faliase email_aliase_file]\n + --delvdom domain\n !F_REDIR --- 530,534 ---- + --help\n + --addvdom domain [--startuid uid ] [--daliases domain_alias ]\n ! + [--faliase email_aliase_file] [ --quota max_inbox_k] \n + --delvdom domain\n !F_REDIR *************** *** 536,537 **** --- 536,539 ---- !E_IVLDCHAR :E Invalid character in aliase + !F_QUOTA + :E Limit user inbox to (k) diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/messages/sources/netconf.dic linuxconf-1.13r15.1/messages/sources/netconf.dic *** linuxconf-1.13r15/messages/sources/netconf.dic Sat Mar 6 23:22:02 1999 --- linuxconf-1.13r15.1/messages/sources/netconf.dic Mon Mar 8 22:02:15 1999 *************** *** 1001,1005 **** :E Updating user account !H_DAEMONS ! :E Mod.\tName\tPath !H_NETDEV :E Network device --- 1001,1005 ---- :E Updating user account !H_DAEMONS ! :E Name\tPath\tMod. !H_NETDEV :E Network device diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/messages/sources/samba.dic linuxconf-1.13r15.1/messages/sources/samba.dic *** linuxconf-1.13r15/messages/sources/samba.dic Wed Mar 3 09:41:33 1999 --- linuxconf-1.13r15.1/messages/sources/samba.dic Mon Mar 8 18:17:46 1999 *************** *** 1,3 **** ! @version 1 !M_SAMBA :E Samba file server --- 1,3 ---- ! @version 2 !M_SAMBA :E Samba file server *************** *** 6,11 **** !T_SERVICES :E 1-Services - !E_SMBCONF - :E Invalid smb.conf file !F_SHARENAME :E Share name --- 6,9 ---- diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/dnsconf/dnsconf.h linuxconf-1.13r15.1/modules/dnsconf/dnsconf.h *** linuxconf-1.13r15/modules/dnsconf/dnsconf.h Fri Mar 5 21:15:15 1999 --- linuxconf-1.13r15.1/modules/dnsconf/dnsconf.h Sun Mar 7 14:08:46 1999 *************** *** 38,42 **** RTYPE_ORIGIN, RTYPE_HINFO, ! RTYPE_RP }; --- 38,43 ---- RTYPE_ORIGIN, RTYPE_HINFO, ! RTYPE_RP, ! RTYPE_TXT, }; *************** *** 161,164 **** --- 162,180 ---- void print (FILE *fout)const; /*~PROTOEND~ RECORD_IN_RP */ + }; + + class RECORD_IN_TXT: public RECORD_IN{ + public: + IN_NAME name; + SSTRING txt; + /*~PROTOBEG~ RECORD_IN_TXT */ + public: + RECORD_IN_TXT (const char *_name, + const char *_txt); + protected: + int cmpsame (const RECORD *other); + public: + void print (FILE *fout)const; + /*~PROTOEND~ RECORD_IN_TXT */ }; diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/dnsconf/dnsconf.p linuxconf-1.13r15.1/modules/dnsconf/dnsconf.p *** linuxconf-1.13r15/modules/dnsconf/dnsconf.p Fri Mar 5 21:15:15 1999 --- linuxconf-1.13r15.1/modules/dnsconf/dnsconf.p Sun Mar 7 14:08:46 1999 *************** *** 30,38 **** /* mod_dnsconf.cc 04/01/99 22.12.00 */ void dnsconf_updatedns (bool silent); ! /* origin.cc 02/11/97 19.08.52 */ /* primary.cc 05/03/99 20.24.32 */ /* primbydom.cc 20/12/98 14.41.44 */ /* primquery.cc 23/07/97 22.55.18 */ ! /* record.cc 05/03/99 21.15.12 */ /* secondary.cc 20/12/98 14.42.02 */ /* soa.cc 25/02/98 14.52.56 */ --- 30,38 ---- /* mod_dnsconf.cc 04/01/99 22.12.00 */ void dnsconf_updatedns (bool silent); ! /* origin.cc 07/03/99 14.08.26 */ /* primary.cc 05/03/99 20.24.32 */ /* primbydom.cc 20/12/98 14.41.44 */ /* primquery.cc 23/07/97 22.55.18 */ ! /* record.cc 07/03/99 14.08.00 */ /* secondary.cc 20/12/98 14.42.02 */ /* soa.cc 25/02/98 14.52.56 */ diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/dnsconf/dnsconf.pm linuxconf-1.13r15.1/modules/dnsconf/dnsconf.pm *** linuxconf-1.13r15/modules/dnsconf/dnsconf.pm Fri Mar 5 21:15:15 1999 --- linuxconf-1.13r15.1/modules/dnsconf/dnsconf.pm Sun Mar 7 14:08:46 1999 *************** *** 127,131 **** PUBLIC void MODULE_dnsconf::usage (SSTRINGS&tb); PUBLIC int MODULE_dnsconf::execmain (int argc, char *argv[]); ! /* origin.cc 02/11/97 19.08.52 */ PUBLIC ORIGIN::ORIGIN (const char *_origin); PUBLIC void ORIGIN::print (bool save_ori, TBFILE&tbf)const; --- 127,131 ---- PUBLIC void MODULE_dnsconf::usage (SSTRINGS&tb); PUBLIC int MODULE_dnsconf::execmain (int argc, char *argv[]); ! /* origin.cc 07/03/99 14.08.26 */ PUBLIC ORIGIN::ORIGIN (const char *_origin); PUBLIC void ORIGIN::print (bool save_ori, TBFILE&tbf)const; *************** *** 224,228 **** PUBLIC int DNS::locate_ip (const char *ip, SSTRINGS&recs); PUBLIC PRIMARY *DNS::locate_domain (const char *domain); ! /* record.cc 05/03/99 21.15.12 */ PUBLIC RECORD::RECORD (RECORD_TYPE _id); PUBLIC bool RECORD::is (RECORD_TYPE _id); --- 224,228 ---- PUBLIC int DNS::locate_ip (const char *ip, SSTRINGS&recs); PUBLIC PRIMARY *DNS::locate_domain (const char *domain); ! /* record.cc 07/03/99 14.08.00 */ PUBLIC RECORD::RECORD (RECORD_TYPE _id); PUBLIC bool RECORD::is (RECORD_TYPE _id); *************** *** 291,294 **** --- 291,298 ---- PROTECTED int RECORD_IN_RP::cmpsame (const RECORD *other); PUBLIC void RECORD_IN_RP::print (FILE *fout)const; + PUBLIC RECORD_IN_TXT::RECORD_IN_TXT (const char *_name, + const char *_txt); + PROTECTED int RECORD_IN_TXT::cmpsame (const RECORD *other); + PUBLIC void RECORD_IN_TXT::print (FILE *fout)const; PUBLIC RECORD_PARSE::RECORD_PARSE (void); PUBLIC RECORD_INCLUDE::RECORD_INCLUDE (const char *_path); diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/dnsconf/origin.cc linuxconf-1.13r15.1/modules/dnsconf/origin.cc *** linuxconf-1.13r15/modules/dnsconf/origin.cc Fri Mar 5 21:19:29 1999 --- linuxconf-1.13r15.1/modules/dnsconf/origin.cc Sun Mar 7 14:08:27 1999 *************** *** 180,183 **** --- 180,185 ---- }else if (stricmp(keyword,"RP")==0){ o = new RECORD_IN_RP(p.f1,startf2); + }else if (stricmp(keyword,"TXT")==0){ + o = new RECORD_IN_TXT(p.f1,startf2); } if (o != NULL){ diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/dnsconf/record.cc linuxconf-1.13r15.1/modules/dnsconf/record.cc *** linuxconf-1.13r15/modules/dnsconf/record.cc Sat Mar 6 11:00:57 1999 --- linuxconf-1.13r15.1/modules/dnsconf/record.cc Sun Mar 7 14:08:01 1999 *************** *** 433,436 **** --- 433,456 ---- } + PUBLIC RECORD_IN_TXT::RECORD_IN_TXT( + const char *_name, + const char *_txt) + : RECORD_IN(RTYPE_TXT) + { + name.setfrom (_name); + txt.setfrom (_txt); + } + + PROTECTED int RECORD_IN_TXT::cmpsame(const RECORD *other) + { + return name.cmp(((RECORD_IN_TXT*)other)->name); + } + + PUBLIC void RECORD_IN_TXT::print (FILE *fout) const + { + fprintf (fout,"%s\t%s\tIN\tTXT\t%s\n",name.get(),ttlstr + ,txt.get()); + } + PUBLIC RECORD_PARSE::RECORD_PARSE() { diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/mailconf/internal.h linuxconf-1.13r15.1/modules/mailconf/internal.h *** linuxconf-1.13r15/modules/mailconf/internal.h Thu Oct 8 11:50:37 1998 --- linuxconf-1.13r15.1/modules/mailconf/internal.h Mon Mar 8 21:08:59 1999 *************** *** 116,119 **** --- 116,120 ---- // does not exist int startuid; + int quota; /*~PROTOBEG~ VDOMAIN */ public: diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/mailconf/mailconf.m linuxconf-1.13r15.1/modules/mailconf/mailconf.m *** linuxconf-1.13r15/modules/mailconf/mailconf.m Wed Mar 3 09:43:57 1999 --- linuxconf-1.13r15.1/modules/mailconf/mailconf.m Mon Mar 8 21:08:20 1999 *************** *** 3,7 **** #define DICTIONARY_REQUEST \ const char **_dictionary_mailconf;\ ! TRANSLATE_SYSTEM_REQ _dictionary_req_mailconf("mailconf",_dictionary_mailconf,241,18);\ void dummy_dict_mailconf(){} #endif --- 3,7 ---- #define DICTIONARY_REQUEST \ const char **_dictionary_mailconf;\ ! TRANSLATE_SYSTEM_REQ _dictionary_req_mailconf("mailconf",_dictionary_mailconf,242,18);\ void dummy_dict_mailconf(){} #endif *************** *** 255,256 **** --- 255,257 ---- #define F_REDIR 239 #define E_IVLDCHAR 240 + #define F_QUOTA 241 diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/mailconf/mod_mailconf.cc linuxconf-1.13r15.1/modules/mailconf/mod_mailconf.cc *** linuxconf-1.13r15/modules/mailconf/mod_mailconf.cc Sat Jan 9 11:12:05 1999 --- linuxconf-1.13r15.1/modules/mailconf/mod_mailconf.cc Mon Mar 8 18:38:37 1999 *************** *** 216,220 **** " --help\n" " --addvdom domain [--startuid uid ] [--daliases domain_alias ]\n" ! " [--faliase email_aliase_file]\n" " --delvdom domain\n" )); --- 216,220 ---- " --help\n" " --addvdom domain [--startuid uid ] [--daliases domain_alias ]\n" ! " [--faliase email_aliase_file] [ --quota max_inbox_k] \n" " --delvdom domain\n" )); diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/mailconf/vdomain.cc linuxconf-1.13r15.1/modules/mailconf/vdomain.cc *** linuxconf-1.13r15/modules/mailconf/vdomain.cc Sun Dec 20 14:45:13 1998 --- linuxconf-1.13r15.1/modules/mailconf/vdomain.cc Mon Mar 8 18:37:55 1999 *************** *** 40,43 **** --- 40,44 ---- static const char K_FALLBACK[]="vdomain_fallback"; static const char K_STARTUID[]="vdomain_startuid"; + static const char K_QUOTA[]="vdomain_quota"; static MAILCONF_HELP_FILE help_vdomain("vdomain"); *************** *** 53,56 **** --- 54,58 ---- fallback.setfrom(linuxconf_getval (K_FALLBACK,dom)); startuid = linuxconf_getvalnum (K_STARTUID,dom,60000); + quota = linuxconf_getvalnum (K_QUOTA,dom,0); } *************** *** 58,61 **** --- 60,64 ---- { startuid = 60000; + quota = 0; } *************** *** 77,80 **** --- 80,84 ---- dia.newf_str (MSG_U(F_FALLBACK,"Fallback destination (opt)"),fallback); dia.newf_num (MSG_U(F_STARTUID,"Allocate UID from"),startuid); + dia.newf_num (MSG_U(F_QUOTA,"Limit user inbox to (k)"),quota); while (faliases.getnb()<2) faliases.add (new SSTRING); dia.newf_str (MSG_U(F_ALIASFILE,"Alternate Aliases files(opt)") *************** *** 241,244 **** --- 245,253 ---- linuxconf_replace (K_STARTUID,dom,d->startuid); } + if (d->quota == 0){ + linuxconf_removeall (K_QUOTA,dom); + }else{ + linuxconf_replace (K_QUOTA,dom,d->quota); + } if (d->fallback.is_empty()){ linuxconf_removeall (K_FALLBACK,dom); *************** *** 854,857 **** --- 863,869 ---- }else if (strcmp(opt,"--startuid")==0){ dom->startuid = atoi(arg); + i++; + }else if (strcmp(opt,"--quota")==0){ + dom->quota = atoi(arg); i++; }else{ diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/samba/samba.cc linuxconf-1.13r15.1/modules/samba/samba.cc *** linuxconf-1.13r15/modules/samba/samba.cc Sat Nov 28 23:19:28 1998 --- linuxconf-1.13r15.1/modules/samba/samba.cc Mon Mar 8 21:37:55 1999 *************** *** 51,55 **** if (strcmp(msg,"chgpasswd")==0){ SMB_CONF smb; ! if (smb.syncpass){ const char *user = argv[0]; const char *passwd = argv[1]; --- 51,56 ---- if (strcmp(msg,"chgpasswd")==0){ SMB_CONF smb; ! const char *domain = argv[3]; ! if (smb.syncpass && strcmp(domain,"/")==0){ const char *user = argv[0]; const char *passwd = argv[1]; diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/samba/samba.m linuxconf-1.13r15.1/modules/samba/samba.m *** linuxconf-1.13r15/modules/samba/samba.m Wed Mar 3 09:41:33 1999 --- linuxconf-1.13r15.1/modules/samba/samba.m Mon Mar 8 18:17:46 1999 *************** *** 3,7 **** #define DICTIONARY_REQUEST \ const char **_dictionary_samba;\ ! TRANSLATE_SYSTEM_REQ _dictionary_req_samba("samba",_dictionary_samba,63,1);\ void dummy_dict_samba(){} #endif --- 3,7 ---- #define DICTIONARY_REQUEST \ const char **_dictionary_samba;\ ! TRANSLATE_SYSTEM_REQ _dictionary_req_samba("samba",_dictionary_samba,62,2);\ void dummy_dict_samba(){} #endif *************** *** 17,78 **** #define T_PRIVISAMBA 1 #define T_SERVICES 2 ! #define E_SMBCONF 3 ! #define F_SHARENAME 4 ! #define T_SHARE 5 ! #define I_SHARE 6 ! #define H_SHARES 7 ! #define I_NEWSHARE 8 ! #define T_SHARES 9 ! #define I_SHARES 10 ! #define F_COMMENT 11 ! #define F_PUBLIC 12 ! #define F_WRITABLE 13 ! #define F_WRITELIST 14 ! #define M_DEFAULT 15 ! #define M_HOMES 16 ! #define M_PRINTERS 17 ! #define T_SAMBA 18 ! #define I_SAMBA 19 ! #define M_SHARES 20 ! #define F_PREEXEC 21 ! #define F_ROOTPREEXEC 22 ! #define F_POSTEXEC 23 ! #define F_ROOTPOSTEXEC 24 ! #define F_FORCEUSER 25 ! #define F_FORCEGROUP 26 ! #define F_BROWSEABLE 27 ! #define F_GUESTACCOUNT 28 ! #define F_ENGRYPTPASS 29 ! #define F_PATH 30 ! #define F_PASSSERVER 31 ! #define F_PASSLEVEL 32 ! #define F_PASSPROG 33 ! #define F_PREFMASTER 34 ! #define F_OSLEVEL 35 ! #define F_NULLPASSWORDS 36 ! #define F_ENABLE 37 ! #define F_INHERIT 38 ! #define F_GUESTONLY 39 ! #define F_ADMINUSERS 40 ! #define F_ALLOWHOSTS 41 ! #define F_DENYHOSTS 42 ! #define F_DONTDESCEND 43 ! #define F_GUESTACCOUNTSH 44 ! #define F_VALIDUSERS 45 ! #define F_IVLDUSERS 46 ! #define F_MAGICSCRIPT 47 ! #define F_MAGICOUTPUT 48 ! #define F_MAXCONNECT 49 ! #define F_USERLIST 50 ! #define F_READLIST 51 ! #define F_ONLYUSER 52 ! #define F_DEADTIME 53 ! #define F_DBGLEVEL 54 ! #define F_DEFSERVICE 55 ! #define F_DOMMASTER 56 ! #define F_REMANNOUNCE 57 ! #define F_LOADPRINTERS 58 ! #define F_MSGCOMMAND 59 ! #define F_SYNCPASS 60 ! #define F_WORKGROUP 61 ! #define F_SERVERDESC 62 --- 17,77 ---- #define T_PRIVISAMBA 1 #define T_SERVICES 2 ! #define F_SHARENAME 3 ! #define T_SHARE 4 ! #define I_SHARE 5 ! #define H_SHARES 6 ! #define I_NEWSHARE 7 ! #define T_SHARES 8 ! #define I_SHARES 9 ! #define F_COMMENT 10 ! #define F_PUBLIC 11 ! #define F_WRITABLE 12 ! #define F_WRITELIST 13 ! #define M_DEFAULT 14 ! #define M_HOMES 15 ! #define M_PRINTERS 16 ! #define T_SAMBA 17 ! #define I_SAMBA 18 ! #define M_SHARES 19 ! #define F_PREEXEC 20 ! #define F_ROOTPREEXEC 21 ! #define F_POSTEXEC 22 ! #define F_ROOTPOSTEXEC 23 ! #define F_FORCEUSER 24 ! #define F_FORCEGROUP 25 ! #define F_BROWSEABLE 26 ! #define F_GUESTACCOUNT 27 ! #define F_ENGRYPTPASS 28 ! #define F_PATH 29 ! #define F_PASSSERVER 30 ! #define F_PASSLEVEL 31 ! #define F_PASSPROG 32 ! #define F_PREFMASTER 33 ! #define F_OSLEVEL 34 ! #define F_NULLPASSWORDS 35 ! #define F_ENABLE 36 ! #define F_INHERIT 37 ! #define F_GUESTONLY 38 ! #define F_ADMINUSERS 39 ! #define F_ALLOWHOSTS 40 ! #define F_DENYHOSTS 41 ! #define F_DONTDESCEND 42 ! #define F_GUESTACCOUNTSH 43 ! #define F_VALIDUSERS 44 ! #define F_IVLDUSERS 45 ! #define F_MAGICSCRIPT 46 ! #define F_MAGICOUTPUT 47 ! #define F_MAXCONNECT 48 ! #define F_USERLIST 49 ! #define F_READLIST 50 ! #define F_ONLYUSER 51 ! #define F_DEADTIME 52 ! #define F_DBGLEVEL 53 ! #define F_DEFSERVICE 54 ! #define F_DOMMASTER 55 ! #define F_REMANNOUNCE 56 ! #define F_LOADPRINTERS 57 ! #define F_MSGCOMMAND 58 ! #define F_SYNCPASS 59 ! #define F_WORKGROUP 60 ! #define F_SERVERDESC 61 diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/modules/samba/smbconf.cc linuxconf-1.13r15.1/modules/samba/smbconf.cc *** linuxconf-1.13r15/modules/samba/smbconf.cc Thu Jul 30 12:30:35 1998 --- linuxconf-1.13r15.1/modules/samba/smbconf.cc Mon Mar 8 20:47:44 1999 *************** *** 63,69 **** fputs (comment.get(),fout); if (val.is_empty()){ ! fprintf (fout,"%s\n",key.get()); }else{ ! fprintf (fout,"%s = %s\n",key.get(),val.get()); } } --- 63,69 ---- fputs (comment.get(),fout); if (val.is_empty()){ ! fprintf (fout," %s\n",key.get()); }else{ ! fprintf (fout," %s = %s\n",key.get(),val.get()); } } *************** *** 301,304 **** --- 301,337 ---- char buf[3000]; SSTRING comments; + /* #Specification: smb.conf / parsing + The [global] share is optional. Linuxconf assumes that + anything at the start of the /etc/smb.conf is part of the + global section. If the [global] section is reached, linuxconf + just continue over it. The [global] section will be written + back though, even if it was missing. + + Note that Linuxconf tries to cope with the following + sequences + + # + --------- + some comments + [global] + directives + --------- + + --------- + some comments + directive + [global] + directive + ------------- + + ---------------- + comments + directives + [other section] + ----------------- + + Linuxconf expects comments starting with # or ;. + */ + SMB_SHARE *global = NULL; SMB_ITEMS *ptitems = NULL; while (fgets_samba(buf,sizeof(buf)-1,fin,comments)!=NULL){ *************** *** 309,319 **** if (end != NULL) *end = '\0'; strip_end (pt); ! SMB_SHARE *share = new SMB_SHARE(comments.get(),pt); ! shares.add (share); ! ptitems = &share->items; ! }else if (ptitems == NULL){ ! xconf_error (MSG_U(E_SMBCONF,"Invalid smb.conf file")); ! break; }else{ ptitems->add (new SMB_ITEM(comments.get(),buf)); } --- 342,359 ---- if (end != NULL) *end = '\0'; strip_end (pt); ! if (strcmp(pt,"global")==0 && global != NULL){ ! ptitems = &global->items; ! }else{ ! SMB_SHARE *share = new SMB_SHARE(comments.get(),pt); ! shares.add (share); ! ptitems = &share->items; ! if (strcmp(pt,"global")==0) global = share; ! } }else{ + if (ptitems == NULL){ + global = new SMB_SHARE("","global"); + shares.add (global); + ptitems = &global->items; + } ptitems->add (new SMB_ITEM(comments.get(),buf)); } diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/netconf/daemon1.cc linuxconf-1.13r15.1/netconf/daemon1.cc *** linuxconf-1.13r15/netconf/daemon1.cc Wed Oct 7 01:14:45 1998 --- linuxconf-1.13r15.1/netconf/daemon1.cc Mon Mar 8 21:58:20 1999 *************** *** 280,291 **** qsort (tb,nb,sizeof(DAEMON*),daemon_cmp); DIALOG_RECORDS dia; ! dia.newf_head ("",MSG_U(H_DAEMONS,"Mod.\tName\tPath")); for (int i=0; igetname(),dae->getpath()); ! dia.new_menuitem ( ! dae->is_overriden() || !dae->is_managed() ? "*" : "" ! ,buf); } MENU_STATUS code = dia.editmenu ( --- 280,290 ---- qsort (tb,nb,sizeof(DAEMON*),daemon_cmp); DIALOG_RECORDS dia; ! dia.newf_head ("",MSG_U(H_DAEMONS,"Name\tPath\tMod.")); for (int i=0; igetpath() ! ,dae->is_overriden() || !dae->is_managed() ? "*" : ""); ! dia.new_menuitem (dae->getname(),buf); } MENU_STATUS code = dia.editmenu ( diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/rules.mak linuxconf-1.13r15.1/rules.mak *** linuxconf-1.13r15/rules.mak Sat Mar 6 23:53:59 1999 --- linuxconf-1.13r15.1/rules.mak Sun Mar 7 14:08:38 1999 *************** *** 12,16 **** LINUXCONF_REV=1.13 LINUXCONF_SUBREV=15 ! LINUXCONF_SUBSUBREV=0 ifeq ($(LINUXCONF_SUBSUBREV),0) ifeq ($(LINUXCONF_SUBREV),0) --- 12,16 ---- LINUXCONF_REV=1.13 LINUXCONF_SUBREV=15 ! LINUXCONF_SUBSUBREV=1 ifeq ($(LINUXCONF_SUBSUBREV),0) ifeq ($(LINUXCONF_SUBREV),0) diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/userconf/user.cc linuxconf-1.13r15.1/userconf/user.cc *** linuxconf-1.13r15/userconf/user.cc Sat Jan 30 22:55:08 1999 --- linuxconf-1.13r15.1/userconf/user.cc Mon Mar 8 21:40:04 1999 *************** *** 1004,1007 **** --- 1004,1019 ---- } { + /* #Specification: updating password / module messages + The module message API is used when a user password is + changed. The message "chgpasswd" is sent with the following + arguments: + + # + user id + new password (clear text) + locked account (1 for lock, 0 for unlock) + domain (/ for the main, a domain name for virtual email domain) + # + */ const char *tb[]={ getname(),newp,(is_lock ? "1" : "0"),domain diff -rc2P -x *.o -x *.a -x *.bak -x *~ -x *.help -x *.old -x *.nap -x *.nar -x *.nas -x *.gif -x *.class linuxconf-1.13r15/vpop3d/vdeliver.cc linuxconf-1.13r15.1/vpop3d/vdeliver.cc *** linuxconf-1.13r15/vpop3d/vdeliver.cc Fri Feb 12 10:06:37 1999 --- linuxconf-1.13r15.1/vpop3d/vdeliver.cc Mon Mar 8 21:11:46 1999 *************** *** 18,21 **** --- 18,25 ---- #include "../paths.h" + // Error code returned to sendmail + #define VERR_USER_UNKNOWN 67 + #define VERR_CANTCREAT 73 + static void vdeliver_checkdir(const char *dirpath) { *************** *** 51,54 **** --- 55,60 ---- char fallback[500]; struct SEEN_LOOKUP *seen; + long quota; + long mailsize; }; *************** *** 173,177 **** if (fallback[0] == '\0'){ syslog (LOG_INFO,"Unknown user: %s",user); ! ret = 67; }else if (fallback[0] == '@'){ char newdest[1000]; --- 179,183 ---- if (fallback[0] == '\0'){ syslog (LOG_INFO,"Unknown user: %s",user); ! ret = VERR_USER_UNKNOWN; }else if (fallback[0] == '@'){ char newdest[1000]; *************** *** 198,203 **** fout = vdeliver_openex (filepath,pwd); if (fout != NULL){ ! vdeliver_copy (fin,fout); ! ret = fclose (fout); }else{ syslog (LOG_ERR,"Can't open file %s (%m)",filepath); --- 204,223 ---- fout = vdeliver_openex (filepath,pwd); if (fout != NULL){ ! bool deliver = true; ! // Wait until we have the lock to check the quota ! if (ctx->quota > 0){ ! struct stat st; ! if (fstat(fileno(fout),&st)!=-1 ! && st.st_size+ctx->mailsize >= ctx->quota){ ! deliver = false; ! ret = VERR_CANTCREAT; ! } ! } ! if (deliver){ ! vdeliver_copy (fin,fout); ! ret = fclose (fout); ! }else{ ! fclose (fout); ! } }else{ syslog (LOG_ERR,"Can't open file %s (%m)",filepath); *************** *** 229,233 **** dest = str_skip(dest); if (dest[0] == '|'){ - #if 1 int pid; signal (SIGCHLD,fctsig); --- 249,252 ---- *************** *** 250,262 **** ret |= status; } - #else - FILE * out; - dest = str_skip (dest+1); - out = popen (dest,"w"); - if (out != NULL){ - vdeliver_copy (mailin,out); - pclose (out); - } - #endif }else if (strncmp(dest,":include:",9)==0){ FILE *list; --- 269,272 ---- *************** *** 414,418 **** /* ! Open all possible aliases files for a domain */ static void vdeliver_openaliases( --- 424,429 ---- /* ! Open all possible aliases files for a domain and initialise the ! VDEV_CTX structure. */ static void vdeliver_openaliases( *************** *** 422,439 **** // Aliases file are optionnal, so we open the file and do not // care if it succeed - FILE *fin; char fname[PATH_MAX]; ctx->fallback[0] = '\0'; ctx->faliases[0] = ctx->faliases[1] = ctx->faliases[2] = NULL; sprintf (fname,"%s/aliases.%s",ETC_VMAIL,domain); ctx->faliases[0] = fopen (fname,"r"); ! fin = fopen (ETC_CONF_LINUXCONF,"r"); if (fin != NULL){ // Looks for alternate alias file, up to 2 per domains // so a domain may have 3 aliases files ! char key[200],keyf[200],buf[1000]; int noalias = 1; ! sprintf (key,"vdomain_alias.%s",domain); ! sprintf (keyf,"vdomain_fallback.%s",domain); while (fgets(buf,sizeof(buf)-1,fin)!=NULL){ char v1[1000],v2[1000]; --- 433,451 ---- // Aliases file are optionnal, so we open the file and do not // care if it succeed char fname[PATH_MAX]; ctx->fallback[0] = '\0'; ctx->faliases[0] = ctx->faliases[1] = ctx->faliases[2] = NULL; + ctx->quota = 0; sprintf (fname,"%s/aliases.%s",ETC_VMAIL,domain); ctx->faliases[0] = fopen (fname,"r"); ! FILE *fin = fopen (ETC_CONF_LINUXCONF,"r"); if (fin != NULL){ // Looks for alternate alias file, up to 2 per domains // so a domain may have 3 aliases files ! char key[200],keyf[200],keyquota[200],buf[1000]; int noalias = 1; ! snprintf (key,sizeof(key)-1,"vdomain_alias.%s",domain); ! snprintf (keyf,sizeof(keyf)-1,"vdomain_fallback.%s",domain); ! snprintf (keyquota,sizeof(keyquota)-1,"vdomain_quota.%s",domain); while (fgets(buf,sizeof(buf)-1,fin)!=NULL){ char v1[1000],v2[1000]; *************** *** 445,448 **** --- 457,462 ---- ctx->faliases[noalias++] = fopen (v2,"r"); } + }else if (strcmp(keyquota,v1)==0){ + ctx->quota = atoi(v2)*1024l; } } *************** *** 500,503 **** --- 514,518 ---- vdeliver_alias2domain (aliasdomain,domain); vdeliver_copy (stdin,fout); + ctx.mailsize = ftell(fout); fclose (fout); fout = fopen (tmpfile,"r");