mbsetup now creates more default records on new systems, filesystem layout changed
This commit is contained in:
parent
a47a97e29d
commit
8fd37e8d8a
@ -4277,6 +4277,10 @@ v0.33.19 26-Oct-2001
|
||||
The AREADEF lines in golded.inc now contain the aka to use
|
||||
instead of a dot.
|
||||
Fixes for Sparc systems.
|
||||
Now logs in the normal system logfile.
|
||||
On new systems it will now also create one filearea, three
|
||||
default mail areas, a newfilereport and the groups belonging
|
||||
to these areas. Also 10 oneliners are installed.
|
||||
|
||||
mbsebbs:
|
||||
Added menu 317, change FS editor shortcut keys to (Emacs/
|
||||
|
@ -64,9 +64,24 @@ int CountFilearea(void)
|
||||
areahdr.hdrsize = sizeof(areahdr);
|
||||
areahdr.recsize = sizeof(area);
|
||||
fwrite(&areahdr, sizeof(areahdr), 1, fil);
|
||||
memset(&area, 0, sizeof(area));
|
||||
sprintf(area.Name, "Local general files");
|
||||
area.New = TRUE;
|
||||
area.Dupes = TRUE;
|
||||
area.FileFind = TRUE;
|
||||
area.AddAlpha = TRUE;
|
||||
area.FileReq = TRUE;
|
||||
area.Available = TRUE;
|
||||
area.FileFind = TRUE;
|
||||
sprintf(area.BbsGroup, "LOCAL");
|
||||
sprintf(area.NewGroup, "LOCAL");
|
||||
sprintf(area.Path, "%s/local/common", CFG.ftp_base);
|
||||
fwrite(&area, sizeof(area), 1, fil);
|
||||
fclose(fil);
|
||||
chmod(ffile, 0640);
|
||||
return 0;
|
||||
sprintf(ffile, "%s/foobar", area.Path);
|
||||
mkdirs(ffile);
|
||||
return 1;
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "../lib/records.h"
|
||||
#include "../lib/common.h"
|
||||
#include "../lib/clcomm.h"
|
||||
#include "../lib/msg.h"
|
||||
#include "screen.h"
|
||||
#include "mutil.h"
|
||||
#include "ledit.h"
|
||||
@ -58,7 +59,8 @@ int CountMsgarea(void)
|
||||
{
|
||||
FILE *fil;
|
||||
char ffile[PATH_MAX];
|
||||
int count;
|
||||
int count, i;
|
||||
struct _sysconnect syscon;
|
||||
|
||||
sprintf(ffile, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
|
||||
if ((fil = fopen(ffile, "r")) == NULL) {
|
||||
@ -69,10 +71,85 @@ int CountMsgarea(void)
|
||||
msgshdr.syssize = CFG.toss_systems * sizeof(sysconnect);
|
||||
msgshdr.lastupd = time(NULL);
|
||||
fwrite(&msgshdr, sizeof(msgshdr), 1, fil);
|
||||
/*
|
||||
* Default first message area
|
||||
*/
|
||||
memset(&msgs, 0, sizeof(msgs));
|
||||
sprintf(msgs.Name, "Local users chat");
|
||||
sprintf(msgs.Base, "%s/var/mail/local/users", getenv("MBSE_ROOT"));
|
||||
sprintf(msgs.QWKname, "LOC_USERS");
|
||||
sprintf(msgs.Group, "LOCAL");
|
||||
msgs.Active = TRUE;
|
||||
msgs.Type = LOCALMAIL;
|
||||
msgs.MsgKinds = PUBLIC;
|
||||
msgs.SYSec.level = 32000;
|
||||
msgs.UsrDelete = TRUE;
|
||||
msgs.Aliases = TRUE;
|
||||
msgs.Quotes = TRUE;
|
||||
msgs.DaysOld = CFG.defdays;
|
||||
msgs.MaxMsgs = CFG.defmsgs;
|
||||
msgs.Rfccode = CHRS_DEFAULT_RFC;
|
||||
msgs.Ftncode = CHRS_DEFAULT_FTN;
|
||||
strcpy(msgs.Origin, CFG.origin);
|
||||
fwrite(&msgs, sizeof(msgs), 1, fil);
|
||||
mkdirs(msgs.Base);
|
||||
if (Msg_Open(msgs.Base))
|
||||
Msg_Close();
|
||||
memset(&syscon, 0, sizeof(syscon));
|
||||
for (i = 1; i <= CFG.toss_systems; i++)
|
||||
fwrite(&syscon, sizeof(syscon), 1, fil);
|
||||
/*
|
||||
* Default message area for badmail
|
||||
*/
|
||||
memset(&msgs, 0, sizeof(msgs));
|
||||
sprintf(msgs.Name, "Bad mail");
|
||||
sprintf(msgs.Base, "/opt/mbse/var/mail/badmail");
|
||||
sprintf(msgs.QWKname, "BADMAIL");
|
||||
sprintf(msgs.Group, "LOCAL");
|
||||
msgs.Active = TRUE;
|
||||
msgs.Type = LOCALMAIL;
|
||||
msgs.MsgKinds = PUBLIC;
|
||||
msgs.RDSec.level = 32000;
|
||||
msgs.WRSec.level = 32000;
|
||||
msgs.SYSec.level = 32000;
|
||||
msgs.DaysOld = CFG.defdays;
|
||||
msgs.MaxMsgs = CFG.defmsgs;
|
||||
msgs.Rfccode = CHRS_DEFAULT_RFC;
|
||||
msgs.Ftncode = CHRS_DEFAULT_FTN;
|
||||
fwrite(&msgs, sizeof(msgs), 1, fil);
|
||||
mkdirs(msgs.Base);
|
||||
if (Msg_Open(msgs.Base))
|
||||
Msg_Close();
|
||||
for (i = 1; i <= CFG.toss_systems; i++)
|
||||
fwrite(&syscon, sizeof(syscon), 1, fil);
|
||||
/*
|
||||
* Default dupemail message area
|
||||
*/
|
||||
memset(&msgs, 0, sizeof(msgs));
|
||||
sprintf(msgs.Name, "Dupe mail");
|
||||
sprintf(msgs.Base, "/opt/mbse/var/mail/dupemail");
|
||||
sprintf(msgs.QWKname, "DUPEMAIL");
|
||||
sprintf(msgs.Group, "LOCAL");
|
||||
msgs.Active = TRUE;
|
||||
msgs.Type = LOCALMAIL;
|
||||
msgs.MsgKinds = PUBLIC;
|
||||
msgs.RDSec.level = 32000;
|
||||
msgs.WRSec.level = 32000;
|
||||
msgs.SYSec.level = 32000;
|
||||
msgs.DaysOld = CFG.defdays;
|
||||
msgs.MaxMsgs = CFG.defmsgs;
|
||||
msgs.Rfccode = CHRS_DEFAULT_RFC;
|
||||
msgs.Ftncode = CHRS_DEFAULT_FTN;
|
||||
fwrite(&msgs, sizeof(msgs), 1, fil);
|
||||
mkdirs(msgs.Base);
|
||||
if (Msg_Open(msgs.Base))
|
||||
for (i = 1; i <= CFG.toss_systems; i++)
|
||||
fwrite(&syscon, sizeof(syscon), 1, fil);
|
||||
|
||||
fclose(fil);
|
||||
exp_golded = TRUE;
|
||||
chmod(ffile, 0660);
|
||||
return 0;
|
||||
return 3;
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -64,9 +64,19 @@ int CountMGroup(void)
|
||||
mgrouphdr.hdrsize = sizeof(mgrouphdr);
|
||||
mgrouphdr.recsize = sizeof(mgroup);
|
||||
fwrite(&mgrouphdr, sizeof(mgrouphdr), 1, fil);
|
||||
memset(&mgroup, 0, sizeof(mgroup));
|
||||
sprintf(mgroup.Name, "NOGROUP");
|
||||
sprintf(mgroup.Comment, "Dummy group for badmail, dupemail");
|
||||
mgroup.Active = TRUE;
|
||||
fwrite(&mgroup, sizeof(mgroup), 1, fil);
|
||||
memset(&mgroup, 0, sizeof(mgroup));
|
||||
sprintf(mgroup.Name, "LOCAL");
|
||||
sprintf(mgroup.Comment, "Local mail areas");
|
||||
mgroup.Active = TRUE;
|
||||
fwrite(&mgroup, sizeof(mgroup), 1, fil);
|
||||
fclose(fil);
|
||||
chmod(ffile, 0640);
|
||||
return 0;
|
||||
return 2;
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -55,8 +55,8 @@ int NewUpdated = 0;
|
||||
int CountNewfiles(void)
|
||||
{
|
||||
FILE *fil;
|
||||
char ffile[PATH_MAX];
|
||||
int count;
|
||||
char ffile[PATH_MAX], group[13];
|
||||
int count, i;
|
||||
|
||||
sprintf(ffile, "%s/etc/newfiles.data", getenv("MBSE_ROOT"));
|
||||
if ((fil = fopen(ffile, "r")) == NULL) {
|
||||
@ -66,9 +66,26 @@ int CountNewfiles(void)
|
||||
newfileshdr.recsize = sizeof(newfiles);
|
||||
newfileshdr.grpsize = CFG.new_groups * 13;
|
||||
fwrite(&newfileshdr, sizeof(newfileshdr), 1, fil);
|
||||
memset(&newfiles, 0, sizeof(newfiles));
|
||||
|
||||
sprintf(newfiles.Comment, "General newfiles announce");
|
||||
sprintf(newfiles.Area, "%s/var/mail/local/users", getenv("MBSE_ROOT"));
|
||||
sprintf(newfiles.Origin, "%s", CFG.origin);
|
||||
sprintf(newfiles.From, "Sysop");
|
||||
sprintf(newfiles.Too, "All");
|
||||
sprintf(newfiles.Subject, "New files found");
|
||||
newfiles.Language = 'E';
|
||||
newfiles.Active = TRUE;
|
||||
newfiles.HiAscii = TRUE;
|
||||
fwrite(&newfiles, sizeof(newfiles), 1, fil);
|
||||
sprintf(group, "LOCAL");
|
||||
fwrite(&group, 13, 1, fil);
|
||||
memset(&group, 0, sizeof(group));
|
||||
for (i = 1; i < CFG.new_groups; i++)
|
||||
fwrite(&group, 13, 1, fil);
|
||||
fclose(fil);
|
||||
chmod(ffile, 0640);
|
||||
return 0;
|
||||
return 1;
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -62,9 +62,19 @@ int CountNGroup(void)
|
||||
ngrouphdr.hdrsize = sizeof(ngrouphdr);
|
||||
ngrouphdr.recsize = sizeof(ngroup);
|
||||
fwrite(&ngrouphdr, sizeof(ngrouphdr), 1, fil);
|
||||
memset(&ngroup, 0, sizeof(ngroup));
|
||||
sprintf(ngroup.Name, "DONT");
|
||||
sprintf(ngroup.Comment, "Do NOT announce");
|
||||
ngroup.Active = TRUE;
|
||||
fwrite(&ngroup, sizeof(ngroup), 1, fil);
|
||||
memset(&ngroup, 0, sizeof(ngroup));
|
||||
sprintf(ngroup.Name, "LOCAL");
|
||||
sprintf(ngroup.Comment, "Local file areas");
|
||||
ngroup.Active = TRUE;
|
||||
fwrite(&ngroup, sizeof(ngroup), 1, fil);
|
||||
fclose(fil);
|
||||
chmod(ffile, 0640);
|
||||
return 0;
|
||||
return 2;
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -53,6 +53,13 @@ int CountOneline(void)
|
||||
FILE *fil;
|
||||
char ffile[PATH_MAX];
|
||||
int count;
|
||||
struct tm *l_date;
|
||||
char buf[12];
|
||||
time_t Time;
|
||||
|
||||
Time = time(NULL);
|
||||
l_date = localtime(&Time);
|
||||
sprintf(buf, "%02d-%02d-%04d", l_date->tm_mday, l_date->tm_mon+1, l_date->tm_year+1900);
|
||||
|
||||
sprintf(ffile, "%s/etc/oneline.data", getenv("MBSE_ROOT"));
|
||||
if ((fil = fopen(ffile, "r")) == NULL) {
|
||||
@ -61,9 +68,33 @@ int CountOneline(void)
|
||||
olhdr.hdrsize = sizeof(olhdr);
|
||||
olhdr.recsize = sizeof(ol);
|
||||
fwrite(&olhdr, sizeof(olhdr), 1, fil);
|
||||
memset(&ol, 0, sizeof(ol));
|
||||
sprintf(ol.UserName, "Sysop");
|
||||
sprintf(ol.DateOfEntry, "%s", buf);
|
||||
ol.Available = TRUE;
|
||||
sprintf(ol.Oneline, "\"640K ought to be enough for anybody.\" Bill Gates '81");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "\"Build a watch in 179 easy steps\" by C. Forsberg.");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "\"Keyboard? How quaint!\" - Scotty");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "\"Luke... Luke... Use the MOUSE, Luke\" - Obi Wan Gates");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "\"Suicide Hotline...please hold.\"");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "(A)bort, (R)etry, (P)retend this never happened...");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "A Smith & Wesson *ALWAYS* beats 4 Aces.");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "A dirty book is rarely dusty.");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "An Elephant; A Mouse built to government specifications.");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
sprintf(ol.Oneline, "At a store: In God we trust; all others pay cash.");
|
||||
fwrite(&ol, sizeof(ol), 1, fil);
|
||||
fclose(fil);
|
||||
chmod(ffile, 0660);
|
||||
return 0;
|
||||
return 10;
|
||||
} else
|
||||
return -1;
|
||||
}
|
||||
|
@ -398,12 +398,12 @@ int main(int argc, char *argv[])
|
||||
exit(1);
|
||||
}
|
||||
|
||||
InitClient(pw->pw_name, (char *)"mbsetup", (char *)"nowhere", (char *)"mbsetup.log", 0x1f, (char *)"error.log");
|
||||
|
||||
/*
|
||||
* Read the global configuration data
|
||||
* Read the global configuration data, registrate connection
|
||||
*/
|
||||
config_check(getenv("MBSE_ROOT"));
|
||||
config_read();
|
||||
InitClient(pw->pw_name, (char *)"mbsetup", CFG.location, CFG.logfile, 0x1f, CFG.error_log);
|
||||
|
||||
/*
|
||||
* Setup several signals so when the program terminate's it
|
||||
|
Reference in New Issue
Block a user