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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.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/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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.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/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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.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/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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.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/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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.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/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
--- 1,8 ----
! Configurador Linux 1.13r15.1
! Configurador Linux 1.13r15.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/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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.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/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,8 ----
! Linuxconf 1.13r15.1
! Linuxconf 1.13r15.1
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");