A good password is difficult to crack or guess. A password must be at least six
+ characters long. (Note that you can increase the required length and set other
+ parameters for users' passwords on the Users Accounts--Password & Account
+ Policies screen.) If you've chosen a good password, the longer it is, the more
+ difficult it is to crack. Only the first eight characters are meaningful unless
+ your system uses MD5 passwords. If MD5 passwords are enabled, your system will
+ accept passwords that are longer than eight characters.
+
Good passwords contain a combination of letters, numbers, and special
+ characters. It should use both upper case and lower case letters. Don't use
+ your username, your anniversary, your social security number, your dog's name,
+ your middle name or the word root. Don't use any variation of a word associated
+ with your account. Don't use a word that can be found in a dictionary;
+ dictionary words are easy to crack.
+
A simple technique for creating a password is to use the first letters from each
+ word of a phrase that is familiar to you (a line from a favorite song might be
+ appropriate). Insert a few numbers and/or special characters in place of
+ letters and you'll have a decent password.
+
First you'll need to type in the new password. Your system may run some simple
+ tests on the password. If it tests the password and determines that the
+ password may be easy to crack, you'll get a message stating that the system
+ thinks it is a bad password. If the system disapproves, you shouldn't use that
+ password.
+
You'll need to type in the password twice, to make sure that you didn't
+ accidentally include any typos when you typed it in the first time.
+
When you type in your password, linuxconf won't display your password on the
+ screen (you'll see a line of asterisks instead). This precaution is necessary
+ to prevent someone standing behind you from seeing your password.
+
+
+
+ Next
+ Previous
+ Contents
+
+
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.16r8/help.files/sources/redhat/passwd.sgml linuxconf-1.16r9/help.files/sources/redhat/passwd.sgml
*** linuxconf-1.16r8/help.files/sources/redhat/passwd.sgml Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/help.files/sources/redhat/passwd.sgml Thu Nov 25 22:10:20 1999
***************
*** 0 ****
--- 1,65 ----
+
+
+ Changing a Password
+ Carole Williams,
+ Good passwords are an essential part of system security.
+
+
+
+
+ What is a Good Password?
+
+
+ A good password is difficult to crack or guess. A password must be at least six
+ characters long. (Note that you can increase the required length and set other
+ parameters for users' passwords on the Users Accounts--Password & Account
+ Policies screen.) If you've chosen a good password, the longer it is, the more
+ difficult it is to crack. Only the first eight characters are meaningful unless
+ your system uses MD5 passwords. If MD5 passwords are enabled, your system will
+ accept passwords that are longer than eight characters.
+
+ Good passwords contain a combination of letters, numbers, and special
+ characters. It should use both upper case and lower case letters. Don't use
+ your username, your anniversary, your social security number, your dog's name,
+ your middle name or the word root. Don't use any variation of a word associated
+ with your account. Don't use a word that can be found in a dictionary;
+ dictionary words are easy to crack.
+
+ A simple technique for creating a password is to use the first letters from each
+ word of a phrase that is familiar to you (a line from a favorite song might be
+ appropriate). Insert a few numbers and/or special characters in place of
+ letters and you'll have a decent password.
+
+ Changing a Password
+
+
+ First you'll need to type in the new password. Your system may run some simple
+ tests on the password. If it tests the password and determines that the
+ password may be easy to crack, you'll get a message stating that the system
+ thinks it is a bad password. If the system disapproves, you shouldn't use that
+ password.
+
+ You'll need to type in the password twice, to make sure that you didn't
+ accidentally include any typos when you typed it in the first time.
+
+ When you type in your password, linuxconf won't display your password on the
+ screen (you'll see a line of asterisks instead). This precaution is necessary
+ to prevent someone standing behind you from seeing your password.
+
+
By default, new entries are active. Un-select "This entry is active" if you want
+ to suspend the running of a process. You could instead delete the task, but if
+ you're going to begin running it again in the future, deactivating it is more
+ convenient.
+
+
+ Next
+ Previous
+ Contents
+
+
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.16r8/help.files/sources/userconf/cron-2.html linuxconf-1.16r9/help.files/sources/userconf/cron-2.html
*** linuxconf-1.16r8/help.files/sources/userconf/cron-2.html Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/help.files/sources/userconf/cron-2.html Thu Nov 25 22:28:25 1999
***************
*** 0 ****
--- 1,31 ----
+
+
+
+
+ Scheduling Jobs for Automatic Execution: Setting a Command To Be Repeated
+
+
+
+
+
+ Next
+ Previous
+ Contents
+
+
Any valid command can be typed into the Command box. You may want to include
+ the complete path to the command, to be absolutely sure that the command is
+ found.
+
If the command is very long and complex, you can instead create a shell script
+ to run the command and then type the command to run the shell script into the
+ command box, like the following example:
+
sh name_of_your_script
+
+
+ Next
+ Previous
+ Contents
+
+
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.16r8/help.files/sources/userconf/cron-3.html linuxconf-1.16r9/help.files/sources/userconf/cron-3.html
*** linuxconf-1.16r8/help.files/sources/userconf/cron-3.html Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/help.files/sources/userconf/cron-3.html Thu Nov 25 22:28:25 1999
***************
*** 0 ****
--- 1,100 ----
+
+
+
+
+ Scheduling Jobs for Automatic Execution: Setting When the Command Should Run
+
+
+
+
+
+ Next
+ Previous
+ Contents
+
+
You need to specify exactly when you want the recurring command to run. The
+ cron daemon wakes up every minute and checks to see if a process is
+ scheduled. The process will only run when all of the fields are true (except for
+ the days of the month and days of the week fields).
+
The days of the month and days of the week fields both specify days for a
+ process to be run. If neither of the two fields are *, then processes will run
+ if either of the two fields or both are true. If one of the two fields is *,
+ then the process will run whenever the other field is true. If both fields are
+ *, then the process runs every day.
+
If you need to adjust system time forward (for example, during daylight savings
+ time), any jobs that were scheduled to run during the skipped time will not be
+ run. If time is adjusted backwards (again, daylight savings time is the
+ example), then a job may be processed twice.
+
If you're adding a recurring process to an already heavily loaded server, you
+ should be aware of when other processes are scheduled. Big jobs are best
+ scheduled for when the system is not heavily loaded. For most systems, this
+ would normally be at night, but it depends upon your system and your setup.
+
An asterisk (*) indicates that the process should run every time period (for
+ example, a * in the "Months" field indicates that the process should run every
+ month).
+
A hyphen (-) indicates that the job should be processed during a certain range
+ of time, including the endpoints. For example, 2-5 in the month field indicates
+ that the job will be processed in February, March, April and May.
+
Commas (,) should be used to separate specific entries for a time period. For
+ example, a 5,6,11 in the month field indicates that the job will be processed in
+ May, June and November. Commas can also separate ranges of numbers (for
+ example, 1-3,6-9 in the month field would mean January through March and June
+ through September).
+
A range of values, or an *, followed by a forward slash (/) and a number is used
+ to step through the range of values. So a 2-10/2 in the months field indicates
+ every other month from February through October (in other words: February,
+ April, June, August and October). A */5 in the day field would run on every
+ fifth day of the appropriate month(s): the 1st, the 6th, the 11th, and so on.
+
+
+
+
Months
January is 1, February is 2...December is 12. Alternatively, you
+ can use the first three letters of the month: jan, feb, mar, apr, may, jun, jul,
+ aug, sep, oct, nov and dec. Examples:
+
1-6 is every month from January through June, including January and June.
+
1,6,12 means January, June and December.
+
1-12/3 or */3 both mean every third month starting with January (in other words,
+ January, April, July, October).
+
1-12 or * means every month.
+
+
Days of the month
The days of the month are from 1 to 31 (remember that
+ some months may not have a 29th, 30th or 31st. So if you schedule a job to run
+ on the 31st of every month, it will not be run during certain months). Examples:
+
1,15,28 means the 1st, 15th and 28th of the month.
+
A 2-10 means the 2nd day through the 10th day of a month, including the 2nd and
+ 10th.
+
1-31 or * means every day of the month. If the days of the week field is also *,
+ the process will run every day. If 1-31 or * is in the days of the month field,
+ and a restricted value (something besides *) is in the days of the week field,
+ the job will run when the days of the week field is true.
+
+
Days of the week
Sunday is 0, Monday is 1, Tuesday is 2...Saturday is
+ 6. Alternatively, you can use the first three letters of the day: sun, mon, tue,
+ wed, thu, fri, sat. Examples:
+
2,4,6 means Tuesday, Thursday, and Saturday.
+
0-6 or * means every day of the week. If the days of the month field is also *,
+ the job will run every day. 0-6 or * plus a restricted value (something besides
+ *) in the days of the month field means that the job will only run when the days
+ of the month field is true.
+
+
Hours
The hours of the day run from 0 (midnight) to 23 (11
+ p.m.). Examples:
+
0,1,2 means the 0000 (midnight), 0100 (1 a.m.) and 0200 (2 a.m.) hours.
+
0-23/2 and */2 mean 0000, 0200, 0400...2200.
+
+
Minutes
The minutes in an hour run from 0 to 59. Examples:
+
0,30 means on the hour and at the half hour.
+
0-59/5 and */5 mean every five minutes during the hour, beginning at the hour
+ (so on the hour, at five minutes past, at ten minutes past...).
+
+ Months *
+ Days of the month *
+ Days of the week *
+ Hours 0
+ Minutes 5
+
+
+
+
This setup would run a process every day, at five minutes past midnight.
+
+
+
+ Months *
+ Days of the month *
+ Days of the week 0,3,6
+ Hours 2
+ Minutes 10
+
+
+
+
This setup would run a process on every Sunday, Wednesday,
+ and Saturday, at 2:10 a.m.
+
+
+
+ Months *
+ Days of the month 1,15,31
+ Days of the week 2
+ Hours 1
+ Minutes 10
+
+
+
+
This setup would run a process during every month, on the 1st, 15th and 31st,
+ and on every Tuesday, at 1:10 a.m. Obviously, you'll probably never need to
+ schedule a job like this, but the example illustrates how the days of the month
+ and days of the week fields are combined, if neither field is *.
+
+
+ You can set up processes to run repeatedly, at specific times, without any human
+ intervention needed. Examples of such processes may be logfile analyzers,
+ network or security monitoring tools, filesystem maintenance jobs, and others.
+ To save you from having to run these jobs manually, the cron daemon can be set
+ to automatically run these types of processes at times you specify. Each
+ process will run as the user associated with the task.
+
+
+
+
+ Next
+ Previous
+ Contents
+
+
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.16r8/help.files/sources/userconf/cron.sgml linuxconf-1.16r9/help.files/sources/userconf/cron.sgml
*** linuxconf-1.16r8/help.files/sources/userconf/cron.sgml Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/help.files/sources/userconf/cron.sgml Thu Nov 25 22:28:14 1999
***************
*** 0 ****
--- 1,184 ----
+
+
+ Scheduling Jobs for Automatic Execution
+ Carole Williams,
+ You can set up processes to run repeatedly, at specific times, without any human
+ intervention needed. Examples of such processes may be logfile analyzers,
+ network or security monitoring tools, filesystem maintenance jobs, and others.
+ To save you from having to run these jobs manually, the cron daemon can be set
+ to automatically run these types of processes at times you specify. Each
+ process will run as the user associated with the task.
+
+
+
+
+ Activating or Deactivating the Entry
+
+
+ By default, new entries are active. Un-select "This entry is active" if you want
+ to suspend the running of a process. You could instead delete the task, but if
+ you're going to begin running it again in the future, deactivating it is more
+ convenient.
+
+ Setting a Command To Be Repeated
+
+
+ Any valid command can be typed into the Command box. You may want to include
+ the complete path to the command, to be absolutely sure that the command is
+ found.
+
+ If the command is very long and complex, you can instead create a shell script
+ to run the command and then type the command to run the shell script into the
+ command box, like the following example:
+
+ sh name_of_your_script
+
+ Setting When the Command Should Run
+
+
+ You need to specify exactly when you want the recurring command to run. The
+ cron daemon wakes up every minute and checks to see if a process is
+ scheduled. The process will only run when all of the fields are true (except for
+ the days of the month and days of the week fields).
+
+ The days of the month and days of the week fields both specify days for a
+ process to be run. If neither of the two fields are *, then processes will run
+ if either of the two fields or both are true. If one of the two fields is *,
+ then the process will run whenever the other field is true. If both fields are
+ *, then the process runs every day.
+
+ If you need to adjust system time forward (for example, during daylight savings
+ time), any jobs that were scheduled to run during the skipped time will not be
+ run. If time is adjusted backwards (again, daylight savings time is the
+ example), then a job may be processed twice.
+
+ If you're adding a recurring process to an already heavily loaded server, you
+ should be aware of when other processes are scheduled. Big jobs are best
+ scheduled for when the system is not heavily loaded. For most systems, this
+ would normally be at night, but it depends upon your system and your setup.
+
+ An asterisk (*) indicates that the process should run every time period (for
+ example, a * in the "Months" field indicates that the process should run every
+ month).
+
+ A hyphen (-) indicates that the job should be processed during a certain range
+ of time, including the endpoints. For example, 2-5 in the month field indicates
+ that the job will be processed in February, March, April and May.
+
+ Commas (,) should be used to separate specific entries for a time period. For
+ example, a 5,6,11 in the month field indicates that the job will be processed in
+ May, June and November. Commas can also separate ranges of numbers (for
+ example, 1-3,6-9 in the month field would mean January through March and June
+ through September).
+
+ A range of values, or an *, followed by a forward slash (/) and a number is used
+ to step through the range of values. So a 2-10/2 in the months field indicates
+ every other month from February through October (in other words: February,
+ April, June, August and October). A */5 in the day field would run on every
+ fifth day of the appropriate month(s): the 1st, the 6th, the 11th, and so on.
+
+
+
+
+
+ Examples
+
+
+ Months *
+ Days of the month *
+ Days of the week *
+ Hours 0
+ Minutes 5
+
+
+ This setup would run a process every day, at five minutes past midnight.
+
+
+ Months *
+ Days of the month *
+ Days of the week 0,3,6
+ Hours 2
+ Minutes 10
+
+
+ This setup would run a process on every Sunday, Wednesday,
+ and Saturday, at 2:10 a.m.
+
+
+ Months *
+ Days of the month 1,15,31
+ Days of the week 2
+ Hours 1
+ Minutes 10
+
+
+ This setup would run a process during every month, on the 1st, 15th and 31st,
+ and on every Tuesday, at 1:10 a.m. Obviously, you'll probably never need to
+ schedule a job like this, but the example illustrates how the days of the month
+ and days of the week fields are combined, if neither field is *.
+
+
If you delete an account, you can choose to archive the account's data. The
+ user's files will be tarred, gzipped and saved in the oldaccounts
+ directory in the default home directory.
+
For example, if you're archiving a login account's data, the user's home
+ directory (probably /home/username) and the user's e-mail inbox
+ (probably /var/spool/mail/username) will be tarred, gzipped and saved
+ in the /home/oldaccounts directory. These paths will vary according to
+ the default home directory on your system.
+
If you decide at a later time that you need data from the user's files, you can
+ use tar and gzip to recover the files. If you need to conserve storage space,
+ you may choose to move the tarred and gzipped file to a storage site off your
+ system.
+
If you choose to delete the account's data when deleting an account, the files
+ in the account's home directory and e-mail inbox file will be deleted from the
+ system. Don't choose this option unless you're absolutely certain that you
+ won't need any of the account's data in the future.
+
+
+ Next
+ Previous
+ Contents
+
+
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.16r8/help.files/sources/userconf/delaccount-3.html linuxconf-1.16r9/help.files/sources/userconf/delaccount-3.html
*** linuxconf-1.16r8/help.files/sources/userconf/delaccount-3.html Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/help.files/sources/userconf/delaccount-3.html Thu Nov 25 22:31:10 1999
***************
*** 0 ****
--- 1,25 ----
+
+
+
+
+ Deleting an Account: Leaving the Account's Data in Place
+
+
+
+
+ Next
+ Previous
+ Contents
+
+
If you delete an account, but leave the account's data in place, the account's
+ home directory and e-mail inbox will remain in place on your system.
+
+
+ When you delete an account, you need to decide what to do with the account's
+ files. Remember that you can disable the account instead of deleting it. If
+ there's a chance that the account will need to be activated in the future, you
+ should just disable it (de-select "The account is enabled" on the screen
+ containing the account's information). If you're absolutely sure that no one
+ will need the account in the future, then you may want to delete the account.
+
+
+
+
+ Next
+ Previous
+ Contents
+
+
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.16r8/help.files/sources/userconf/delaccount.sgml linuxconf-1.16r9/help.files/sources/userconf/delaccount.sgml
*** linuxconf-1.16r8/help.files/sources/userconf/delaccount.sgml Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/help.files/sources/userconf/delaccount.sgml Thu Nov 25 22:10:25 1999
***************
*** 0 ****
--- 1,60 ----
+
+
+ Deleting an Account
+ Carole Williams,
+ When you delete an account, you need to decide what to do with the account's
+ files. Remember that you can disable the account instead of deleting it. If
+ there's a chance that the account will need to be activated in the future, you
+ should just disable it (de-select "The account is enabled" on the screen
+ containing the account's information). If you're absolutely sure that no one
+ will need the account in the future, then you may want to delete the account.
+
+
+
+
+ Archiving the Account's Data
+
+
+ If you delete an account, you can choose to archive the account's data. The
+ user's files will be tarred, gzipped and saved in the oldaccounts
+ directory in the default home directory.
+
+ For example, if you're archiving a login account's data, the user's home
+ directory (probably /home/username) and the user's e-mail inbox
+ (probably /var/spool/mail/username) will be tarred, gzipped and saved
+ in the /home/oldaccounts directory. These paths will vary according to
+ the default home directory on your system.
+
+ If you decide at a later time that you need data from the user's files, you can
+ use tar and gzip to recover the files. If you need to conserve storage space,
+ you may choose to move the tarred and gzipped file to a storage site off your
+ system.
+
+ Deleting the Account's Data
+
+
+ If you choose to delete the account's data when deleting an account, the files
+ in the account's home directory and e-mail inbox file will be deleted from the
+ system. Don't choose this option unless you're absolutely certain that you
+ won't need any of the account's data in the future.
+
+ Leaving the Account's Data in Place
+
+
+ If you delete an account, but leave the account's data in place, the account's
+ home directory and e-mail inbox will remain in place on your system.
+
+
+
+
+
+
+
+
+
+
+
+
+
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.16r8/messages/se/fetchmailconf.dic linuxconf-1.16r9/messages/se/fetchmailconf.dic
*** linuxconf-1.16r8/messages/se/fetchmailconf.dic Wed Dec 31 19:00:00 1969
--- linuxconf-1.16r9/messages/se/fetchmailconf.dic Thu Nov 25 17:42:31 1999
***************
*** 0 ****
--- 1,413 ----
+ @version 0
+ !T_FETCHMAIL_COMNG
+ :E Fetch mail
+ :T Hämta post
+ !F_SCHEDULE_CRON
+ :E By cron
+ :T Av cron
+ !F_SCHEDULE
+ :E Start
+ :T Starta:
+ !E_SCHEDULE_CRON
+ :E You can't schedule a continually\nrunning process
+ :T Du kan inte schemalägga en process som\naldrig avslutas
+ !F_SCHEDULE_MANUAL
+ :E Manually
+ :T Manuellt
+ !F_SCHEDULE_DAEMON
+ :E At boot
+ :T Vid uppstart
+ !F_CREATE
+ :E Configuration file
+ :T Inställningsfil:le
+ !X_KILLFETCHMAIL
+ :E Killing fetchmail\n
+ :T Stoppar fetchmail\n
+ !E_SCHEDULE_DAEMON
+ :E Sorry, it is not possible to have\n
+ +a boot time start up without interval\n
+ +specified
+ :T Tyvärr kan du inte starta processen vid\nmaskinstart utan intervall.
+ !E_SCHEDULE_DAEMON_UNFINISHED
+ :E Sorry, start at boot not finished yet
+ :T Tyvärr är aktivering vid\nuppstart inte klart än
+ !O_FETCHMAIL
+ :E Schedule mail retrieval
+ :T Schemalägg posthämtning
+ !E_SCHEDULE
+ :E You can't schedule a continually running process
+ :T Det går inte att schemalägga en process som\när igång hela tiden.
+ !F_SCHEDULE_MANUALLY
+ :E Manually
+ :T Manuellt
+ !F_SCHEDULE_BOOT
+ :E At boot
+ :T Vid uppstart
+ !T_FETCHMAILCONF
+ :E Remote mail servers (fetchmail)
+ :T Hämta post (fetchmail)
+ !M_FETCHMAILCONF
+ :E Remote mail servers (fetchmail)
+ :T Hämta post (fetchmail)
+ !F_SDPS
+ :E (POP3 SDPS extensions)
+ :T (POP3 SDPS tillägg)
+ !E_SERVERNAME
+ :E Name of mail server must be supplied
+ :T Postkontorets namn måste anges
+ !E_REMOTEUSERNAME
+ :E Remote user name in mail\nserver must be supplied
+ :T Användarnamn i postkontor\nmåste anges
+ !T_PRIVFETCHMAILBASICS
+ :E Fetchmail basics
+ :T Fetchmail grundinställningar
+ !T_PRIVILEGE
+ :E 9-Fetchmail
+ :T 9-Fetchmail
+ !T_PRIVFETCHMAILSERVER
+ :E Fetchmail server
+ :T Fetchmail server
+ !T_PRIVFETCHMAILUSERID
+ :E Fetchmail users
+ :T Fetchmail användare
+ !P_EDITBASICS
+ :E change basic configuration
+ :T ändra grundinställning
+ !P_EDITSERVER
+ :E change server configuration
+ :T ändra server-inställning
+ !P_EDITUSERS
+ :E change user configuration
+ :T ändra användarinställning
+ !P_SEEUSERS
+ :E see user configuration
+ :T se användarinställning
+ !T_PRIVBASICS
+ :E Basics administrator
+ :T Grundinställningar
+ !F_DAEMON
+ :E Poll interval in seconds
+ :T Uppkopplingsintervall (sek):
+ !F_LOGFILE
+ :E Log to file
+ :T Logga i fil:
+ !F_SYSLOG
+ :E Log messages
+ :T Loggmeddelanden:
+ !F_SYSLOGTITLE
+ :E Log messages to system log
+ :T Logga meddelanden i systemlogg
+ !F_BOUNCEMAIL
+ :E Return to sender
+ :T Retur avsändaren
+ !F_FORWARD_POSTMASTER
+ :E Forward to postmaster
+ :T Postansvarig
+ !F_BOUNCEMAILPROMPT
+ :E Incorrect mail address
+ :T Felaktig postadress:
+ !F_POSTMASTER
+ :E Postmaster
+ :T Postansvarig:
+ !T_BASICS
+ :E Remote mail retreival basics
+ :T Grundinställning för brevhämtning
+ !I_BASICS
+ :E This is where you enter basic information for mail\n
+ +retreival from one or more remote mail servers.\n
+ +\n
+ +If poll interval is zero fetchmail must be scheduled\n
+ +to run automatically, started manually or automatically\n
+ +started at boot time for a one time retreival.\n
+ +\n
+ +If poll interval is greater than zero fetchmail runs\n
+ +continuously and fetches mail every interval. Fetchmail\n
+ +should be started at boot time in this case.\n
+ :T Här anges den grundläggande informationen för att hämta\n
+ +post från ett eller flera postkontor.\n
+ +\n
+ +Om uppkopplingsintervall är noll måste fetchmail schemaläggas för att\n
+ +köras automatiskt, startas manuellt eller startas automatiskt vid\n
+ +uppstart för engångshämtning.\n
+ +\n
+ +Om uppkopplingsintervall är större än noll, ska fetchmail vara igång\n
+ +kontinuerligt och hämtar då post varje intervall. Då bör fetchmail\n
+ +startas vid uppstart.\n
+ !T_USAGE
+ :E Module fetchmailconf\n\n No command line option\n
+ :T Modul fetchmailconf\n\n Inga kommandoalternativ\n
+ !M_DEFAULT
+ :E Basics
+ :T Grundinställning
+ !M_SERVERLIST
+ :E Mail servers
+ :T Postkontor
+ !M_USERIDLIST
+ :E Users
+ :T Användare
+ !M_FETCHMAIL_MENU
+ :E Fetchmail administration
+ :T Fetchmail administration
+ !I_FETCHMAIL
+ :E This menu allows you to configure how to fetch mail\n
+ +for any number of users from remote mail servers\n
+ +using fetchmail
+ :T Denna meny låter dig ställa in hur post ska hämtas för ett\n
+ +godtyckligt antal användare från ett eller flera postkontor\n
+ +genom att använda fetchmail.
+ !M_FETCHMAIL
+ :E Remote mail servers (fetchmail)
+ :T Hämta post (fetchmail)
+ !T_PRIVFETCHMAIL
+ :E Server administrator
+ :T Administratör postkontor
+ !T_PMISC
+ :E 9-Fetchmail
+ :T 9-Fetchmail
+ !F_SERVER
+ :E Mail server to access
+ :T Postkontor:
+ !F_POLL
+ :E Server is active
+ :T Postkontor aktivt
+ !F_PROTOCOLS
+ :E Protocol
+ :T Protokoll (normalt POP3 eller IMAP):
+ !F_POP2
+ :E (Post Office Protocol 2)
+ :T (Post Office Protocol 2)
+ !F_POP3
+ :E (Post Office Protocol 3)
+ :T (Post Office Protocol 3)
+ !F_APOP
+ :E (POP3 MD5 authentication)
+ :T (POP3 MD5 verifiering)
+ !F_RPOP
+ :E (POP3 RPOP authentication)
+ :T (POP3 RPOP verifiering)
+ !F_KPOP
+ :E (POP3 Kerberos V4 on port 1109)
+ :T (POP3 Kerberos V4 på port 1109)
+ !F_IMAP
+ :E (IMAP2bis, IMAP4, IMAP4rev1)
+ :T (IMAP2bis, IMAP4, IMAP4rev1)
+ !F_IMAP_K4
+ :E (IMAP4rev1, RFC1731 Kerberos V4)
+ :T (IMAP4rev1, RFC1731 Kerberos V4)
+ !F_IMAP_GSS
+ :E (IMAP4rev1, RFC1731 GSSAPI)
+ :T (IMAP4rev1, RFC1731 GSSAPI)
+ !F_ETRN
+ :E ETRN (ESMTP ETRN)
+ :T ETRN (ESMTP ETRN)
+ !F_AUTO
+ :E AUTO (Automatic)
+ :T AUTO (Automatisk)
+ !T_OPTIONAL
+ :E Optional information
+ :T Ej obligatoriskt
+ !T_SECURITY
+ :E Security
+ :T Säkerhet
+ !F_PASSWORD
+ :E Password
+ :T Lösenord
+ !F_KERBEROS
+ :E Kerberos
+ :T Kerberos
+ !F_AUTHENTICATE
+ :E Authentication
+ :T Verifiering:
+ !T_MONITOR_ADDRESS
+ :E Monitor interface, or interface, IP address and mask
+ :T Kontrollera enhet, eller enhet, IP-adress och mask
+ !F_INTERFACE
+ :E Interface
+ :T Enhet:
+ !F_IP_ADDRESS
+ :E IP address
+ :T IP-adress:
+ !F_IP_MASK
+ :E IP address mask
+ :T IP-adressmask:
+ !T_MULTIDROP
+ :E Multidrop
+ :T Gemensam brevlåda
+ !T_MULTIDROP_TITLE
+ :E A single mailbox for more than one user
+ :T En brevlåda för mer än en användare
+ !T_OPTIONS
+ :E Options
+ :T Alternativ
+ !F_ENVELOPE
+ :E Envelope address header
+ :T Adressinledning:
+ !F_QVIRTUAL
+ :E Name prefix to strip
+ :T Namnprefix som tas bort:
+ !T_DNS
+ :E DNS
+ :T Namn-server
+ !F_ENABLE_DNS
+ :E Enable DNS
+ :T Aktivera DNS
+ !F_CHECK_ALIAS
+ :E Check alias
+ :T Kontrollera alias
+ !F_NO_DNS
+ :E No DNS
+ :T Ingen DNS
+ !F_DNS_LOOKUP
+ :E DNS lookup
+ :T DNS-namnuppslagning:
+ !F_DNS_ALIAS
+ :E DNS aliases
+ :T DNS-alias:
+ !T_LOCALDOMAINS
+ :E Domains
+ :T Domäner
+ !F_LOCALDOMAINS
+ :E Domains to be considered local
+ :T Domäner som antas vara lokala:
+ !T_SERVER
+ :E Remote mail server access
+ :T Anslutning till postkontor
+ !I_SERVER
+ :E This is where you enter the name and protocol of\n
+ +a remote mail server from which to retreive mail.\n
+ :T Här anger du postkontorets namn och vilket protokoll\n
+ +som ska användas för att hämta post.
+ !E_MONITOR_MASK
+ :E Invalid ip address/mask for interface
+ :T Ogiltig ip-adress/mask för enheten
+ !H_FETCHMAIL
+ :E Server\tStatus
+ :T Server\tStatus
+ !T_ACTIVE
+ :E Active
+ :T Aktiv
+ !T_INACTIVE
+ :E Inactive
+ :T Ej aktiv
+ !I_ADDSERVER
+ :E Select [Add] to add a new server
+ :T Välj [lägg till] för att lägga till ett nytt.
+ !T_SERVERLIST
+ :E Mail server list
+ :T Lista över postkontor
+ !I_SERVERLIST
+ :E This is the list of all configured mail servers.
+ :T Detta är listan över alla inlagda postkontor.
+ !I_SERVERLISTSELECT
+ :E This is a list of all configured mail servers.\nPlease select a server.
+ :T Detta är listan över alla inlagda postkontor.\nVälj en en i listan\n
+ !T_PRIVUSERID
+ :E Users administrator
+ :T Användaradminstratör
+ !F_REMOTEUSER
+ :E Remote user name
+ :T Användarnamn i postkontor:
+ !F_USERPASSWORD
+ :E Remote user password
+ :T Lösenord:
+ !F_LOCALUSER
+ :E Local user name(s)
+ :T Lokala användarnamn:
+ !T_FETCH
+ :E Fetch
+ :T Hämta
+ !T_FETCHHOW
+ :E How
+ :T Hur
+ !F_FETCHALL
+ :E Fetch all messages whether seen or not
+ :T Hämta all post antingen den har hämtats tidigare eller ej
+ !F_KEEP
+ :E Don't delete seen messages from server
+ :T Ta inte bort hämtad post från postkontor
+ !F_FLUSH
+ :E Flush all seen messages before querying
+ :T Rensa bort tidigare hämtad post innan ny förfrågan
+ !T_FETCHWHERE
+ :E Where
+ :T Var
+ !F_FOLDER
+ :E Remote mailbox name(s)
+ :T Brevlådans namn:
+ !T_FETCHLIMITS
+ :E Limits
+ :T Gränser
+ !F_LIMIT
+ :E Max message size limit
+ :T Max meddelandestorlek:
+ !F_WARNINGS
+ :E Size warning interval (seconds)
+ :T Intervall för storleksvarning (sekunder):
+ !F_FETCHLIMIT
+ :E Max messages to fetch per session
+ :T Max antal meddelanden som hämtas per uppkoppling:
+ !T_MODIFY
+ :E Modify
+ :T Ändra
+ !F_STRIPCR
+ :E Strip carriage returns from ends of lines
+ :T Ta bort CR från radslut
+ !F_FORCECR
+ :E Force carriage returns at end of lines
+ :T Lägg in CR vid radslut
+ !F_PASS8BITS
+ :E Force BODY=8BITMIME to ESMTP listener
+ :T Framtvinga BODY=8BITMIME mot ESMTP-lyssnare
+ !F_MIMEDECODE
+ :E Convert quoted-printable to 8-bit in MIME messages
+ :T Konvertera till 8-bit i MIME-meddelanden
+ !F_REWRITE
+ :E Rewrite destination addresses for reply
+ :T Återskriv destinationsadress för svar
+ !F_DROPSTATUS
+ :E Strip Status and X-Mozilla-Status out of incoming mail
+ :T Ta bort Status och X-Mozilla-Status
+ !T_DELIVERY
+ :E Delivery
+ :T Leverans
+ !T_DELIVERY_GENERAL
+ :E General
+ :T Generellt
+ !F_BATCHLIMIT
+ :E Max messages to forward per session
+ :T Max antal brev per uppkoppling:
+ !T_DELIVERY_REMOTE
+ :E Remote
+ :T Server
+ !T_DELIVERYTITLE
+ :E Final destination if not local SMTP listener
+ :T Slutlig destination om ej lokal SMTP-lyssnare
+ !F_SMTPHOST
+ :E Forward to other host(s)
+ :T Vidarebefordra till andra system:
+ !F_SMTPADDRESS
+ :E Different domain (RCPT TO)
+ :T Annan domän (RCPT TO):
+ !F_MDA
+ :E Local mail delivery agent (MDA)
+ :T Lokalt program för postbefordran (MDA):
+ !T_USERID
+ :E Remote user mail retreival
+ :T Hämtning av post
+ !I_USERID
+ :E This is where you enter the name and password of\n
+ +a user to fetch mail from a remote mail server.\n
+ :T Här lägger du in namn och lösenord för användare\n
+ +som ska få post hämtad från ett postkontor.\n
+ !H_USERID
+ :E Remote user\tLocal user
+ :T Användare i postkontor\tLokal användare
+ !I_ADDUSERID
+ :E Select [Add] to add a new user
+ :T Välj [lägg till] för att lägga in en ny användare
+ !T_USERIDLIST
+ :E Mail user list
+ :T Användarlista
+ !I_USERIDLIST
+ :E This is the list of all configured mail users\non this mail server.\n
+ :T Detta är listan över alla inlagda postanvändare\nför detta postkontor.\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.16r8/messages/sources/mailconf.dic linuxconf-1.16r9/messages/sources/mailconf.dic
*** linuxconf-1.16r8/messages/sources/mailconf.dic Mon Nov 8 01:33:27 1999
--- linuxconf-1.16r9/messages/sources/mailconf.dic Wed Nov 24 23:56:59 1999
***************
*** 606,607 ****
--- 606,609 ----
!F_VFILTER
:E Filter program + args (opt)
+ !P_SEEDOMAIN
+ :E See virtual domains
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.16r8/messages/sources/managerpm.dic linuxconf-1.16r9/messages/sources/managerpm.dic
*** linuxconf-1.16r8/messages/sources/managerpm.dic Sun Nov 7 12:07:31 1999
--- linuxconf-1.16r9/messages/sources/managerpm.dic Thu Nov 25 23:23:19 1999
***************
*** 221,222 ****
--- 221,239 ----
!E_MISSINGPKGS
:E Some packages are missing. Here is the list\n\n%s
+ !H_CONFLICT
+ :E Resources/Files\tPackages\tDescriptions
+ !T_CONFLICT
+ :E Conflict packages
+ !I_CONFLICT
+ :E Some already installed packages provide\n
+ +either the same files or functionalities.\n
+ +Installing is not recommended unless you really know\n
+ +what you are doing\n
+ +\n
+ +You may inspect the offending packages and even remove\n
+ +them to solve the problem as well.
+ !B_REPLACEFILE
+ :E Install anyway
+ !N_NOMORECONFLICTS
+ :E You have removed all the conflicting packages.\n
+ +We can proceed to the installation now.
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.16r8/messages/sources/netconf.dic linuxconf-1.16r9/messages/sources/netconf.dic
*** linuxconf-1.16r8/messages/sources/netconf.dic Fri Sep 24 00:03:04 1999
--- linuxconf-1.16r9/messages/sources/netconf.dic Tue Nov 23 17:09:21 1999
***************
*** 748,752 ****
:E Config
!T_HOSTHEAD
! :E IP number\tname & aliases
!T_NETMISC
:E Misc
--- 748,752 ----
:E Config
!T_HOSTHEAD
! :E IP number\tname\taliases
!T_NETMISC
:E Misc
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.16r8/messages/sources/pppdialin.dic linuxconf-1.16r9/messages/sources/pppdialin.dic
*** linuxconf-1.16r8/messages/sources/pppdialin.dic Thu Nov 18 23:23:07 1999
--- linuxconf-1.16r9/messages/sources/pppdialin.dic Thu Nov 25 15:06:16 1999
***************
*** 91,92 ****
--- 91,96 ----
!I_PPPDEV
:E One PPP account
+ !F_FIREWALL
+ :E Update
+ !I_FIREWALL
+ :E the firewall rules
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.16r8/messages/sources/userconf.dic linuxconf-1.16r9/messages/sources/userconf.dic
*** linuxconf-1.16r8/messages/sources/userconf.dic Wed Sep 29 14:22:30 1999
--- linuxconf-1.16r9/messages/sources/userconf.dic Wed Nov 24 23:46:01 1999
***************
*** 554,555 ****
--- 554,557 ----
!E_FAILCREATE
:E Can't create user account
+ !P_USERACCOUTS
+ :E To view and edit user accounts
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.16r8/misc/arraykey.cc linuxconf-1.16r9/misc/arraykey.cc
*** linuxconf-1.16r8/misc/arraykey.cc Thu Nov 11 12:18:04 1999
--- linuxconf-1.16r9/misc/arraykey.cc Thu Nov 25 16:41:30 1999
***************
*** 30,35 ****
ARRAY_OBJ *_obj,
bool is_owner)
{
- key.setfrom (_key);
obj = _obj;
owner = is_owner;
--- 30,35 ----
ARRAY_OBJ *_obj,
bool is_owner)
+ : SSTRING(_key)
{
obj = _obj;
owner = is_owner;
***************
*** 65,69 ****
for (int i=0; ikey.cmp(key)==0){
ret = ar;
break;
--- 65,69 ----
for (int i=0; icmp(key)==0){
ret = ar;
break;
***************
*** 83,86 ****
--- 83,102 ----
return ret;
}
+
+ static int cmp (const ARRAY_OBJ *o1, const ARRAY_OBJ *o2)
+ {
+ SSTRING *s1 = (SSTRING *)o1;
+ SSTRING *s2 = (SSTRING *)o2;
+ return s1->cmp(*s2);
+ }
+
+ /*
+ Sort the array of SSTRING
+ */
+ PUBLIC void ARRAY_KEYS::sort ()
+ {
+ ARRAY::sort (cmp);
+ }
+
PUBLIC SSTRING_KEY::SSTRING_KEY (const char *_key, const char *_val)
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.16r8/misc/misc.h linuxconf-1.16r9/misc/misc.h
*** linuxconf-1.16r8/misc/misc.h Mon Nov 15 01:15:28 1999
--- linuxconf-1.16r9/misc/misc.h Thu Nov 25 16:41:41 1999
***************
*** 68,75 ****
#endif
! class ARRAY_KEY: public ARRAY_OBJ{
bool owner; // May delete the object
public:
- SSTRING key;
ARRAY_OBJ *obj;
/*~PROTOBEG~ ARRAY_KEY */
--- 68,74 ----
#endif
! class ARRAY_KEY: public SSTRING{
bool owner; // May delete the object
public:
ARRAY_OBJ *obj;
/*~PROTOBEG~ ARRAY_KEY */
***************
*** 92,95 ****
--- 91,95 ----
ARRAY_KEY *getobj (const char *key)const;
ARRAY_OBJ *getval (const char *key)const;
+ void sort (void);
/*~PROTOEND~ ARRAY_KEYS */
};
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.16r8/misc/misc.p linuxconf-1.16r9/misc/misc.p
*** linuxconf-1.16r8/misc/misc.p Mon Nov 15 01:19:19 1999
--- linuxconf-1.16r9/misc/misc.p Thu Nov 25 16:41:41 1999
***************
*** 1,5 ****
/* _dict.cc 14/08/1996 14.39.06 */
/* array.cc 13/09/1998 01.13.12 */
! /* arraykey.cc 11/11/1999 12.18.04 */
void arraykey_required (void);
/* confdb.cc 20/09/1999 21.04.42 */
--- 1,5 ----
/* _dict.cc 14/08/1996 14.39.06 */
/* array.cc 13/09/1998 01.13.12 */
! /* arraykey.cc 25/11/1999 16.41.30 */
void arraykey_required (void);
/* confdb.cc 20/09/1999 21.04.42 */
***************
*** 217,221 ****
void module_setone (const char *path);
void module_unsetone (const char *path);
! /* module_api.cc 15/11/1999 01.19.06 */
void module_api_required (void);
void module_register_api (const char *apiname,
--- 217,221 ----
void module_setone (const char *path);
void module_unsetone (const char *path);
! /* module_api.cc 18/11/1999 11.52.40 */
void module_api_required (void);
void module_register_api (const char *apiname,
***************
*** 226,230 ****
int version,
const char *client,
! void *tb[MAX_API_PROVIDERS]);
void module_release_apis (const char *apiname,
void *tbapi[],
--- 226,230 ----
int version,
const char *client,
! void *tbapi[MAX_API_PROVIDERS]);
void module_release_apis (const char *apiname,
void *tbapi[],
***************
*** 237,241 ****
int version,
const char *client);
! /* popen.cc 06/11/1999 23.01.36 */
void popen_initsignal (void);
int popen_getloginuid (void);
--- 237,241 ----
int version,
const char *client);
! /* popen.cc 25/11/1999 00.56.30 */
void popen_initsignal (void);
int popen_getloginuid (void);
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.16r8/misc/misc.pm linuxconf-1.16r9/misc/misc.pm
*** linuxconf-1.16r8/misc/misc.pm Mon Nov 15 01:19:19 1999
--- linuxconf-1.16r9/misc/misc.pm Thu Nov 25 16:41:41 1999
***************
*** 31,35 ****
PUBLIC int ARRAY::editone (int no);
PUBLIC int ARRAY::editone (ARRAY_OBJ *e);
! /* arraykey.cc 11/11/1999 12.18.04 */
PUBLIC ARRAY_KEY::ARRAY_KEY (const char *_key,
ARRAY_OBJ *_obj,
--- 31,35 ----
PUBLIC int ARRAY::editone (int no);
PUBLIC int ARRAY::editone (ARRAY_OBJ *e);
! /* arraykey.cc 25/11/1999 16.41.30 */
PUBLIC ARRAY_KEY::ARRAY_KEY (const char *_key,
ARRAY_OBJ *_obj,
***************
*** 43,46 ****
--- 43,47 ----
PUBLIC ARRAY_KEY *ARRAY_KEYS::getobj (const char *key)const;
PUBLIC ARRAY_OBJ *ARRAY_KEYS::getval (const char *key)const;
+ PUBLIC void ARRAY_KEYS::sort (void);
PUBLIC SSTRING_KEY::SSTRING_KEY (const char *_key, const char *_val);
PUBLIC void SSTRING_KEYS::add (const char *key, const char *val);
***************
*** 341,345 ****
PUBLIC void MODULE_INFOS::setone (const char *path);
PUBLIC void MODULE_INFOS::unsetone (const char *path);
! /* module_api.cc 15/11/1999 01.19.06 */
PUBLIC MODULE_API::MODULE_API (void * (*_fctget)(),
void (*_fctrelease)(void *));
--- 342,346 ----
PUBLIC void MODULE_INFOS::setone (const char *path);
PUBLIC void MODULE_INFOS::unsetone (const char *path);
! /* module_api.cc 18/11/1999 11.52.40 */
PUBLIC MODULE_API::MODULE_API (void * (*_fctget)(),
void (*_fctrelease)(void *));
***************
*** 351,355 ****
void (*_fctrelease)(void *));
PUBLIC MODULE_APIREF *MODULE_APIREFS::getitem (int no)const;
! /* popen.cc 06/11/1999 23.01.36 */
PROTECTED void POPENFD::setfds (int fdin,
int fdout,
--- 352,356 ----
void (*_fctrelease)(void *));
PUBLIC MODULE_APIREF *MODULE_APIREFS::getitem (int no)const;
! /* popen.cc 25/11/1999 00.56.30 */
PROTECTED void POPENFD::setfds (int fdin,
int fdout,
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.16r8/misc/popen.cc linuxconf-1.16r9/misc/popen.cc
*** linuxconf-1.16r8/misc/popen.cc Thu Nov 18 18:09:23 1999
--- linuxconf-1.16r9/misc/popen.cc Thu Nov 25 00:56:31 1999
***************
*** 372,375 ****
--- 372,376 ----
if (sockholder != NULL){
ret = socketpair(AF_UNIX,SOCK_STREAM,PF_UNIX,fdinout);
+ fdin[0] = fdin[1] = fdout[0] = fdout[1] = -1;
}else{
fdinout[0] = fdinout[1] = -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.16r8/modules/conectiva/reduser.cc linuxconf-1.16r9/modules/conectiva/reduser.cc
*** linuxconf-1.16r8/modules/conectiva/reduser.cc Sun Nov 15 01:31:34 1998
--- linuxconf-1.16r9/modules/conectiva/reduser.cc Thu Nov 25 01:09:46 1999
***************
*** 89,92 ****
--- 89,93 ----
ret = netconf_system_if ("chage",tmp);
}
+ netconf_closepipes();
return ret;
}
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.16r8/modules/debian/user.cc linuxconf-1.16r9/modules/debian/user.cc
*** linuxconf-1.16r8/modules/debian/user.cc Wed Jul 14 21:33:45 1999
--- linuxconf-1.16r9/modules/debian/user.cc Thu Nov 25 01:10:21 1999
***************
*** 84,87 ****
--- 84,88 ----
ret = netconf_system_if ("chage",tmp);
}
+ netconf_closepipes();
return ret;
}
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.16r8/modules/dialout/pppcon.cc linuxconf-1.16r9/modules/dialout/pppcon.cc
*** linuxconf-1.16r8/modules/dialout/pppcon.cc Fri Nov 19 01:36:57 1999
--- linuxconf-1.16r9/modules/dialout/pppcon.cc Thu Nov 25 14:57:12 1999
***************
*** 960,965 ****
{
if (!postdiscmd.is_empty()) pppcon_execbg (postdiscmd);
- if (firewall) module_sendmessage ("setfw",0,NULL);
delpidfile();
return 0;
}
--- 960,965 ----
{
if (!postdiscmd.is_empty()) pppcon_execbg (postdiscmd);
delpidfile();
+ if (firewall) module_sendmessage ("setfw",0,NULL);
return 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.16r8/modules/fetchmailconf/Makefile linuxconf-1.16r9/modules/fetchmailconf/Makefile
*** linuxconf-1.16r8/modules/fetchmailconf/Makefile Tue Nov 23 09:39:32 1999
--- linuxconf-1.16r9/modules/fetchmailconf/Makefile Thu Nov 25 14:27:05 1999
***************
*** 1,5 ****
CURDIR=fetchmailconf
LOCAL_CLEAN=std_local_clean
! LOCAL_INSTALL=std_local_install
all: $(CURDIR).so
OBJS = fetchmailconf.os basicsedit.os serveredit.os useridedit.os keyword.os _dict.os
--- 1,5 ----
CURDIR=fetchmailconf
LOCAL_CLEAN=std_local_clean
! LOCAL_INSTALL=local_install
all: $(CURDIR).so
OBJS = fetchmailconf.os basicsedit.os serveredit.os useridedit.os keyword.os _dict.os
***************
*** 9,11 ****
include ../stdmod.mak
!
--- 9,11 ----
include ../stdmod.mak
! local_install: std_local_install install_daemons
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.16r8/modules/firewall/ipfwrule.cc linuxconf-1.16r9/modules/firewall/ipfwrule.cc
*** linuxconf-1.16r8/modules/firewall/ipfwrule.cc Thu Nov 18 23:48:49 1999
--- linuxconf-1.16r9/modules/firewall/ipfwrule.cc Wed Nov 24 10:35:52 1999
***************
*** 423,427 ****
}
}else{
- char interbuf[100];
if (f.interface.is_empty()
|| f.interface.icmp("Any")==0){
--- 423,426 ----
***************
*** 435,439 ****
if (ipfwrule_convert (inter,ip,msk,NULL,tbapi,nbapi)!=-1){
if(!kernel_newer(2,2,0)
! || netconf_finddevfromhost(ip,interbuf)==-1){
strcpy (solved.interface,ip);
}
--- 434,438 ----
if (ipfwrule_convert (inter,ip,msk,NULL,tbapi,nbapi)!=-1){
if(!kernel_newer(2,2,0)
! || netconf_finddevfromhost(ip,solved.interface)==-1){
strcpy (solved.interface,ip);
}
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.16r8/modules/mailconf/alias.cc linuxconf-1.16r9/modules/mailconf/alias.cc
*** linuxconf-1.16r8/modules/mailconf/alias.cc Thu May 27 17:15:52 1999
--- linuxconf-1.16r9/modules/mailconf/alias.cc Thu Nov 25 00:29:11 1999
***************
*** 318,321 ****
--- 318,322 ----
}
}
+ fclose (fin);
addline(buf);
rstmodified();
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.16r8/modules/mailconf/mailconf.m linuxconf-1.16r9/modules/mailconf/mailconf.m
*** linuxconf-1.16r8/modules/mailconf/mailconf.m Mon Nov 8 01:33:27 1999
--- linuxconf-1.16r9/modules/mailconf/mailconf.m Wed Nov 24 23:56:59 1999
***************
*** 3,7 ****
#define DICTIONARY_REQUEST \
const char **_dictionary_mailconf;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_mailconf("mailconf",_dictionary_mailconf,273,19);\
void dummy_dict_mailconf(){}
#endif
--- 3,7 ----
#define DICTIONARY_REQUEST \
const char **_dictionary_mailconf;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_mailconf("mailconf",_dictionary_mailconf,274,19);\
void dummy_dict_mailconf(){}
#endif
***************
*** 287,288 ****
--- 287,289 ----
#define E_NOUSERINDOMAIN 271
#define F_VFILTER 272
+ #define P_SEEDOMAIN 273
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.16r8/modules/mailconf/vdomain.cc linuxconf-1.16r9/modules/mailconf/vdomain.cc
*** linuxconf-1.16r8/modules/mailconf/vdomain.cc Sat Nov 20 19:46:10 1999
--- linuxconf-1.16r9/modules/mailconf/vdomain.cc Thu Nov 25 00:21:10 1999
***************
*** 295,319 ****
}
- /*
- Edit the definition of virtual email domains.
- Return != 0 if the has been one modification.
- */
- PUBLIC MENU_STATUS VDOMAINS::select(
- const char *title,
- const char *intro,
- int mayadd,
- int &nof)
- {
- sort();
- DIALOG_LISTE dia;
- dia.newf_head ("",MSG_U(H_VDOMAINS,"Virtual email domains"));
- for (int i=0; idomain.get(),"");
- }
- if (mayadd) dia.addwhat (MSG_U(I_ONEVDOMAIN,"Select [Add] to add one virtual domain"));
- MENU_STATUS code = dia.editmenu (title,intro,help_vdomain,nof,0);
- return code;
- }
PUBLIC void VDOMAIN::createfiles()
{
--- 295,298 ----
***************
*** 343,367 ****
{
int ret = 0;
! int nof = 0;
! while (1){
! MENU_STATUS code = select (
! MSG_U(T_VDOMAINS,"Virtual email domains")
! ,MSG_U(I_VDOMAINS
! ,"You can define new virtual email domain\n"
! "virtual email hosting is a new concept.\n"
! "It is not required for most mail server configuration.\n")
! ,1
! ,nof);
! if (code == MENU_QUIT || code == MENU_ESCAPE){
! break;
! }else if (code == MENU_ADD){
! VDOMAIN *d = new VDOMAIN;
! if (manage_edit (d,d->edit(*this)) >= 0){
! d->createfiles();
! ret = 1;
}
- }else if (nof >= 0 && nof < getnb()){
- VDOMAIN *d = getitem(nof);
- if (manage_edit (d,d->edit(*this)) >= 0) ret = 1;
}
}
--- 322,348 ----
{
int ret = 0;
! if (perm_rootaccess(MSG_R(P_SEEDOMAIN))){
! int nof = 0;
! while (1){
! MENU_STATUS code = select (
! MSG_U(T_VDOMAINS,"Virtual email domains")
! ,MSG_U(I_VDOMAINS
! ,"You can define new virtual email domain\n"
! "virtual email hosting is a new concept.\n"
! "It is not required for most mail server configuration.\n")
! ,1
! ,nof);
! if (code == MENU_QUIT || code == MENU_ESCAPE){
! break;
! }else if (code == MENU_ADD){
! VDOMAIN *d = new VDOMAIN;
! if (manage_edit (d,d->edit(*this)) >= 0){
! d->createfiles();
! ret = 1;
! }
! }else if (nof >= 0 && nof < getnb()){
! VDOMAIN *d = getitem(nof);
! if (manage_edit (d,d->edit(*this)) >= 0) ret = 1;
}
}
}
***************
*** 485,488 ****
--- 466,480 ----
}
+ /*
+ Return the co-admin privilege associated with a vdomain
+ */
+ static PRIVILEGE *vdomain_lookuppriv (const char *dname)
+ {
+ vdomain_setprivi();
+ char id[PATH_MAX];
+ sprintf (id,"vdomain_%s",dname);
+ return privilege_lookup (id);
+ }
+
static void vdomain_editone (VDOMAIN *v, USER *like)
{
***************
*** 490,497 ****
USERS *users = v->getusers (file,file_shadow);
const char *dname = v->domain.get();
! vdomain_setprivi();
! char id[PATH_MAX];
! sprintf (id,"vdomain_%s",dname);
! PRIVILEGE *priv = privilege_lookup (id);
if (perm_access (priv,MSG_U(P_MANAGEDOM,"manage a virtual domain"))){
users->edit(like,priv,0);
--- 482,486 ----
USERS *users = v->getusers (file,file_shadow);
const char *dname = v->domain.get();
! PRIVILEGE *priv = vdomain_lookuppriv (dname);
if (perm_access (priv,MSG_U(P_MANAGEDOM,"manage a virtual domain"))){
users->edit(like,priv,0);
***************
*** 501,504 ****
--- 490,534 ----
delete file_shadow;
}
+
+ /*
+ Edit the definition of virtual email domains.
+ Return != 0 if the has been one modification.
+ */
+ PUBLIC MENU_STATUS VDOMAINS::select(
+ const char *title,
+ const char *intro,
+ int mayadd,
+ int &nof)
+ {
+ sort();
+ DIALOG_LISTE dia;
+ dia.newf_head ("",MSG_U(H_VDOMAINS,"Virtual email domains"));
+ int lookup[getnb()];
+ for (int i=0; idomain.get());
+ if (perm_checkpriv(priv)){
+ lookup[dia.getnb()-1] = i;
+ dia.new_menuitem(d->domain.get(),"");
+ }
+ }
+ if (dia.getnb()==1){
+ // No domain visible by the user
+ // check with root privileges
+ if (perm_rootaccess(MSG_U(P_SEEDOMAIN,"See virtual domains"))){
+ for (int i=0; idomain.get(),"");
+ }
+ }
+ }
+ if (mayadd) dia.addwhat (MSG_U(I_ONEVDOMAIN,"Select [Add] to add one virtual domain"));
+ MENU_STATUS code = dia.editmenu (title,intro,help_vdomain,nof,0);
+ if (code == MENU_OK) nof = lookup[nof];
+ return code;
+ }
+
+
/*
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.16r8/modules/managerpm/Makefile linuxconf-1.16r9/modules/managerpm/Makefile
*** linuxconf-1.16r8/modules/managerpm/Makefile Tue Nov 23 10:36:04 1999
--- linuxconf-1.16r9/modules/managerpm/Makefile Thu Nov 25 16:20:02 1999
***************
*** 7,11 ****
include ../rules.mak
! PROTOUPDHEAD=-bmngrpm.cc+managerpm.pm
include ../stdmod.mak
--- 7,11 ----
include ../rules.mak
! PROTOUPDHEAD=-bmngrpm.cc+managerpm.pm -bpackage.cc+managerpm.pm
include ../stdmod.mak
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.16r8/modules/managerpm/api.cc linuxconf-1.16r9/modules/managerpm/api.cc
*** linuxconf-1.16r8/modules/managerpm/api.cc Sun Nov 7 15:21:13 1999
--- linuxconf-1.16r9/modules/managerpm/api.cc Thu Nov 25 22:57:38 1999
***************
*** 83,86 ****
--- 83,95 ----
/*
+ Return true if a package is installed
+ */
+ bool package_is_installed(const char *package)
+ {
+ PACKAGES pkgs;
+ return api_findpkg (pkgs,"-q %s",package) != NULL;
+ }
+
+ /*
Return 1 if a given package is newer (or equal) than a specific version
Return -1 if the package is not installed
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.16r8/modules/managerpm/managerpm.h linuxconf-1.16r9/modules/managerpm/managerpm.h
*** linuxconf-1.16r8/modules/managerpm/managerpm.h Sun Nov 7 00:48:57 1999
--- linuxconf-1.16r9/modules/managerpm/managerpm.h Thu Nov 25 23:10:06 1999
***************
*** 70,73 ****
--- 70,75 ----
const char *ver);
void forgetpkg (PACKAGE *pkg);
+ bool testconflicts (const char *name,
+ PACKAGES&conflicts);
bool testinstall (PACKAGES&needs);
bool testuninstall (PACKAGES&needs);
***************
*** 84,88 ****
};
!
class PACKAGE: public ARRAY_OBJ{
--- 86,90 ----
};
! class CONFLICTS;
class PACKAGE: public ARRAY_OBJ{
***************
*** 124,128 ****
void showfiles (void);
void showinfo (void);
! bool testinstall (PACKAGES&needs, SSTRINGS&missing);
bool testuninstall (PACKAGES&needs);
int uninstall (void);
--- 126,132 ----
void showfiles (void);
void showinfo (void);
! bool testinstall (PACKAGES&needs,
! SSTRINGS&missing,
! CONFLICTS&conflicts);
bool testuninstall (PACKAGES&needs);
int uninstall (void);
***************
*** 147,151 ****
void selectall (void);
void sort (void);
! bool testinstall (bool&nodeps);
bool testuninstall (bool&nodeps);
int uninstall (void);
--- 151,155 ----
void selectall (void);
void sort (void);
! bool testinstall (bool&nodeps, bool&replacefiles);
bool testuninstall (bool&nodeps);
int uninstall (void);
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.16r8/modules/managerpm/managerpm.m linuxconf-1.16r9/modules/managerpm/managerpm.m
*** linuxconf-1.16r8/modules/managerpm/managerpm.m Sun Nov 7 12:07:31 1999
--- linuxconf-1.16r9/modules/managerpm/managerpm.m Thu Nov 25 23:23:19 1999
***************
*** 3,7 ****
#define DICTIONARY_REQUEST \
const char **_dictionary_managerpm;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_managerpm("managerpm",_dictionary_managerpm,100,2);\
void dummy_dict_managerpm(){}
#endif
--- 3,7 ----
#define DICTIONARY_REQUEST \
const char **_dictionary_managerpm;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_managerpm("managerpm",_dictionary_managerpm,105,2);\
void dummy_dict_managerpm(){}
#endif
***************
*** 114,115 ****
--- 114,120 ----
#define N_DONE 98
#define E_MISSINGPKGS 99
+ #define H_CONFLICT 100
+ #define T_CONFLICT 101
+ #define I_CONFLICT 102
+ #define B_REPLACEFILE 103
+ #define N_NOMORECONFLICTS 104
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.16r8/modules/managerpm/managerpm.p linuxconf-1.16r9/modules/managerpm/managerpm.p
*** linuxconf-1.16r8/modules/managerpm/managerpm.p Tue Nov 23 09:46:22 1999
--- linuxconf-1.16r9/modules/managerpm/managerpm.p Thu Nov 25 23:10:06 1999
***************
*** 1,5 ****
/* managerpm.cc 27/10/1999 23.06.30 */
/* _dict.cc 16/09/1998 16.07.22 */
! /* mngrpm.cc 07/11/1999 11.57.58 */
int mngrpm_execrpm (const SSTRING&args, SSTRINGS&tb);
void mngrpm_setfsroot (const char *root);
--- 1,5 ----
/* managerpm.cc 27/10/1999 23.06.30 */
/* _dict.cc 16/09/1998 16.07.22 */
! /* mngrpm.cc 25/11/1999 20.41.52 */
int mngrpm_execrpm (const SSTRING&args, SSTRINGS&tb);
void mngrpm_setfsroot (const char *root);
***************
*** 16,20 ****
void mngrpm_showaddon (void);
void mngrpm_menu (void);
! /* api.cc 07/11/1999 15.21.12 */
void *managerpm_api_get (void);
void managerpm_api_release (void *obj);
--- 16,21 ----
void mngrpm_showaddon (void);
void mngrpm_menu (void);
! /* api.cc 25/11/1999 22.57.38 */
! bool package_is_installed (const char *package);
void *managerpm_api_get (void);
void managerpm_api_release (void *obj);
***************
*** 23,30 ****
void browse_installed (void);
void browse_uninstalled (void);
! /* package.cc 07/11/1999 11.41.40 */
void mngrpm_parsever (const char *version, VERSION_ITEMS&v);
int package_cmpver (const VERSION_ITEMS&v1, const VERSION_ITEMS&v2);
! /* poolstr.cc 28/10/1999 12.17.36 */
STRENTRY *poolstr_locate_add (const char *s);
STRENTRY *poolstr_addprovide (PACKAGE *p, const char *s);
--- 24,31 ----
void browse_installed (void);
void browse_uninstalled (void);
! /* package.cc 25/11/1999 23.08.50 */
void mngrpm_parsever (const char *version, VERSION_ITEMS&v);
int package_cmpver (const VERSION_ITEMS&v1, const VERSION_ITEMS&v2);
! /* poolstr.cc 25/11/1999 23.10.00 */
STRENTRY *poolstr_locate_add (const char *s);
STRENTRY *poolstr_addprovide (PACKAGE *p, const char *s);
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.16r8/modules/managerpm/managerpm.pm linuxconf-1.16r9/modules/managerpm/managerpm.pm
*** linuxconf-1.16r8/modules/managerpm/managerpm.pm Tue Nov 23 09:46:22 1999
--- linuxconf-1.16r9/modules/managerpm/managerpm.pm Thu Nov 25 23:10:06 1999
***************
*** 9,13 ****
PUBLIC int MODULE_managerpm::execmain (int argc, char *argv[]);
/* _dict.cc 16/09/1998 16.07.22 */
! /* mngrpm.cc 07/11/1999 11.57.58 */
PUBLIC RPM_OPTIONS::RPM_OPTIONS (void);
PUBLIC void RPM_OPTIONS::addargs (SSTRING&args)const;
--- 9,13 ----
PUBLIC int MODULE_managerpm::execmain (int argc, char *argv[]);
/* _dict.cc 16/09/1998 16.07.22 */
! /* mngrpm.cc 25/11/1999 20.41.52 */
PUBLIC RPM_OPTIONS::RPM_OPTIONS (void);
PUBLIC void RPM_OPTIONS::addargs (SSTRING&args)const;
***************
*** 26,32 ****
PUBLIC PACKAGE *PACKAGES::locate (const char *name);
PUBLIC void PACKAGES::sort (void);
! /* api.cc 07/11/1999 15.21.12 */
/* browse.cc 27/10/1999 15.56.24 */
! /* package.cc 07/11/1999 11.41.40 */
PUBLIC PACKAGE::PACKAGE (const char *_name,
const char *_version,
--- 26,32 ----
PUBLIC PACKAGE *PACKAGES::locate (const char *name);
PUBLIC void PACKAGES::sort (void);
! /* api.cc 25/11/1999 22.57.38 */
/* browse.cc 27/10/1999 15.56.24 */
! /* package.cc 25/11/1999 23.08.50 */
PUBLIC PACKAGE::PACKAGE (const char *_name,
const char *_version,
***************
*** 48,56 ****
PUBLIC bool PACKAGE::is_installed (void)const;
PUBLIC void PACKAGES::resetneeded (void);
! PUBLIC bool PACKAGE::testinstall (PACKAGES&needs, SSTRINGS&missing);
PUBLIC bool PACKAGE::testuninstall (PACKAGES&needs);
PUBLIC bool PACKAGES::testuninstall (bool&nodeps);
! PUBLIC bool PACKAGES::testinstall (bool&nodeps);
! /* poolstr.cc 28/10/1999 12.17.36 */
PUBLIC STRENTRY::STRENTRY (const char *s);
PUBLIC STRENTRY::~STRENTRY (void);
--- 48,61 ----
PUBLIC bool PACKAGE::is_installed (void)const;
PUBLIC void PACKAGES::resetneeded (void);
! PUBLIC CONFLICT::CONFLICT (const char *key, PACKAGES *p);
! PUBLIC PACKAGES *CONFLICT::getobj (void);
! PUBLIC CONFLICT *CONFLICTS::getitem (int no)const;
! PUBLIC bool PACKAGE::testinstall (PACKAGES&needs,
! SSTRINGS&missing,
! CONFLICTS&conflicts);
PUBLIC bool PACKAGE::testuninstall (PACKAGES&needs);
PUBLIC bool PACKAGES::testuninstall (bool&nodeps);
! PUBLIC bool PACKAGES::testinstall (bool&nodeps, bool&replacefiles);
! /* poolstr.cc 25/11/1999 23.10.00 */
PUBLIC STRENTRY::STRENTRY (const char *s);
PUBLIC STRENTRY::~STRENTRY (void);
***************
*** 64,65 ****
--- 69,72 ----
PUBLIC bool STRENTRY::testinstall (PACKAGES&needs);
PUBLIC bool STRENTRY::testuninstall (PACKAGES&needs);
+ PUBLIC bool STRENTRY::testconflicts (const char *name,
+ PACKAGES&conflicts);
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.16r8/modules/managerpm/mngrpm.cc linuxconf-1.16r9/modules/managerpm/mngrpm.cc
*** linuxconf-1.16r8/modules/managerpm/mngrpm.cc Sun Nov 7 11:57:59 1999
--- linuxconf-1.16r9/modules/managerpm/mngrpm.cc Thu Nov 25 20:41:52 1999
***************
*** 307,313 ****
" \"##%%{name}\t%%{version}\t%%{release}\t%%{group}\t%%{vendor}\t%%{distribution}\t%%{summary}\n\""
" --requires"
! " --queryformat \"#-\n\""
" --provides"
! " --queryformat \"#=\n\""
" --list"
" --queryformat \"\n\""
--- 307,313 ----
" \"##%%{name}\t%%{version}\t%%{release}\t%%{group}\t%%{vendor}\t%%{distribution}\t%%{summary}\n\""
" --requires"
! " --queryformat \"\n#-\n\""
" --provides"
! " --queryformat \"\n#=\n\""
" --list"
" --queryformat \"\n\""
***************
*** 680,686 ****
{
int ret = -1;
! bool nodeps;
! if (newpkgs.testinstall(nodeps)){
if (nodeps) options.nodep = 1;
ret = mngrpm_domany (newpkgs,MSG_U(T_UPDPKG,"Update packages")
,"-Uv",options);
--- 680,687 ----
{
int ret = -1;
! bool nodeps,replacefiles;
! if (newpkgs.testinstall(nodeps,replacefiles)){
if (nodeps) options.nodep = 1;
+ if (replacefiles) options.replace = 1;
ret = mngrpm_domany (newpkgs,MSG_U(T_UPDPKG,"Update packages")
,"-Uv",options);
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.16r8/modules/managerpm/package.cc linuxconf-1.16r9/modules/managerpm/package.cc
*** linuxconf-1.16r8/modules/managerpm/package.cc Sun Nov 7 11:41:40 1999
--- linuxconf-1.16r9/modules/managerpm/package.cc Thu Nov 25 23:23:14 1999
***************
*** 7,10 ****
--- 7,11 ----
static HELP_FILE help_missingpkgs ("managerpm","missingpkgs");
static HELP_FILE help_requiredpkgs ("managerpm","requiredpkgs");
+ static HELP_FILE help_conflicts ("managerpm","conflicts");
/*
***************
*** 282,285 ****
--- 283,315 ----
}
+ class CONFLICT: public ARRAY_KEY{
+ /*~PROTOBEG~ CONFLICT */
+ public:
+ CONFLICT (const char *key, PACKAGES *p);
+ PACKAGES *getobj (void);
+ /*~PROTOEND~ CONFLICT */
+ };
+
+ PUBLIC CONFLICT::CONFLICT (const char *key, PACKAGES *p)
+ : ARRAY_KEY (key,p,false)
+ {
+ }
+ PUBLIC PACKAGES *CONFLICT::getobj ()
+ {
+ return (PACKAGES*)obj;
+ }
+
+
+ class CONFLICTS: public ARRAY_KEYS{
+ /*~PROTOBEG~ CONFLICTS */
+ public:
+ CONFLICT *getitem (int no)const;
+ /*~PROTOEND~ CONFLICTS */
+ };
+
+ PUBLIC CONFLICT *CONFLICTS::getitem (int no) const
+ {
+ return (CONFLICT*)ARRAY_KEYS::getitem(no);
+ }
/*
Check if a package may be installed.
***************
*** 290,294 ****
can't be solved.
*/
! PUBLIC bool PACKAGE::testinstall(PACKAGES &needs, SSTRINGS &missing)
{
int ret = true;
--- 320,330 ----
can't be solved.
*/
! PUBLIC bool PACKAGE::testinstall(
! PACKAGES &needs, // Other package we must install to
! // satisfy the depandancies
! SSTRINGS &missing, // Stuff not provided by any packages
! CONFLICTS &conflicts) // Already installed package providing the
! // same capabilities than this one we want to
! // install
{
int ret = true;
***************
*** 302,305 ****
--- 338,355 ----
}
}
+ n = provides.getnb();
+ PACKAGES *pkgs = new PACKAGES;
+ for (int i=0; ival[0] != '/' || file_type(s->val)!=1){
+ pkgs->neverdelete();
+ if (s->testconflicts(name.get(),*pkgs)){
+ conflicts.add (s->val,pkgs);
+ pkgs = new PACKAGES;
+ ret = false;
+ }
+ }
+ }
+ delete pkgs;
return ret;
}
***************
*** 373,376 ****
--- 423,501 ----
}
+ static bool package_showconflict (
+ CONFLICTS &conf,
+ bool &replacefiles)
+ {
+ bool ret = false;
+ replacefiles = false;
+ conf.sort();
+ DIALOG_RECORDS dia;
+ PACKAGES lookup;
+ lookup.neverdelete();
+ int nof = 0;
+ while (1){
+ if (dia.getnb()==0){
+ lookup.remove_all();
+ dia.newf_head ("",MSG_U(H_CONFLICT,"Resources/Files\tPackages\tDescriptions"));
+ dia.setbutinfo (MENU_USR1,MSG_U(B_REPLACEFILE,"Install anyway")
+ ,MSG_R(B_REPLACEFILE));
+ for (int i=0; igetobj();
+ const char *res = c->get();
+ for (int j=0; jgetnb(); j++){
+ PACKAGE *p = pkgs->getitem(j);
+ if (p->is_installed()){
+ lookup.add (p);
+ char buf[100];
+ snprintf (buf,sizeof(buf)-1,"%s\t%s",p->name.get()
+ ,p->summary.get());
+ dia.new_menuitem (res,buf);
+ res = "";
+ }
+ }
+ }
+ if (lookup.getnb()==0){
+ xconf_notice (MSG_U(N_NOMORECONFLICTS
+ ,"You have removed all the conflicting packages.\n"
+ "We can proceed to the installation now."));
+ ret = true;
+ break;
+ }
+ }
+ MENU_STATUS code = dia.editmenu (MSG_U(T_CONFLICT,"Conflict packages")
+ ,MSG_U(I_CONFLICT
+ ,"Some already installed packages provide\n"
+ "either the same files or functionalities.\n"
+ "Installing is not recommended unless you really know\n"
+ "what you are doing\n"
+ "\n"
+ "You may inspect the offending packages and even remove\n"
+ "them to solve the problem as well.")
+ ,help_conflicts
+ ,nof,MENUBUT_USR1);
+ if (code == MENU_QUIT || code == MENU_ESCAPE){
+ break;
+ }else if (code == MENU_USR1){
+ replacefiles = true;
+ ret = true;
+ break;
+ }else{
+ PACKAGE *p = lookup.getitem(nof);
+ if (p != NULL){
+ p->showinfo();
+ if (!package_is_installed(p->name.get())){
+ // The package has been removed by the user
+ // this may change the picture.
+ p->installed = 0;
+ dia.remove_all();
+ }
+ }
+ }
+ }
+ return ret;
+ }
+
+
/*
***************
*** 432,446 ****
RPM option.
*/
! PUBLIC bool PACKAGES::testinstall(bool &nodeps)
{
nodeps = false;
int n = getnb();
PACKAGES needs; // Package which must be added
SSTRINGS missing; // Requirements that prevent proper installation
// The package providing those are unknown
for (int i=0; iis_selected()){
! p->testinstall(needs,missing);
}
}
--- 557,575 ----
RPM option.
*/
! PUBLIC bool PACKAGES::testinstall(
! bool &nodeps,
! bool &replacefiles)
{
nodeps = false;
+ replacefiles = false;
int n = getnb();
PACKAGES needs; // Package which must be added
SSTRINGS missing; // Requirements that prevent proper installation
// The package providing those are unknown
+ CONFLICTS conflicts;
for (int i=0; iis_selected()){
! p->testinstall(needs,missing,conflicts);
}
}
***************
*** 448,452 ****
for (int i=0; itestinstall(needs,missing);
}
// Now remove the packages from the list
--- 577,581 ----
for (int i=0; itestinstall(needs,missing,conflicts);
}
// Now remove the packages from the list
***************
*** 492,495 ****
--- 621,626 ----
,help_requiredpkgs
,nodeps);
+ }else if (conflicts.getnb() > 0){
+ ret = package_showconflict (conflicts,replacefiles);
}else{
ret = true;
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.16r8/modules/managerpm/poolstr.cc linuxconf-1.16r9/modules/managerpm/poolstr.cc
*** linuxconf-1.16r8/modules/managerpm/poolstr.cc Thu Oct 28 12:17:37 1999
--- linuxconf-1.16r9/modules/managerpm/poolstr.cc Thu Nov 25 23:15:36 1999
***************
*** 191,200 ****
while (req != NULL){
// printf ("poolstr unintall :%s: :%s:\n",val,req->pkg->name.get());
! if (req->pkg->is_installed()){
// printf ("Failed poolstr unintall :%s: :%s:\n",val,req->pkg->name.get());
! if (needs.lookup(req->pkg)==-1) needs.add (req->pkg);
ret = false;
}
req = req->next;
}
return ret;
--- 191,227 ----
while (req != NULL){
// printf ("poolstr unintall :%s: :%s:\n",val,req->pkg->name.get());
! PACKAGE *pkg = req->pkg;
! if (pkg->is_installed()){
// printf ("Failed poolstr unintall :%s: :%s:\n",val,req->pkg->name.get());
! if (needs.lookup(pkg)==-1) needs.add (pkg);
ret = false;
}
req = req->next;
+ }
+ return ret;
+ }
+
+ /*
+ Check if one installed package supply this symbol.
+
+ Return true if at least one installed supply it.
+ */
+ PUBLIC bool STRENTRY::testconflicts(
+ const char *name, // Package which is currently tested
+ // (not in conflict with itself)
+ PACKAGES &conflicts)
+ {
+ bool ret = false;
+ LOOKUP *pro = provides;
+ // printf ("test val :%s:\n",val);
+ while (pro != NULL){
+ // printf ("poolstr unintall :%s: :%s:\n",val,req->pkg->name.get());
+ PACKAGE *pkg = pro->pkg;
+ if (pkg->is_installed() && pkg->name.cmp(name) != 0){
+ // printf ("Failed poolstr conflicts :%s: :%s:\n",val,pkg->name.get());
+ if (conflicts.lookup(pkg)==-1) conflicts.add (pkg);
+ ret = true;
+ }
+ pro = pro->next;
}
return ret;
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.16r8/modules/pppdialin/key.h linuxconf-1.16r9/modules/pppdialin/key.h
*** linuxconf-1.16r8/modules/pppdialin/key.h Thu Feb 25 23:26:37 1999
--- linuxconf-1.16r9/modules/pppdialin/key.h Thu Nov 25 15:00:04 1999
***************
*** 22,24 ****
--- 22,25 ----
static const char K_DEFPPP[]=".defppp";
static const char K_PROXYARP[]="proxyarp";
+ static const char K_FIREWALL[]="firewall";
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.16r8/modules/pppdialin/pppdialin.cc linuxconf-1.16r9/modules/pppdialin/pppdialin.cc
*** linuxconf-1.16r8/modules/pppdialin/pppdialin.cc Thu Nov 18 23:23:30 1999
--- linuxconf-1.16r9/modules/pppdialin/pppdialin.cc Thu Nov 25 15:01:53 1999
***************
*** 259,262 ****
--- 259,263 ----
char alloc_from_tty;
char proxyarp;
+ char firewall;
SSTRING dns1,dns2;
SSTRING remoteip;
***************
*** 310,313 ****
--- 311,315 ----
alloc_from_tty = 0;
proxyarp = 0;
+ firewall = 0;
idletime = 0;
maxtime = 0;
***************
*** 323,326 ****
--- 325,329 ----
alloc_from_tty = conf.getvalnum (ptname,K_ALLOCFROMTTY,0);
proxyarp = conf.getvalnum (ptname,K_PROXYARP,0);
+ firewall = conf.getvalnum (ptname,K_FIREWALL,0);
idletime = conf.getvalnum (ptname,K_IDLETIME,0);
maxtime = conf.getvalnum (ptname,K_MAXTIME,0);
***************
*** 378,381 ****
--- 381,386 ----
dia.newf_title (MSG_U(T_ROUTING,"Routing"),1,"",MSG_R(T_ROUTING));
dia.newf_chk ("",proxyarp,MSG_R(F_PROXYARP));
+ dia.newf_chk (MSG_U(F_FIREWALL,"Update"),firewall
+ ,MSG_U(I_FIREWALL,"the firewall rules"));
first_network = dia.getnb();
int nb_empty = 0;
***************
*** 430,433 ****
--- 435,439 ----
saveif (conf,K_ALLOCFROMTTY,alloc_from_tty);
saveif (conf,K_PROXYARP,proxyarp);
+ saveif (conf,K_FIREWALL,firewall);
saveif (conf,K_IDLETIME,idletime);
saveif (conf,K_MAXTIME,maxtime);
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.16r8/modules/pppdialin/pppdialin.m linuxconf-1.16r9/modules/pppdialin/pppdialin.m
*** linuxconf-1.16r8/modules/pppdialin/pppdialin.m Thu Nov 18 23:23:07 1999
--- linuxconf-1.16r9/modules/pppdialin/pppdialin.m Thu Nov 25 15:06:16 1999
***************
*** 3,7 ****
#define DICTIONARY_REQUEST \
const char **_dictionary_pppdialin;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_pppdialin("pppdialin",_dictionary_pppdialin,40,2);\
void dummy_dict_pppdialin(){}
#endif
--- 3,7 ----
#define DICTIONARY_REQUEST \
const char **_dictionary_pppdialin;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_pppdialin("pppdialin",_dictionary_pppdialin,42,2);\
void dummy_dict_pppdialin(){}
#endif
***************
*** 54,55 ****
--- 54,57 ----
#define O_USEDEFAULT 38
#define I_PPPDEV 39
+ #define F_FIREWALL 40
+ #define I_FIREWALL 41
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.16r8/modules/pppdialin/pppdialin.p linuxconf-1.16r9/modules/pppdialin/pppdialin.p
*** linuxconf-1.16r8/modules/pppdialin/pppdialin.p Thu Nov 18 23:18:49 1999
--- linuxconf-1.16r9/modules/pppdialin/pppdialin.p Thu Nov 25 15:39:16 1999
***************
*** 1,7 ****
! /* pppdialin.cc 18/11/1999 23.18.44 */
/* _dict.cc 11/04/1998 02.28.50 */
! /* pppparms.cc 12/03/1999 22.32.16 */
int ifconfig_getinfo (const char *ifname, char ipaddr[20]);
! /* ipupupd.cc 18/11/1999 23.17.22 */
void ipupupd_check (void);
int ipupupd_disconnect (const char *user);
--- 1,7 ----
! /* pppdialin.cc 25/11/1999 15.01.52 */
/* _dict.cc 11/04/1998 02.28.50 */
! /* pppparms.cc 25/11/1999 15.05.38 */
int ifconfig_getinfo (const char *ifname, char ipaddr[20]);
! /* ipupupd.cc 19/11/1999 01.41.58 */
void ipupupd_check (void);
int ipupupd_disconnect (const char *user);
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.16r8/modules/pppdialin/pppdialin.pm linuxconf-1.16r9/modules/pppdialin/pppdialin.pm
*** linuxconf-1.16r8/modules/pppdialin/pppdialin.pm Thu Nov 18 23:18:49 1999
--- linuxconf-1.16r9/modules/pppdialin/pppdialin.pm Thu Nov 25 15:39:16 1999
***************
*** 1,3 ****
! /* pppdialin.cc 18/11/1999 23.18.44 */
PUBLIC MODULE_pppdialin::MODULE_pppdialin (void);
PUBLIC void MODULE_pppdialin::setmenu (DIALOG&dia,
--- 1,3 ----
! /* pppdialin.cc 25/11/1999 15.01.52 */
PUBLIC MODULE_pppdialin::MODULE_pppdialin (void);
PUBLIC void MODULE_pppdialin::setmenu (DIALOG&dia,
***************
*** 19,24 ****
PUBLIC int PPPACCT_COMNG::deluser (PRIVILEGE *priv);
/* _dict.cc 11/04/1998 02.28.50 */
! /* pppparms.cc 12/03/1999 22.32.16 */
PUBLIC PPPINFO::PPPINFO (void);
PUBLIC void PPPINFO::load (FILE *fin, const char *name);
! /* ipupupd.cc 18/11/1999 23.17.22 */
--- 19,24 ----
PUBLIC int PPPACCT_COMNG::deluser (PRIVILEGE *priv);
/* _dict.cc 11/04/1998 02.28.50 */
! /* pppparms.cc 25/11/1999 15.05.38 */
PUBLIC PPPINFO::PPPINFO (void);
PUBLIC void PPPINFO::load (FILE *fin, const char *name);
! /* ipupupd.cc 19/11/1999 01.41.58 */
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.16r8/modules/pppdialin/pppparms.cc linuxconf-1.16r9/modules/pppdialin/pppparms.cc
*** linuxconf-1.16r8/modules/pppdialin/pppparms.cc Fri Mar 12 22:32:17 1999
--- linuxconf-1.16r9/modules/pppdialin/pppparms.cc Thu Nov 25 15:05:38 1999
***************
*** 120,123 ****
--- 120,124 ----
public:
int proxyarp;
+ int firewall;
int ppp233;
char dns1[20];
***************
*** 153,156 ****
--- 154,158 ----
ppp233 = 0;
proxyarp = 0;
+ firewall = 0;
dns1[0] = '\0';
dns2[0] = '\0';
***************
*** 219,222 ****
--- 221,225 ----
loadif (ptbuf,K_PPP233,ppp233);
loadif (ptbuf,K_PROXYARP,proxyarp);
+ loadif (ptbuf,K_FIREWALL,firewall);
loadif (ptbuf,K_ALLOCFROMTTY,allocfromtty);
loadif (ptbuf,K_IDLETIME,idletime);
***************
*** 305,308 ****
--- 308,312 ----
printf ("PPP_233=%s\n",info.ppp233 ? "yes" : "no");
printf ("PPP_PROXYARP=%s\n",info.proxyarp ? "yes" : "no");
+ printf ("PPP_FIREWALL=%s\n",info.firewall ? "yes" : "no");
printf ("PPP_DNS1=%s\n",info.dns1);
printf ("PPP_DNS2=%s\n",info.dns2);
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.16r8/modules/pppdialin/ppppostlogin linuxconf-1.16r9/modules/pppdialin/ppppostlogin
*** linuxconf-1.16r8/modules/pppdialin/ppppostlogin Thu Nov 18 23:05:04 1999
--- linuxconf-1.16r9/modules/pppdialin/ppppostlogin Thu Nov 25 15:18:57 1999
***************
*** 23,26 ****
--- 23,29 ----
fi
echo $1 >/var/run/pppdialin.$USER
+ if [ "$PPP_FIREWALL" = "yes" ] ; then
+ /bin/linuxconf --modulemain firewall --update
+ fi
fi
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.16r8/modules/pppdialin/ppppostlogout linuxconf-1.16r9/modules/pppdialin/ppppostlogout
*** linuxconf-1.16r8/modules/pppdialin/ppppostlogout Thu Nov 18 23:05:26 1999
--- linuxconf-1.16r9/modules/pppdialin/ppppostlogout Thu Nov 25 15:06:08 1999
***************
*** 14,17 ****
--- 14,20 ----
fi
rm -f /var/run/pppdialin.$USER
+ if [ "$PPP_FIREWALL" = "yes" ] ; then
+ /bin/linuxconf --modulemain firewall --update
+ fi
fi
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.16r8/modules/redhat/reduser.cc linuxconf-1.16r9/modules/redhat/reduser.cc
*** linuxconf-1.16r8/modules/redhat/reduser.cc Sun Nov 15 01:31:34 1998
--- linuxconf-1.16r9/modules/redhat/reduser.cc Thu Nov 25 01:09:46 1999
***************
*** 89,92 ****
--- 89,93 ----
ret = netconf_system_if ("chage",tmp);
}
+ netconf_closepipes();
return ret;
}
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.16r8/netconf/daemon.cc linuxconf-1.16r9/netconf/daemon.cc
*** linuxconf-1.16r8/netconf/daemon.cc Wed Nov 17 00:22:39 1999
--- linuxconf-1.16r9/netconf/daemon.cc Thu Nov 25 01:10:34 1999
***************
*** 220,224 ****
int _out,
int _err);
! void getlastmsg (void);
/*~PROTOEND~ PIPEINFO */
};
--- 220,224 ----
int _out,
int _err);
! void getlastmsg (bool dowait);
/*~PROTOEND~ PIPEINFO */
};
***************
*** 262,269 ****
! PUBLIC void PIPEINFO::getlastmsg()
{
! int waittime = 2 - (time(NULL) - date);
! if (waittime > 0) sleep (waittime);
close (in);
bool title_done = false;
--- 262,271 ----
! PUBLIC void PIPEINFO::getlastmsg(bool dowait)
{
! if (dowait){
! int waittime = 2 - (time(NULL) - date);
! if (waittime > 0) sleep (waittime);
! }
close (in);
bool title_done = false;
***************
*** 296,300 ****
// Avoid using too many file handles
// This situation only happen when setting tons of IP aliases
! if (infos.getnb() >= 70) netconf_getlastmsgs();
infos.add (new PIPEINFO (cmd,in,out,err));
}
--- 298,302 ----
// Avoid using too many file handles
// This situation only happen when setting tons of IP aliases
! if (infos.getnb() >= 30) netconf_getlastmsgs();
infos.add (new PIPEINFO (cmd,in,out,err));
}
***************
*** 302,309 ****
}
void netconf_getlastmsgs()
{
for (int i=0; igetlastmsg();
}
infos.remove_all();
--- 304,326 ----
}
+ /*
+ Close all pipes (for the last netconf_system_if) and grab late messages
+ but wait at least 2 seconds from the command startup time to make sure
+ the command has completed. See the message in bootrc::run.
+ */
void netconf_getlastmsgs()
{
for (int i=0; igetlastmsg(true);
! }
! infos.remove_all();
! }
! /*
! Close all pipes (for the last netconf_system_if) and grab late messages
! */
! void netconf_closepipes()
! {
! for (int i=0; igetlastmsg(false);
}
infos.remove_all();
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.16r8/netconf/hosts.cc linuxconf-1.16r9/netconf/hosts.cc
*** linuxconf-1.16r8/netconf/hosts.cc Thu Sep 23 15:15:56 1999
--- linuxconf-1.16r9/netconf/hosts.cc Tue Nov 23 17:09:02 1999
***************
*** 458,468 ****
// The first entry is dummy. It allows addition to the list
DIALOG_LISTE dia;
! dia.newf_head ("",MSG_U(T_HOSTHEAD,"IP number\tname & aliases"));
for (int i=0; igetname1(),pth->getothers()
,pth->getcomment());
- buf[50] = '\0';
dia.new_menuitem(pth->getipnum(),buf);
}
--- 458,467 ----
// The first entry is dummy. It allows addition to the list
DIALOG_LISTE dia;
! dia.newf_head ("",MSG_U(T_HOSTHEAD,"IP number\tname\taliases"));
for (int i=0; igetname1(),pth->getothers()
,pth->getcomment());
dia.new_menuitem(pth->getipnum(),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.16r8/netconf/netconf.p linuxconf-1.16r9/netconf/netconf.p
*** linuxconf-1.16r8/netconf/netconf.p Thu Nov 18 23:48:59 1999
--- linuxconf-1.16r9/netconf/netconf.p Thu Nov 25 01:10:34 1999
***************
*** 7,11 ****
/* calcmask.cc 26/07/1997 14.08.38 */
/* command.cc 30/04/1998 21.50.10 */
! /* daemon.cc 17/11/1999 00.22.38 */
int file_empty (const char *fpath);
void daemon_setsession (char mode);
--- 7,11 ----
/* calcmask.cc 26/07/1997 14.08.38 */
/* command.cc 30/04/1998 21.50.10 */
! /* daemon.cc 25/11/1999 01.10.28 */
int file_empty (const char *fpath);
void daemon_setsession (char mode);
***************
*** 22,25 ****
--- 22,26 ----
EXPORT int netconf_system (int timeout, const char *cmd);
void netconf_getlastmsgs (void);
+ void netconf_closepipes (void);
/* daemon1.cc 08/04/1999 15.08.14 */
void daemon_register (DAEMON_INTERNAL *dae,
***************
*** 119,123 ****
const char *netmask,
const char *device);
! /* hosts.cc 23/09/1999 15.15.56 */
void *operator new (size_t size);
char *replaceif (char *last, const char *newval);
--- 120,124 ----
const char *netmask,
const char *device);
! /* hosts.cc 23/11/1999 17.09.02 */
void *operator new (size_t size);
char *replaceif (char *last, const char *newval);
***************
*** 133,137 ****
int ifconfig_getinfo (const char *ifname, IFCONFIG_INFO&info);
/* internal.cc 03/10/1995 01.09.14 */
! /* ipalias.cc 12/09/1999 00.35.12 */
void ipalias_sethook (int (*fct_load)(const char *devname, SSTRINGS&, SSTRINGS
&),
--- 134,138 ----
int ifconfig_getinfo (const char *ifname, IFCONFIG_INFO&info);
/* internal.cc 03/10/1995 01.09.14 */
! /* ipalias.cc 22/11/1999 16.27.26 */
void ipalias_sethook (int (*fct_load)(const char *devname, SSTRINGS&, SSTRINGS
&),
***************
*** 220,224 ****
void simul_addmsg (const char *ctl, ...);
int simul_prompt (bool showdontquit);
! /* start.cc 16/09/1999 17.55.00 */
int netconf_startstop (const char *name, const char *service, int &go);
void netconf_setservhook (int (*_fct_serv_get)(SERVICES&tb),
--- 221,225 ----
void simul_addmsg (const char *ctl, ...);
int simul_prompt (bool showdontquit);
! /* start.cc 22/11/1999 11.54.06 */
int netconf_startstop (const char *name, const char *service, int &go);
void netconf_setservhook (int (*_fct_serv_get)(SERVICES&tb),
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.16r8/netconf/netconf.pe linuxconf-1.16r9/netconf/netconf.pe
*** linuxconf-1.16r8/netconf/netconf.pe Thu Nov 18 23:49:00 1999
--- linuxconf-1.16r9/netconf/netconf.pe Thu Nov 25 01:10:35 1999
***************
*** 4,8 ****
/* calcmask.cc 26/07/1997 14.08.38 */
/* command.cc 30/04/1998 21.50.10 */
! /* daemon.cc 17/11/1999 00.22.38 */
EXPORT int netconf_system (int timeout, const char *cmd);
/* daemon1.cc 08/04/1999 15.08.14 */
--- 4,8 ----
/* calcmask.cc 26/07/1997 14.08.38 */
/* command.cc 30/04/1998 21.50.10 */
! /* daemon.cc 25/11/1999 01.10.34 */
EXPORT int netconf_system (int timeout, const char *cmd);
/* daemon1.cc 08/04/1999 15.08.14 */
***************
*** 21,29 ****
/* host.cc 30/08/1999 23.44.24 */
/* hostinfo.cc 09/05/1998 13.55.28 */
! /* hosts.cc 23/09/1999 15.15.56 */
/* html_access.cc 12/09/1999 00.45.36 */
/* ifconfig.cc 19/04/1999 10.50.30 */
/* internal.cc 03/10/1995 01.09.14 */
! /* ipalias.cc 12/09/1999 00.35.12 */
/* ipx.cc 13/08/1999 11.24.30 */
/* level.cc 10/02/1998 11.08.26 */
--- 21,29 ----
/* host.cc 30/08/1999 23.44.24 */
/* hostinfo.cc 09/05/1998 13.55.28 */
! /* hosts.cc 23/11/1999 17.09.02 */
/* html_access.cc 12/09/1999 00.45.36 */
/* ifconfig.cc 19/04/1999 10.50.30 */
/* internal.cc 03/10/1995 01.09.14 */
! /* ipalias.cc 22/11/1999 16.27.26 */
/* ipx.cc 13/08/1999 11.24.30 */
/* level.cc 10/02/1998 11.08.26 */
***************
*** 56,60 ****
EXPORT int simul_ishint (void);
EXPORT int simul_ison (void);
! /* start.cc 16/09/1999 17.55.00 */
/* thishost.cc 04/04/1998 00.19.30 */
/* thishost1.cc 06/05/1998 14.17.28 */
--- 56,60 ----
EXPORT int simul_ishint (void);
EXPORT int simul_ison (void);
! /* start.cc 22/11/1999 11.54.06 */
/* thishost.cc 04/04/1998 00.19.30 */
/* thishost1.cc 06/05/1998 14.17.28 */
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.16r8/netconf/netconf.pm linuxconf-1.16r9/netconf/netconf.pm
*** linuxconf-1.16r8/netconf/netconf.pm Thu Nov 18 23:48:59 1999
--- linuxconf-1.16r9/netconf/netconf.pm Thu Nov 25 01:10:34 1999
***************
*** 41,45 ****
const char *sem_file);
PUBLIC int COMMAND::kill (int signal_num);
! /* daemon.cc 17/11/1999 00.22.38 */
PUBLIC DAEMON::DAEMON (void);
PUBLIC PIPEINFO::PIPEINFO (const char *cmd,
--- 41,45 ----
const char *sem_file);
PUBLIC int COMMAND::kill (int signal_num);
! /* daemon.cc 25/11/1999 01.10.28 */
PUBLIC DAEMON::DAEMON (void);
PUBLIC PIPEINFO::PIPEINFO (const char *cmd,
***************
*** 47,51 ****
int _out,
int _err);
! PUBLIC void PIPEINFO::getlastmsg (void);
PUBLIC PIPEINFO *PIPEINFOS::getitem (int no)const;
PUBLIC VIRTUAL int DAEMON::start (void);
--- 47,51 ----
int _out,
int _err);
! PUBLIC void PIPEINFO::getlastmsg (bool dowait);
PUBLIC PIPEINFO *PIPEINFOS::getitem (int no)const;
PUBLIC VIRTUAL int DAEMON::start (void);
***************
*** 241,245 ****
/* host.cc 30/08/1999 23.44.24 */
/* hostinfo.cc 09/05/1998 13.55.28 */
! /* hosts.cc 23/09/1999 15.15.56 */
PUBLIC void HOST::set (const char *buf);
PUBLIC HOST::HOST (const char *buf);
--- 241,245 ----
/* host.cc 30/08/1999 23.44.24 */
/* hostinfo.cc 09/05/1998 13.55.28 */
! /* hosts.cc 23/11/1999 17.09.02 */
PUBLIC void HOST::set (const char *buf);
PUBLIC HOST::HOST (const char *buf);
***************
*** 302,306 ****
/* ifconfig.cc 19/04/1999 10.50.30 */
/* internal.cc 03/10/1995 01.09.14 */
! /* ipalias.cc 12/09/1999 00.35.12 */
PRIVATE void IP_ALIAS::init (int _num,
const char *_ip,
--- 302,306 ----
/* ifconfig.cc 19/04/1999 10.50.30 */
/* internal.cc 03/10/1995 01.09.14 */
! /* ipalias.cc 22/11/1999 16.27.26 */
PRIVATE void IP_ALIAS::init (int _num,
const char *_ip,
***************
*** 414,418 ****
/* simple.cc 27/01/1999 19.05.26 */
/* simul.cc 27/08/1998 16.14.42 */
! /* start.cc 16/09/1999 17.55.00 */
PUBLIC SERVICE::SERVICE (const char *_name,
const char *_desc,
--- 414,418 ----
/* simple.cc 27/01/1999 19.05.26 */
/* simul.cc 27/08/1998 16.14.42 */
! /* start.cc 22/11/1999 11.54.06 */
PUBLIC SERVICE::SERVICE (const char *_name,
const char *_desc,
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.16r8/rpmfiles/rpm.spec-files linuxconf-1.16r9/rpmfiles/rpm.spec-files
*** linuxconf-1.16r8/rpmfiles/rpm.spec-files Mon Nov 8 11:42:44 1999
--- linuxconf-1.16r9/rpmfiles/rpm.spec-files Thu Nov 25 21:34:09 1999
***************
*** 19,22 ****
--- 19,23 ----
/bin/userconf
/sbin/modemconf
+ /sbin/managerpm
%config /bin/remadmin
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.16r8/rules.mak linuxconf-1.16r9/rules.mak
*** linuxconf-1.16r8/rules.mak Tue Nov 23 09:49:36 1999
--- linuxconf-1.16r9/rules.mak Fri Nov 26 16:15:20 1999
***************
*** 18,22 ****
CC=gcc
LINUXCONF_REV=1.16
! LINUXCONF_SUBREV=8
LINUXCONF_SUBSUBREV=0
# liblinuxconf revision
--- 18,22 ----
CC=gcc
LINUXCONF_REV=1.16
! LINUXCONF_SUBREV=9
LINUXCONF_SUBSUBREV=0
# liblinuxconf revision
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.16r8/userconf/userconf.m linuxconf-1.16r9/userconf/userconf.m
*** linuxconf-1.16r8/userconf/userconf.m Wed Sep 29 14:22:30 1999
--- linuxconf-1.16r9/userconf/userconf.m Wed Nov 24 23:46:01 1999
***************
*** 3,7 ****
#define DICTIONARY_REQUEST \
const char **_dictionary_userconf;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_userconf("userconf",_dictionary_userconf,251,14);\
void dummy_dict_userconf(){}
#endif
--- 3,7 ----
#define DICTIONARY_REQUEST \
const char **_dictionary_userconf;\
! TRANSLATE_SYSTEM_REQ _dictionary_req_userconf("userconf",_dictionary_userconf,252,14);\
void dummy_dict_userconf(){}
#endif
***************
*** 265,266 ****
--- 265,267 ----
#define E_IVLDLOGINCHAR 249
#define E_FAILCREATE 250
+ #define P_USERACCOUTS 251
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.16r8/userconf/users.cc linuxconf-1.16r9/userconf/users.cc
*** linuxconf-1.16r8/userconf/users.cc Thu Oct 14 15:28:39 1999
--- linuxconf-1.16r9/userconf/users.cc Wed Nov 24 23:45:40 1999
***************
*** 798,825 ****
{
int ret = -1;
! /* predefined, we normally need these values... */
! USRACC_FILTER filter;
! MENU_STATUS selcod = setselectprefix(filter,special,true);
! if (selcod == MENU_ADD){
! if (perm_access(priv,MSG_R(P_USERDB))){
! addone (special,NULL,NULL,priv,may_edit);
! }
! }else if (selcod == MENU_ACCEPT){
! while (1){
! MENU_STATUS code;
! int choice = 0;
! USER *usr = select (special,1,code,choice,filter);
! if (code == MENU_ESCAPE || code == MENU_QUIT){
! break;
! }else if (code == MENU_OK){
! if (usr != NULL){
! int status = editone(usr,false,priv,may_edit);
! if (status != -1){
! ret = 0;
}
- }
- }else if (perm_access(priv,MSG_R(P_USERDB))){
- if (code == MENU_ADD){
- addone (special,NULL,NULL,priv,may_edit);
}
}
--- 798,827 ----
{
int ret = -1;
! if (perm_access (priv,MSG_U(P_USERACCOUTS,"To view and edit user accounts"))){
! /* predefined, we normally need these values... */
! USRACC_FILTER filter;
! MENU_STATUS selcod = setselectprefix(filter,special,true);
! if (selcod == MENU_ADD){
! if (perm_access(priv,MSG_R(P_USERDB))){
! addone (special,NULL,NULL,priv,may_edit);
! }
! }else if (selcod == MENU_ACCEPT){
! while (1){
! MENU_STATUS code;
! int choice = 0;
! USER *usr = select (special,1,code,choice,filter);
! if (code == MENU_ESCAPE || code == MENU_QUIT){
! break;
! }else if (code == MENU_OK){
! if (usr != NULL){
! int status = editone(usr,false,priv,may_edit);
! if (status != -1){
! ret = 0;
! }
! }
! }else if (perm_access(priv,MSG_R(P_USERDB))){
! if (code == MENU_ADD){
! addone (special,NULL,NULL,priv,may_edit);
}
}
}