*** 1.33r5/linuxconf/rules.mak Fri Sep 10 13:48:40 2004
--- 1.33r5/linuxconf/rules.mak Mon Nov 15 11:01:30 2004
***************
*** 27,33 ****
endif
CC=gcc
LINUXCONF_REV=1.34
! LINUXCONF_SUBREV=0
LINUXCONF_SUBSUBREV=0
# liblinuxconf revision
LIB_REV=1
--- 27,33 ----
endif
CC=gcc
LINUXCONF_REV=1.34
! LINUXCONF_SUBREV=2
LINUXCONF_SUBSUBREV=0
# liblinuxconf revision
LIB_REV=1
***************
*** 55,60 ****
--- 55,64 ----
WWWBASE=$(HOME)/n/dnshtml
WWWTECHBASE=$(WWWBASE)/linuxconf/tech
+
+ USRX11LIB = $(shell test -d /usr/X11R6/lib64 && echo /usr/X11R6/lib64 || echo /usr/X11R6/lib)
+
+
SPEC_FILE = $(shell $(GCC) -v 2>&1 | head -1 | sed 's/^.* //')
LD_FILE = $(notdir $(shell cat $(SPEC_FILE) | sed -n -e '/:-dynamic-linker/s/^.*:-dynamic-linker \([^}]*\).*/\1/p'))
ifeq ($(LD_FILE),%(elf_dynamic_linker))
*** 1.33r5/linuxconf/dialog/textarea.cc Tue Aug 10 17:30:21 2004
--- 1.33r5/linuxconf/dialog/textarea.cc Thu Nov 11 15:46:25 2004
***************
*** 527,537 ****
while (*pt != '\0'){
char line[1000];
char *dst = line;
! while (*pt != '\n' && *pt != '\0'
&& (unsigned)(dst-line)Operate only on groups
Instead of limiting the scope of the deletion process (explained above)
! to group above a certain threshold, you can enumerate the group
on which the process must operate. Any user account not member of those
! groups won't be deleted, even if it is not part of the data file.
--- 87,113 ----
Operate only on groups
Instead of limiting the scope of the deletion process (explained above)
! to group above a certain threshold, you can enumerate the groups
on which the process must operate. Any user account not member of those
! groups won't be deleted/disabled, even if it is not part of the data file.
! You can specify a single star (*) as well. This means the module
! is authoritative on all groups found in the input file.
!
! Authorization command
!
! When attempting to delete or disable accounts, accountbatch may
! run a command operating as a filter. The command reads a list
! of account proposed for deletion on its standard input and
! produces a result list on its standard output. The result
! simply confirm which accounts may be deleted.
! In general, you write a shell to protect some special accounts
! not created by accountbatch (not part of the input file).
!
! Log file
!
! Accountbatch produces extensive statistics about the account it
! created, updated, disabled or deleted. If you specify a log file, all
! the reports will be copied silently (appended) to that file.
***************
*** 109,114 ****
--- 127,133 ----
Shell
Password
Home directory>
+ Alt. groups
***************
*** 190,195 ****
--- 209,219 ----
Any Linux account not found in the data file, member of one of the specified
group, or with a group id above a given threshold will be deleted.
+ Disable old accounts
+
+ Instead of deleting accounts, the module may disable them. You must
+ use Delete or Disable, not both.
+
Deletion mode
You may want to preserve the data owned by the account you are deleting.
*** 1.33r5/linuxconf/help.files/sources/accountbatch/batch.help Tue Sep 2 18:09:10 2003
--- 1.33r5/linuxconf/help.files/sources/accountbatch/batch.help Tue Sep 14 16:17:49 2004
***************
*** 120,129 ****
[1m3.2.4. Operate only on groups[0m
Instead of limiting the scope of the deletion process (explained
! above) to group above a certain threshold, you can enumerate the group
! on which the process must operate. Any user account not member of
! those groups won't be deleted, even if it is not part of the data
! file.
[1m3.3. Parsing[0m
--- 120,152 ----
[1m3.2.4. Operate only on groups[0m
Instead of limiting the scope of the deletion process (explained
! above) to group above a certain threshold, you can enumerate the
! groups on which the process must operate. Any user account not member
! of those groups won't be deleted/disabled, even if it is not part of
! the data file.
!
! You can specify a single star (*) as well. This means the module is
! authoritative on all groups found in the input file.
!
!
!
! [1m3.2.5. Authorization command[0m
!
! When attempting to delete or disable accounts, accountbatch may run a
! command operating as a filter. The command reads a list of account
! proposed for deletion on its standard input and produces a result list
! on its standard output. The result simply confirm which accounts may
! be deleted.
!
! In general, you write a shell to protect some special accounts not
! created by accountbatch (not part of the input file).
!
!
! [1m3.2.6. Log file[0m
!
! Accountbatch produces extensive statistics about the account it
! created, updated, disabled or deleted. If you specify a log file, all
! the reports will be copied silently (appended) to that file.
[1m3.3. Parsing[0m
***************
*** 149,154 ****
--- 172,179 ----
+o Home directory>
+ +o Alt. groups
+
For every field, there is two input in the parsing section. The first
is a list box where you can select the following
***************
*** 234,240 ****
deleted.
! [1m3.4.4. Deletion mode[0m
You may want to preserve the data owned by the account you are
deleting. Or you may want to delete it or archive it. You can select
--- 259,271 ----
deleted.
! [1m3.4.4. Disable old accounts[0m
!
! Instead of deleting accounts, the module may disable them. You must
! use Delete or Disable, not both.
!
!
! [1m3.4.5. Deletion mode[0m
You may want to preserve the data owned by the account you are
deleting. Or you may want to delete it or archive it. You can select
*** 1.33r5/linuxconf/help.files/sources/accountbatch/batch.sgml Tue Sep 2 17:53:28 2003
--- 1.33r5/linuxconf/help.files/sources/accountbatch/batch.sgml Tue Sep 14 16:17:42 2004
***************
*** 115,123 ****
Operate only on groups
Instead of limiting the scope of the deletion process (explained above)
! to group above a certain threshold, you can enumerate the group
on which the process must operate. Any user account not member of those
! groups won't be deleted, even if it is not part of the data file.
Parsing
--- 115,143 ----
Operate only on groups
Instead of limiting the scope of the deletion process (explained above)
! to group above a certain threshold, you can enumerate the groups
on which the process must operate. Any user account not member of those
! groups won't be deleted/disabled, even if it is not part of the data file.
!
! You can specify a single star (*) as well. This means the module
! is authoritative on all groups found in the input file.
!
! Authorization command
!
! When attempting to delete or disable accounts, accountbatch may
! run a command operating as a filter. The command reads a list
! of account proposed for deletion on its standard input and
! produces a result list on its standard output. The result
! simply confirm which accounts may be deleted.
!
! In general, you write a shell to protect some special accounts
! not created by accountbatch (not part of the input file).
!
! Log file
!
! Accountbatch produces extensive statistics about the account it
! created, updated, disabled or deleted. If you specify a log file, all
! the reports will be copied silently (appended) to that file.
Parsing
***************
*** 137,142 ****
--- 157,163 ----
- Shell
- Password
- Home directory>
+
- Alt. groups
***************
*** 213,218 ****
--- 234,244 ----
Any Linux account not found in the data file, member of one of the specified
group, or with a group id above a given threshold will be deleted.
+ Disable old accounts
+
+ Instead of deleting accounts, the module may disable them. You must
+ use Delete or Disable, not both.
+
Deletion mode
You may want to preserve the data owned by the account you are deleting.
*** 1.33r5/linuxconf/main/linuxconf.cc Sat Feb 22 15:01:22 2003
--- 1.33r5/linuxconf/main/linuxconf.cc Wed Oct 13 17:59:09 2004
***************
*** 191,197 ****
}
return netconf_system_if ("loadkeys",km);
}
! #if defined(i386)
static const char keymap_arch[]="i386";
#elif defined(__sparc__)
static const char keymap_arch[]="sparc";
--- 191,197 ----
}
return netconf_system_if ("loadkeys",km);
}
! #if defined(i386) || defined (__x86_64__)
static const char keymap_arch[]="i386";
#elif defined(__sparc__)
static const char keymap_arch[]="sparc";
*** 1.33r5/linuxconf/messages/sources/dhcpd.dic Sat Feb 3 15:52:11 2001
--- 1.33r5/linuxconf/messages/sources/dhcpd.dic Tue Nov 9 19:31:55 2004
***************
*** 154,156 ****
--- 154,158 ----
:E Invalid Network number %s for netmask %s\nt\t\tHint: %s
!E_IVLDNETHOSTIP
:E Invalid IP range %s for network %s
+ !F_FILENAME
+ :E Boot file
*** 1.33r5/linuxconf/messages/sources/mailconf.dic Tue Jun 8 17:50:46 2004
--- 1.33r5/linuxconf/messages/sources/mailconf.dic Tue Sep 28 17:42:33 2004
***************
*** 856,858 ****
--- 856,862 ----
:E Yes
!I_NO
:E No
+ !F_DOUBLEBOUNCE
+ :E Double bounce dest.
+ !I_DEVNULL
+ :E to /dev/null
*** 1.33r5/linuxconf/messages/sources/accountbatch.dic Thu Sep 9 21:05:29 2004
--- 1.33r5/linuxconf/messages/sources/accountbatch.dic Tue Sep 14 16:18:56 2004
***************
*** 217,223 ****
!I_STAR
:E authoritative on all groups in file
!F_CHKCMD
! :E Autorisation command
!E_ALTGR
:E Line %d: %s\n
!E_SOMEERROR
--- 217,223 ----
!I_STAR
:E authoritative on all groups in file
!F_CHKCMD
! :E Authorization command
!E_ALTGR
:E Line %d: %s\n
!E_SOMEERROR
*** 1.33r5/linuxconf/messages/sources/tcptool.dic Thu Sep 28 23:50:36 2000
--- 1.33r5/linuxconf/messages/sources/tcptool.dic Fri Oct 29 10:08:14 2004
***************
*** 55,57 ****
--- 55,61 ----
:E RECEIVED:
!F_COMMENT
:E Comment
+ !I_PRINTFDS
+ :E Print file handle and sockets for processes\n
+ !I_PID
+ :E Process ID
*** 1.33r5/linuxconf/misc/sstring.cc Thu Sep 9 20:43:30 2004
--- 1.33r5/linuxconf/misc/sstring.cc Sat Nov 13 21:44:27 2004
***************
*** 251,257 ****
{
char *one = str;
if (one == NULL) one = "";
! return stricmp(one,other);
}
/*
--- 251,257 ----
{
char *one = str;
if (one == NULL) one = "";
! return strcasecmp(one,other);
}
/*
***************
*** 261,266 ****
--- 261,283 ----
{
return icmp(other.get());
}
+ /*
+ Perform a strnicmp on the string and the other one.
+ */
+ PUBLIC int SSTRING::nicmp (const char *other, int len) const
+ {
+ char *one = str;
+ if (one == NULL) one = "";
+ return strncasecmp(one,other,len);
+ }
+
+ /*
+ Perform a stricmp on the string and the other one.
+ */
+ PUBLIC int SSTRING::nicmp (const SSTRING &other, int len) const
+ {
+ return nicmp(other.get(),len);
+ }
/*
Find the occurence of a character in the string.
***************
*** 418,423 ****
--- 435,468 ----
}
/*
+ Change one character in the string.
+ The pointer must point inside the string.
+ The string won't be enlarged.
+
+ Return false if the operation was not performed.
+ */
+ PUBLIC bool SSTRING::setchar(const char *pt, const char car)
+ {
+ bool ret = false;
+ if (pt >= str && pt < str + getlen()){
+ *(char*)pt = car;
+ ret = true;
+ }
+ return ret;
+ }
+ /*
+ Change one character in the string.
+ The position (starting at 0) must point inside the string.
+ The string won't be enlarged.
+
+ Return false if the operation was not performed.
+ */
+ PUBLIC bool SSTRING::setchar(int pos, const char car)
+ {
+ return setchar (str+pos,car);
+ }
+
+ /*
Record the comment part of the CSSTRING
*/
PUBLIC void CSSTRING::setcomment(const SSTRING &com)
*** 1.33r5/linuxconf/misc/sstring.h Thu Sep 9 20:43:37 2004
--- 1.33r5/linuxconf/misc/sstring.h Sat Nov 13 21:44:10 2004
***************
*** 44,49 ****
--- 44,51 ----
bool is_num (void)const;
int ncmp (const SSTRING&other, int len)const;
int ncmp (const char *other, int len)const;
+ int nicmp (const SSTRING&other, int len)const;
+ int nicmp (const char *other, int len)const;
bool operator != (const SSTRING&other)const;
bool operator != (const char *other)const;
SSTRING&operator += (const SSTRING&_str);
***************
*** 52,57 ****
--- 54,61 ----
SSTRING&operator = (const char *_str);
bool operator == (const SSTRING&other)const;
bool operator == (const char *other)const;
+ bool setchar (const char *pt, const char car);
+ bool setchar (int pos, const char car);
void setempty (void);
void setfrom (const SSTRING *src);
void setfrom (const SSTRING&src);
*** 1.33r5/linuxconf/misc/misc.p Thu Sep 9 20:43:37 2004
--- 1.33r5/linuxconf/misc/misc.p Sat Nov 13 21:44:10 2004
***************
*** 346,352 ****
int popen_getloginuid (void);
/* samples.cc 06/04/2001 22.46.22 */
/* sstream.cc 26/11/2000 22.48.04 */
! /* sstring.cc 09/09/2004 20.43.30 */
/* sstrings.cc 25/08/2003 11.56.46 */
/* str1.cc 30/04/2002 22.06.38 */
int str_strip (const char *str, char *newstr);
--- 346,352 ----
int popen_getloginuid (void);
/* samples.cc 06/04/2001 22.46.22 */
/* sstream.cc 26/11/2000 22.48.04 */
! /* sstring.cc 13/11/2004 21.43.58 */
/* sstrings.cc 25/08/2003 11.56.46 */
/* str1.cc 30/04/2002 22.06.38 */
int str_strip (const char *str, char *newstr);
*** 1.33r5/linuxconf/misc/misc.pm Thu Sep 9 20:43:37 2004
--- 1.33r5/linuxconf/misc/misc.pm Sat Nov 13 21:44:10 2004
***************
*** 583,589 ****
PUBLIC void SSTREAM_NUL::puts (const char *);
PUBLIC char *SSTREAM_NUL::gets (char *, int);
PUBLIC long SSTREAM_NUL::getoffset (void);
! /* sstring.cc 09/09/2004 20.43.30 */
PUBLIC SSTRING::SSTRING (void);
PUBLIC SSTRING::SSTRING (const char *_str);
PUBLIC SSTRING::SSTRING (const char *_str, int _maxsiz);
--- 583,589 ----
PUBLIC void SSTREAM_NUL::puts (const char *);
PUBLIC char *SSTREAM_NUL::gets (char *, int);
PUBLIC long SSTREAM_NUL::getoffset (void);
! /* sstring.cc 13/11/2004 21.43.58 */
PUBLIC SSTRING::SSTRING (void);
PUBLIC SSTRING::SSTRING (const char *_str);
PUBLIC SSTRING::SSTRING (const char *_str, int _maxsiz);
***************
*** 618,623 ****
--- 618,625 ----
PUBLIC int SSTRING::ncmp (const SSTRING&other, int len)const;
PUBLIC int SSTRING::icmp (const char *other)const;
PUBLIC int SSTRING::icmp (const SSTRING&other)const;
+ PUBLIC int SSTRING::nicmp (const char *other, int len)const;
+ PUBLIC int SSTRING::nicmp (const SSTRING&other, int len)const;
PUBLIC const char *SSTRING::strchr (char carac)const;
PUBLIC const char *SSTRING::strrchr (char carac)const;
PUBLIC const char *SSTRING::strstr (const char *sub)const;
***************
*** 636,641 ****
--- 638,645 ----
PUBLIC char *SSTRING::copyword (const char *line);
PUBLIC bool SSTRING::truncate (int newlen);
PUBLIC bool SSTRING::truncate (const char *pt);
+ PUBLIC bool SSTRING::setchar (const char *pt, const char car);
+ PUBLIC bool SSTRING::setchar (int pos, const char car);
PUBLIC void CSSTRING::setcomment (const SSTRING&com);
PUBLIC void CSSTRING::setfrom_c (const SSTRING&val,
const SSTRING&com);
*** 1.33r5/linuxconf/modules/dhcpd/dhcpd.h Mon Sep 30 11:14:21 2002
--- 1.33r5/linuxconf/modules/dhcpd/dhcpd.h Tue Nov 9 16:38:49 2004
***************
*** 106,111 ****
--- 106,113 ----
TIMESTR default_lease_time;
TIMESTR max_lease_time;
DHCP_RANGES ranges;
+ SSTRING filename;
+ SSTRING next_server;
/*~PROTOBEG~ DHCP_SUBNET */
public:
DHCP_SUBNET (void);
*** 1.33r5/linuxconf/modules/dhcpd/dhcpedit.cc Wed May 14 15:01:19 2003
--- 1.33r5/linuxconf/modules/dhcpd/dhcpedit.cc Tue Nov 9 19:31:51 2004
***************
*** 216,221 ****
--- 216,227 ----
if (max_lease_time.seconds != 0){
fprintf (fout,"\tmax-lease-time %ld;\n",max_lease_time.seconds);
}
+ if (filename.is_filled()){
+ fprintf (fout,"\tfilename \"%s\";\n",filename.get());
+ }
+ if (next_server.is_filled()){
+ fprintf (fout,"\tnext-server \"%s\";\n",next_server.get());
+ }
options.write ("\t",fout);
fputs ("}\n",fout);
}
***************
*** 590,595 ****
--- 596,605 ----
ret = dhcp_readval (par,default_lease_time);
}else if (strcmp(word,"max-lease-time")==0){
ret = dhcp_readval (par,max_lease_time);
+ }else if (strcmp(word,"filename")==0){
+ ret = dhcp_readval (par,filename);
+ }else if (strcmp(word,"next-server")==0){
+ ret = dhcp_readval (par,next_server);
}
}
return ret;
***************
*** 853,858 ****
--- 863,869 ----
dia.last_noempty();
dia.newf_str (MSG_U(F_DEFLEASETIME,"Default lease time"),default_lease_time);
dia.newf_str (MSG_U(F_MAXLEASETIME,"Max lease time"),max_lease_time);
+ dia.newf_str (MSG_U(F_FILENAME,"Boot file"),filename);
dia.newf_title (MSG_U(T_RANGES,"Ranges"),1,"",MSG_R(T_RANGES));
int field_range = dia.getnb();
ranges.add (new DHCP_RANGE);
*** 1.33r5/linuxconf/modules/dhcpd/dhcpd.m Tue Jan 23 00:31:57 2001
--- 1.33r5/linuxconf/modules/dhcpd/dhcpd.m Tue Nov 9 19:31:55 2004
***************
*** 2,8 ****
#ifndef DICTIONARY_REQUEST
#define DICTIONARY_REQUEST \
const char **_dictionary_dhcpd;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_dhcpd("dhcpd",_dictionary_dhcpd,66,0);\
void dummy_dict_dhcpd(){}
#endif
#ifndef MSG_U
--- 2,8 ----
#ifndef DICTIONARY_REQUEST
#define DICTIONARY_REQUEST \
const char **_dictionary_dhcpd;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_dhcpd("dhcpd",_dictionary_dhcpd,67,0);\
void dummy_dict_dhcpd(){}
#endif
#ifndef MSG_U
***************
*** 79,81 ****
--- 79,82 ----
#define I_CREATELEASE 63
#define E_IVLDNETWORKIP 64
#define E_IVLDNETHOSTIP 65
+ #define F_FILENAME 66
*** 1.33r5/linuxconf/modules/mailconf/basic.cc Mon Dec 30 15:52:31 2002
--- 1.33r5/linuxconf/modules/mailconf/basic.cc Tue Sep 28 17:54:11 2004
***************
*** 62,68 ****
,"Builds server aliases from net interfaces"));
dia.newf_str (MSG_U(F_LISTENPORT,"Listen on TCP port"),listen.port);
dia.newf_str (MSG_U(F_LISTENADDR,"Listen on TCP address"),listen.addr);
!
dia.newf_title (MSG_U(T_SMTPFEATURES,"SMTP features"),1,"",MSG_R(T_SMTPFEATURES));
dia.newf_chk ("",features.verify,MSG_U(F_VERIFY,"Enable the VERIFY SMTP command"));
--- 62,79 ----
,"Builds server aliases from net interfaces"));
dia.newf_str (MSG_U(F_LISTENPORT,"Listen on TCP port"),listen.port);
dia.newf_str (MSG_U(F_LISTENADDR,"Listen on TCP address"),listen.addr);
! {
! static int tb[]={0,1,2};
! static const char *tbv[]={
! MSG_R(I_DISABLED),
! MSG_U(I_DEVNULL,"to /dev/null"),
! NULL
! };
! dia.newf_chkm_str (MSG_U(F_DOUBLEBOUNCE,"Double bounce dest.")
! ,features.doublebounce
! ,features.doublebouncedest
! ,tb,tbv);
! }
dia.newf_title (MSG_U(T_SMTPFEATURES,"SMTP features"),1,"",MSG_R(T_SMTPFEATURES));
dia.newf_chk ("",features.verify,MSG_U(F_VERIFY,"Enable the VERIFY SMTP command"));
*** 1.33r5/linuxconf/modules/mailconf/confread.cc Thu Mar 18 14:38:29 2004
--- 1.33r5/linuxconf/modules/mailconf/confread.cc Tue Sep 28 17:37:18 2004
***************
*** 87,92 ****
--- 87,95 ----
static const char K_MILTER[]="milter";
static const char K_MILTERPORT[]="milterport";
static const char K_MILTERFLAGS[]="milterflags";
+ static const char K_DOUBLEBOUNCE[]="doublebounce";
+ static const char K_DOUBLEBOUNCEDEST[]="doublebouncedest";
+
/*
Return the database format for makemap
*/
***************
*** 124,129 ****
--- 127,134 ----
features.authwarnings = confread_getval(AUTHWARNINGS,1);
features.queuewarn.setfrom(confread_getval(QUEUEWARN,"4h"));
features.queuereturn.setfrom(confread_getval(QUEUERETURN,"5d"));
+ features.doublebounce = confread_getval(K_DOUBLEBOUNCE,0);
+ features.doublebouncedest.setfrom (confread_getval(K_DOUBLEBOUNCEDEST,""));
users.dontmasque.setfrom (confread_getval(DONTMASQUE,"root"));
users.deliverlocal.setfrom (confread_getval(DELIVERLOCAL,"root"));
***************
*** 312,317 ****
--- 317,324 ----
confread_replace (AUTHWARNINGS,features.authwarnings);
confread_replace (QUEUEWARN,features.queuewarn);
confread_replace (QUEUERETURN,features.queuereturn);
+ confread_replace (K_DOUBLEBOUNCE,features.doublebounce);
+ confread_replace (K_DOUBLEBOUNCEDEST,features.doublebouncedest);
confread_replace (LISTENPORT,listen.port);
confread_replace (LISTENADDR,listen.addr);
*** 1.33r5/linuxconf/modules/mailconf/internal.h Tue Jun 8 14:28:38 2004
--- 1.33r5/linuxconf/modules/mailconf/internal.h Tue Sep 28 17:34:19 2004
***************
*** 377,382 ****
--- 377,384 ----
char probeinterface;
SSTRING queuewarn;
SSTRING queuereturn;
+ int doublebounce;
+ SSTRING doublebouncedest;
} features;
SSTRINGS dnsfor; // Use the DNS only for those domains
// See the large comment about
*** 1.33r5/linuxconf/modules/mailconf/mailconf.m Tue Jun 8 17:50:46 2004
--- 1.33r5/linuxconf/modules/mailconf/mailconf.m Tue Sep 28 17:42:33 2004
***************
*** 2,8 ****
#ifndef DICTIONARY_REQUEST
#define DICTIONARY_REQUEST \
const char **_dictionary_mailconf;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_mailconf("mailconf",_dictionary_mailconf,385,24);\
void dummy_dict_mailconf(){}
#endif
#ifndef MSG_U
--- 2,8 ----
#ifndef DICTIONARY_REQUEST
#define DICTIONARY_REQUEST \
const char **_dictionary_mailconf;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_mailconf("mailconf",_dictionary_mailconf,387,24);\
void dummy_dict_mailconf(){}
#endif
#ifndef MSG_U
***************
*** 398,400 ****
--- 398,402 ----
#define F_PRIORITY 382
#define I_YES 383
#define I_NO 384
+ #define F_DOUBLEBOUNCE 385
+ #define I_DEVNULL 386
*** 1.33r5/linuxconf/modules/mailconf/generate.cc Tue Jun 22 08:35:39 2004
--- 1.33r5/linuxconf/modules/mailconf/generate.cc Tue Sep 28 17:41:31 2004
***************
*** 383,391 ****
"$(ETRN)","$(VERB)","$(MAILQ)","$(RUN)","$(RECEIPTS)","$(GOAWAY)",
"$(PROBEINTERFACE)","$(AUTHWARNINGS)",
"$(QUEUEWARN)","$(QUEUERETURN)",
! "$(PORT)","$(ADDR)"
};
! char userrepl[17][TOKEN_VALLEN];
strcpy (userrepl[0],"mail:mail");
if (strcmp(linuxconf_getdistdir(),"suse")==0){
strcpy (userrepl[0],"bin:bin");
--- 383,391 ----
"$(ETRN)","$(VERB)","$(MAILQ)","$(RUN)","$(RECEIPTS)","$(GOAWAY)",
"$(PROBEINTERFACE)","$(AUTHWARNINGS)",
"$(QUEUEWARN)","$(QUEUERETURN)",
! "$(PORT)","$(ADDR)","$(DOUBLE)","$(DOUBLEADDR)"
};
! char userrepl[19][TOKEN_VALLEN];
strcpy (userrepl[0],"mail:mail");
if (strcmp(linuxconf_getdistdir(),"suse")==0){
strcpy (userrepl[0],"bin:bin");
***************
*** 406,412 ****
strcpy (userrepl[14],features.queuereturn.get());
listen.port.copy (userrepl[15]);
listen.addr.copy (userrepl[16]);
! ret |= copyfile (f_stdoptions,out,usertoken,userrepl,17);
}
if (milters.size() > 0){
ret |= copyfile (f_milteroptions,out);
--- 406,424 ----
strcpy (userrepl[14],features.queuereturn.get());
listen.port.copy (userrepl[15]);
listen.addr.copy (userrepl[16]);
! if (features.doublebounce > 0){
! strcpy (userrepl[17],"");
! if (features.doublebounce == 1){
! strcpy (userrepl[18],"");
! }else{
! strcpy (userrepl[18],features.doublebouncedest.get());
! }
! }else{
! strcpy (userrepl[17],"#");
! strcpy (userrepl[18],"");
! }
!
! ret |= copyfile (f_stdoptions,out,usertoken,userrepl,19);
}
if (milters.size() > 0){
ret |= copyfile (f_milteroptions,out);
*** 1.33r5/linuxconf/modules/mailconf/conf/stdoptions.cf Mon Dec 30 15:42:05 2002
--- 1.33r5/linuxconf/modules/mailconf/conf/stdoptions.cf Tue Sep 28 16:56:10 2004
***************
*** 251,257 ****
#O UnsafeGroupWrites
# where do errors that occur when sending errors get sent?
! #O DoubleBounceAddress
# what user id do we assume for the majority of the processing?
#O RunAsUser=sendmail
--- 251,257 ----
#O UnsafeGroupWrites
# where do errors that occur when sending errors get sent?
! $(DOUBLE)O DoubleBounceAddress=$(DOUBLEADDR)
# what user id do we assume for the majority of the processing?
#O RunAsUser=sendmail
*** 1.33r5/linuxconf/modules/redhat/redhat.cc Wed Nov 12 13:03:54 2003
--- 1.33r5/linuxconf/modules/redhat/redhat.cc Tue Nov 9 11:51:39 2004
***************
*** 120,125 ****
--- 120,126 ----
{"dnsserver", "bind", MSG_U(I_BINDDESC,"Domain name server (DNS)"),0,1},
{"popserver", "imap", MSG_U(I_IMAPDESC,"POP-3 and IMAP mail servers"),700,2},
{"popserver", "imap", MSG_R(I_IMAPDESC),0,1},
+ {"dhcpserver", "dhcp", MSG_R(I_DHCPDESC),900,2},
{"dhcpserver", "dhcp-server", MSG_R(I_DHCPDESC),811,2},
{"dhcpserver", "dhcp", MSG_U(I_DHCPDESC,"Dynamic host configuration protocol server (DHCP)"),700,2},
{"dhcpserver", "dhcp", MSG_R(I_DHCPDESC),0,1},
*** 1.33r5/linuxconf/modules/accountbatch/accountbatch.tlcc Fri Sep 10 11:03:00 2004
--- 1.33r5/linuxconf/modules/accountbatch/accountbatch.tlcc Thu Oct 21 12:34:45 2004
***************
*** 36,41 ****
--- 36,48 ----
static const char K_FIELDPOS[]="fieldpos";
static const char K_FIELDDEFVAL[]="fielddefval";
static const char K_IDPREFIX[]="idprefix";
+ static const char K_UPDGECOS[]="updgecos";
+ static const char K_UPDGROUP[]="updgroup";
+ static const char K_UPDSHELL[]="updshell";
+ static const char K_UPDHOME[]="updhome";
+ static const char K_UPDPASSWD[]="updpasswd";
+ static const char K_UPDALTGR[]="updaltgr";
+ static const char K_UPDEXTRA[]="updextra";
MODULE_DEFINE_VERSION(accountbatch);
static const char *keymenu=NULL;
***************
*** 394,400 ****
SSTRING datafile; // Input file
SSTRING datacmd; // Input produced by this command
SSTRING groups; // Groups on which accountbatch is authoritative
! SSTRING autcmd; // Autorisation command. It filters out accounts
// accountbatch is now allowed to delete
SSTRING logfile; // Each time accountbatch perform action, a
// report is added there (there same you have
--- 401,407 ----
SSTRING datafile; // Input file
SSTRING datacmd; // Input produced by this command
SSTRING groups; // Groups on which accountbatch is authoritative
! SSTRING autcmd; // Authorization command. It filters out accounts
// accountbatch is now allowed to delete
SSTRING logfile; // Each time accountbatch perform action, a
// report is added there (there same you have
***************
*** 1000,1006 ****
}
! static void accountbatch_saveconfig(const char *config, ACCT_CONFIG &conf)
{
SSTRINGS tb;
linuxconf_getall (K_ACCOUNTBATCH,K_INDEX,tb,true);
--- 1007,1016 ----
}
! static void accountbatch_saveconfig(
! const char *config,
! ACCT_CONFIG &conf,
! ACCT_UPDATES &updates)
{
SSTRINGS tb;
linuxconf_getall (K_ACCOUNTBATCH,K_INDEX,tb,true);
***************
*** 1017,1027 ****
linuxconf_replace (key,K_LOGFILE,conf.logfile);
linuxconf_replace (key,K_IDPREFIX,conf.parse.idprefix);
for (int i=0; iaddopt (g->getname());
}
}
! dia.newf_str (MSG_U(F_CHKCMD,"Autorisation command"),conf.autcmd);
dia.newf_str (MSG_U(F_LOGFILE,"Log file"),conf.logfile);
dia.newf_title (MSG_U(I_PARSING,"Parsing"),1,"",MSG_R(I_PARSING));
--- 1158,1164 ----
comb->addopt (g->getname());
}
}
! dia.newf_str (MSG_U(F_CHKCMD,"Authorization command"),conf.autcmd);
dia.newf_str (MSG_U(F_LOGFILE,"Log file"),conf.logfile);
dia.newf_title (MSG_U(I_PARSING,"Parsing"),1,"",MSG_R(I_PARSING));
***************
*** 1189,1195 ****
dia.newf_title (MSG_U(I_UPDATES,"Updates"),1,"",MSG_R(I_UPDATES));
dia.auto_newline(true);
- ACCT_UPDATES updates;
dia.newf_chk (MSG_U(F_UPDATE,"Update"),updates.gecos,MSG_R(I_GECOS));
dia.newf_chk ("",updates.home,MSG_R(I_HOME));
dia.newf_chk ("",updates.group,MSG_R(I_GROUP));
--- 1237,1242 ----
***************
*** 1237,1243 ****
int no = 0;
if (pop.editmenu ("",no)==MENU_OK){
config.setfrom (tb.getitem(no)->get());
! accountbatch_loadconf (config.get(),conf);
dia.reload();
}
}
--- 1284,1290 ----
int no = 0;
if (pop.editmenu ("",no)==MENU_OK){
config.setfrom (tb.getitem(no)->get());
! accountbatch_loadconf (config.get(),conf,updates);
dia.reload();
}
}
***************
*** 1252,1258 ****
xconf_error (MSG_U(E_NOSPACE,"No space allowed in configuration name"));
nof = 0;
}else{
! accountbatch_saveconfig (config.get(),conf);
}
if (registry_mode) break;
}else if (code == MENU_USR2
--- 1299,1305 ----
xconf_error (MSG_U(E_NOSPACE,"No space allowed in configuration name"));
nof = 0;
}else{
! accountbatch_saveconfig (config.get(),conf,updates);
}
if (registry_mode) break;
}else if (code == MENU_USR2
***************
*** 1366,1372 ****
fprintf (stderr,MSG_R(E_MISSCONFIG),nextarg);
error = true;
}else{
! accountbatch_loadconf (nextarg,conf);
}
i++;
}else if (strcmp(arg,"--test")==0){
--- 1413,1419 ----
fprintf (stderr,MSG_R(E_MISSCONFIG),nextarg);
error = true;
}else{
! accountbatch_loadconf (nextarg,conf,updates);
}
i++;
}else if (strcmp(arg,"--test")==0){
*** 1.33r5/linuxconf/modules/tcptool/Makefile Thu Sep 28 23:35:26 2000
--- 1.33r5/linuxconf/modules/tcptool/Makefile Fri Oct 29 10:15:56 2004
***************
*** 2,9 ****
VERSION=1
CURDIR=tcptool
LOCAL_CLEAN=std_local_clean
! LOCAL_INSTALL=std_local_install
! all: $(CURDIR).so
OBJS = session.os tcptool.os _dict.os
include ../rules.mak
--- 2,9 ----
VERSION=1
CURDIR=tcptool
LOCAL_CLEAN=std_local_clean
! LOCAL_INSTALL=local_install
! all: $(CURDIR).so printfds
OBJS = session.os tcptool.os _dict.os
include ../rules.mak
***************
*** 12,16 ****
--- 12,23 ----
include ../stdmod.mak
+ printfds: printfds.o _dict.o
+ cctlcc printfds.o _dict.o -o printfds
+
+ local_install: std_local_install
+ mkdir -p $(USRBIN)
+ install -m 755 -s printfds $(USRBIN)/printfds
+
# Test program
*** 1.33r5/linuxconf/modules/tcptool/tcptool.m Thu Sep 28 23:50:36 2000
--- 1.33r5/linuxconf/modules/tcptool/tcptool.m Fri Oct 29 10:08:14 2004
***************
*** 2,8 ****
#ifndef DICTIONARY_REQUEST
#define DICTIONARY_REQUEST \
const char **_dictionary_tcptool;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_tcptool("tcptool",_dictionary_tcptool,27,0);\
void dummy_dict_tcptool(){}
#endif
#ifndef MSG_U
--- 2,8 ----
#ifndef DICTIONARY_REQUEST
#define DICTIONARY_REQUEST \
const char **_dictionary_tcptool;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_tcptool("tcptool",_dictionary_tcptool,29,0);\
void dummy_dict_tcptool(){}
#endif
#ifndef MSG_U
***************
*** 40,42 ****
--- 40,44 ----
#define E_ONLYGUI 24
#define I_RECEIVEDLINE 25
#define F_COMMENT 26
+ #define I_PRINTFDS 27
+ #define I_PID 28
*** 1.33r5/linuxconf/modules/tcptool/tcptool.tlcc Thu Apr 18 22:16:29 2002
--- 1.33r5/linuxconf/modules/tcptool/tcptool.tlcc Sat Nov 13 22:02:47 2004
***************
*** 22,28 ****
dia.settype (DIATYPE_POPUP);
dia.newf_str (MSG_U(F_HOST,"Host"),host);
dia.last_noempty();
! FIELD_COMBO *comb = dia.newf_combo (MSG_U(F_PORT,"Service"),port);
dia.last_noempty();
dia.newf_str (MSG_U(F_COMMENT,"Comment"),comment);
int nof = 0;
--- 22,28 ----
dia.settype (DIATYPE_POPUP);
dia.newf_str (MSG_U(F_HOST,"Host"),host);
dia.last_noempty();
! dia.newf_str (MSG_U(F_PORT,"Service"),port);
dia.last_noempty();
dia.newf_str (MSG_U(F_COMMENT,"Comment"),comment);
int nof = 0;
*** 1.33r5/linuxconf/modules/tcptool/printfds.tlcc
--- 1.33r5/linuxconf/modules/tcptool/printfds.tlcc Sat Nov 13 22:25:24 2004
***************
*** 0 ****
--- 1,195 ----
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include
+ #include "tcptool.m"
+ #include
+ #include