Updates for html doc creation
This commit is contained in:
parent
da55a193dd
commit
2d0487d87d
@ -5,6 +5,14 @@ v0.51.3 22-Mar-2003
|
||||
mbtask:
|
||||
Signal handler for sigchld set to sig_dfl, test for Fedora.
|
||||
|
||||
mbsetup:
|
||||
Added experimental sitedoc creation in html format.
|
||||
The advantage of html over the old plain doc is to easy see
|
||||
crossreferences using hyperlinks.
|
||||
The html files are created in /opt/mbse/doc/html.
|
||||
The ~/doc/xref.doc and ~/doc/stat.doc are not created anymore,
|
||||
there was nothing in it yet.
|
||||
|
||||
|
||||
v0.51.2 06-Mar-2004 - 22-Mar-2003
|
||||
|
||||
|
@ -22,7 +22,7 @@ OBJS = grlist.o m_domain.o m_fgroup.o m_lang.o m_marea.o m_new.o m_protocol.o \
|
||||
m_magic.o m_mgroup.o m_node.o m_task.o m_users.o screen.o m_bbs.o m_ff.o \
|
||||
m_hatch.o m_mail.o m_modem.o m_ol.o m_tic.o m_virus.o stlist.o m_bbslist.o \
|
||||
m_route.o
|
||||
LIBS += ../lib/libmbse.a ../lib/libmsgbase.a ../lib/libdbase.a
|
||||
LIBS += ../lib/libmbse.a ../lib/libmsgbase.a ../lib/libdbase.a ../lib/libdiesel.a
|
||||
OTHER = Makefile
|
||||
|
||||
#############################################################################
|
||||
@ -88,10 +88,10 @@ m_menu.o: ../config.h ../lib/mbselib.h mutil.h screen.h ledit.h m_lang.h m_menu.
|
||||
m_ngroup.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_global.h m_ngroup.h
|
||||
m_service.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_global.h m_service.h
|
||||
m_tty.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_modem.h m_global.h m_tty.h
|
||||
mutil.o: ../config.h ../lib/mbselib.h screen.h mutil.h
|
||||
mutil.o: ../config.h ../lib/mbselib.h ../lib/diesel.h screen.h mutil.h
|
||||
m_archive.o: ../config.h ../lib/mbselib.h ../paths.h screen.h mutil.h ledit.h stlist.h m_global.h m_archive.h
|
||||
m_fdb.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h m_global.h m_farea.h m_fdb.h
|
||||
m_global.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h m_node.h m_marea.h m_ticarea.h m_new.h m_fgroup.h m_mgroup.h m_global.h
|
||||
m_global.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h m_node.h m_marea.h m_ticarea.h m_new.h m_fgroup.h m_mgroup.h m_limits.h m_global.h
|
||||
m_magic.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_ticarea.h m_global.h m_magic.h
|
||||
m_mgroup.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h stlist.h m_global.h m_node.h m_marea.h m_mgroup.h
|
||||
m_node.o: ../config.h ../lib/mbselib.h screen.h mutil.h ledit.h grlist.h stlist.h m_global.h m_lang.h m_ticarea.h m_marea.h m_node.h
|
||||
|
@ -781,8 +781,8 @@ char *PickArchive(char *shdr)
|
||||
int archive_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
FILE *arch;
|
||||
int j;
|
||||
FILE *arch, *wp, *ip;
|
||||
int i, j;
|
||||
|
||||
sprintf(temp, "%s/etc/archiver.data", getenv("MBSE_ROOT"));
|
||||
if ((arch = fopen(temp, "r")) == NULL)
|
||||
@ -790,7 +790,11 @@ int archive_doc(FILE *fp, FILE *toc, int page)
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 3, 0, page, (char *)"Archiver programs");
|
||||
j = 0;
|
||||
i = j = 0;
|
||||
|
||||
ip = open_webdoc((char *)"archivers.html", (char *)"Archivers", NULL);
|
||||
fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(ip, "<UL>\n");
|
||||
|
||||
fprintf(fp, "\n\n");
|
||||
fread(&archiverhdr, sizeof(archiverhdr), 1, arch);
|
||||
@ -802,6 +806,31 @@ int archive_doc(FILE *fp, FILE *toc, int page)
|
||||
j = 0;
|
||||
}
|
||||
|
||||
i++;
|
||||
|
||||
sprintf(temp, "archiver_%d.html", i);
|
||||
if ((wp = open_webdoc(temp, (char *)"Archiver", archiver.comment))) {
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"archivers.html\">Back</A>\n");
|
||||
fprintf(wp, "<P>\n");
|
||||
fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='50%%'><COL width='50%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"Short name", archiver.name);
|
||||
add_webtable(wp, (char *)"Available", getboolean(archiver.available));
|
||||
add_webtable(wp, (char *)"Pack files", archiver.farc);
|
||||
add_webtable(wp, (char *)"Pack mail", archiver.marc);
|
||||
add_webtable(wp, (char *)"Pack banners", archiver.barc);
|
||||
add_webtable(wp, (char *)"Test archive", archiver.tarc);
|
||||
add_webtable(wp, (char *)"Unpack files", archiver.funarc);
|
||||
add_webtable(wp, (char *)"Unpack mail", archiver.munarc);
|
||||
add_webtable(wp, (char *)"Get FILE_ID.DIZ", archiver.iunarc);
|
||||
add_webtable(wp, (char *)"List archive", archiver.varc);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
close_webdoc(wp);
|
||||
}
|
||||
fprintf(ip, "<LI><A HREF=\"%s\">%s</A></LI>\n", temp, archiver.comment);
|
||||
|
||||
fprintf(fp, " Comment %s\n", archiver.comment);
|
||||
fprintf(fp, " Short name %s\n", archiver.name);
|
||||
fprintf(fp, " Available %s\n", getboolean(archiver.available));
|
||||
@ -818,6 +847,8 @@ int archive_doc(FILE *fp, FILE *toc, int page)
|
||||
}
|
||||
|
||||
fclose(arch);
|
||||
fprintf(ip, "</UL>\n");
|
||||
close_webdoc(ip);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
@ -92,16 +92,31 @@ void bbs_menu(void)
|
||||
|
||||
int bbs_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 8, 0, page, (char *)"BBS setup");
|
||||
FILE *wp;
|
||||
|
||||
if ((wp = open_webdoc((char *)"bbs.html", (char *)"BBS Setup", NULL))) {
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(wp, "<UL>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"limits.html\">Security Limits</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"language.html\">Language Setup</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"menus.html\">BBS Menus</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"fileareas.html\">File Areas</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"protocols.html\">Transfer Protocols</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"oneliners.html\">Oneliners</A></LI>\n");
|
||||
fprintf(wp, "</UL>\n");
|
||||
fclose(wp);
|
||||
}
|
||||
|
||||
page = bbs_limits_doc(fp, toc, page);
|
||||
page = bbs_lang_doc(fp, toc, page);
|
||||
page = bbs_menu_doc(fp, toc, page);
|
||||
page = bbs_file_doc(fp, toc, page);
|
||||
page = bbs_prot_doc(fp, toc, page);
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 8, 0, page, (char *)"BBS setup");
|
||||
|
||||
return page;
|
||||
page = bbs_limits_doc(fp, toc, page);
|
||||
page = bbs_lang_doc(fp, toc, page);
|
||||
page = bbs_menu_doc(fp, toc, page);
|
||||
page = bbs_file_doc(fp, toc, page);
|
||||
page = bbs_prot_doc(fp, toc, page);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -464,7 +464,7 @@ void InitDomain(void)
|
||||
int domain_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
FILE *no;
|
||||
FILE *no, *wp;
|
||||
int j;
|
||||
|
||||
sprintf(temp, "%s/etc/domain.data", getenv("MBSE_ROOT"));
|
||||
@ -475,6 +475,14 @@ int domain_doc(FILE *fp, FILE *toc, int page)
|
||||
addtoc(fp, toc, 15, 0, page, (char *)"Domain manager");
|
||||
j = 0;
|
||||
|
||||
wp = open_webdoc((char *)"domain.html", (char *)"Domain Translation", NULL);
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(wp, "<P>\n");
|
||||
fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
// fprintf(wp, "<COL width='40%%'><COL width='40%%'><COL width='20%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
fprintf(wp, "<TR><TH align='left'>Fidonet</TH><TH align='left'>Internet</TH><TH align='left'>Active</TH></TR>\n");
|
||||
|
||||
fprintf(fp, "\n");
|
||||
fprintf(fp, " Fidonet Internet Active\n");
|
||||
fprintf(fp, " ------------------------------ ------------------------------ ------\n");
|
||||
@ -490,10 +498,15 @@ int domain_doc(FILE *fp, FILE *toc, int page)
|
||||
j = 0;
|
||||
}
|
||||
|
||||
fprintf(wp, "<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n",
|
||||
domtrans.ftndom, domtrans.intdom, getboolean(domtrans.Active));
|
||||
fprintf(fp, " %-30s %-30s %s\n", domtrans.ftndom, domtrans.intdom, getboolean(domtrans.Active));
|
||||
j++;
|
||||
}
|
||||
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
close_webdoc(wp);
|
||||
fclose(no);
|
||||
return page;
|
||||
}
|
||||
|
@ -754,60 +754,109 @@ void InitFilearea(void)
|
||||
|
||||
int bbs_file_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
FILE *no;
|
||||
int i = 0, j = 0;
|
||||
char temp[PATH_MAX];
|
||||
FILE *wp, *ip, *no;
|
||||
int i = 0, j = 0;
|
||||
|
||||
sprintf(temp, "%s/etc/fareas.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
|
||||
fread(&areahdr, sizeof(areahdr), 1, no);
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 8, 4, page, (char *)"BBS File areas");
|
||||
|
||||
while ((fread(&area, areahdr.recsize, 1, no)) == 1) {
|
||||
|
||||
i++;
|
||||
if (area.Available) {
|
||||
|
||||
if (j == 1) {
|
||||
page = newpage(fp, page);
|
||||
j = 0;
|
||||
} else {
|
||||
j++;
|
||||
}
|
||||
fprintf(fp, "\n\n");
|
||||
fprintf(fp, " Area number %d\n", i);
|
||||
fprintf(fp, " Area name %s\n", area.Name);
|
||||
fprintf(fp, " Files path %s\n", area.Path);
|
||||
fprintf(fp, " Download sec. %s\n", get_secstr(area.DLSec));
|
||||
fprintf(fp, " Upload security %s\n", get_secstr(area.UPSec));
|
||||
fprintf(fp, " List seccurity %s\n", get_secstr(area.LTSec));
|
||||
fprintf(fp, " Path to files.bbs %s\n", area.FilesBbs);
|
||||
fprintf(fp, " Newfiles scan %s\n", getboolean(area.New));
|
||||
fprintf(fp, " Check upl. dupes %s\n", getboolean(area.Dupes));
|
||||
fprintf(fp, " Files are free %s\n", getboolean(area.Free));
|
||||
fprintf(fp, " Allow direct DL %s\n", getboolean(area.DirectDL));
|
||||
fprintf(fp, " Allow pwd upl. %s\n", getboolean(area.PwdUP));
|
||||
fprintf(fp, " Filefind on %s\n", getboolean(area.FileFind));
|
||||
fprintf(fp, " Add files sorted %s\n", getboolean(area.AddAlpha));
|
||||
fprintf(fp, " Files in CDROM %s\n", getboolean(area.CDrom));
|
||||
fprintf(fp, " Allow filerequst %s\n", getboolean(area.FileReq));
|
||||
fprintf(fp, " BBS group %s\n", area.BbsGroup);
|
||||
fprintf(fp, " Newfiles group %s\n", area.NewGroup);
|
||||
fprintf(fp, " Minimum age %d\n", area.Age);
|
||||
fprintf(fp, " Area password %s\n", area.Password);
|
||||
fprintf(fp, " Kill DL days %d\n", area.DLdays);
|
||||
fprintf(fp, " Kill FD days %d\n", area.FDdays);
|
||||
fprintf(fp, " Move to area %d\n", area.MoveArea);
|
||||
fprintf(fp, " Archiver %s\n", area.Archiver);
|
||||
fprintf(fp, " Upload area %d\n", area.Upload);
|
||||
}
|
||||
}
|
||||
|
||||
fclose(no);
|
||||
sprintf(temp, "%s/etc/fareas.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
|
||||
fread(&areahdr, sizeof(areahdr), 1, no);
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 8, 4, page, (char *)"BBS File areas");
|
||||
|
||||
ip = open_webdoc((char *)"fileareas.html", (char *)"File Areas", NULL);
|
||||
fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(ip, "<UL>\n");
|
||||
|
||||
while ((fread(&area, areahdr.recsize, 1, no)) == 1) {
|
||||
|
||||
i++;
|
||||
if (area.Available) {
|
||||
|
||||
if (j == 1) {
|
||||
page = newpage(fp, page);
|
||||
j = 0;
|
||||
} else {
|
||||
j++;
|
||||
}
|
||||
|
||||
sprintf(temp, "filearea_%d.html", i);
|
||||
|
||||
fprintf(ip, " <LI><A HREF=\"%s\">%3d %s</A></LI>\n", temp, i, area.Name);
|
||||
if ((wp = open_webdoc(temp, (char *)"File area", area.Name))) {
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"fileareas.html\">Back</A>\n");
|
||||
fprintf(wp, "<P>\n");
|
||||
fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='50%%'><COL width='50%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webdigit(wp, (char *)"Area number", i);
|
||||
add_webtable(wp, (char *)"Area name", area.Name);
|
||||
add_webtable(wp, (char *)"Files path", area.Path);
|
||||
web_secflags(wp, (char *)"Download security", area.DLSec);
|
||||
web_secflags(wp, (char *)"Upload security", area.UPSec);
|
||||
web_secflags(wp, (char *)"List security", area.LTSec);
|
||||
add_webtable(wp, (char *)"Path to files.bbs", area.FilesBbs);
|
||||
add_webtable(wp, (char *)"Newfiles scan", getboolean(area.New));
|
||||
add_webtable(wp, (char *)"Check upload dupes", getboolean(area.Dupes));
|
||||
add_webtable(wp, (char *)"Files are free", getboolean(area.Free));
|
||||
add_webtable(wp, (char *)"Allow direct download", getboolean(area.DirectDL));
|
||||
add_webtable(wp, (char *)"Allow password uploads", getboolean(area.PwdUP));
|
||||
add_webtable(wp, (char *)"Filefind on", getboolean(area.FileFind));
|
||||
add_webtable(wp, (char *)"Add files sorted", getboolean(area.AddAlpha));
|
||||
add_webtable(wp, (char *)"Files on CDrom", getboolean(area.CDrom));
|
||||
add_webtable(wp, (char *)"Allow filerequest", getboolean(area.FileReq));
|
||||
fprintf(wp, "<TR><TH align='left'>BBS (tic) file group</TH><TD><A HREF=\"filegroup_%s.html\">%s</A></TD></TH>\n",
|
||||
area.BbsGroup, area.BbsGroup);
|
||||
fprintf(wp, "<TR><TH align='left'>Newfiles announce group</TH><TD><A HREF=\"newfilegroup_%s.html\">%s</A></TD></TH>\n",
|
||||
area.NewGroup, area.NewGroup);
|
||||
add_webdigit(wp, (char *)"Minimum age for access", area.Age);
|
||||
add_webtable(wp, (char *)"Area password", area.Password);
|
||||
add_webdigit(wp, (char *)"Kill Download days", area.DLdays);
|
||||
add_webdigit(wp, (char *)"Kill FileDate days", area.FDdays);
|
||||
add_webdigit(wp, (char *)"Move to area", area.MoveArea);
|
||||
add_webtable(wp, (char *)"Archiver", area.Archiver);
|
||||
add_webdigit(wp, (char *)"Upload area", area.Upload);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
close_webdoc(wp);
|
||||
}
|
||||
|
||||
fprintf(fp, "\n\n");
|
||||
fprintf(fp, " Area number %d\n", i);
|
||||
fprintf(fp, " Area name %s\n", area.Name);
|
||||
fprintf(fp, " Files path %s\n", area.Path);
|
||||
fprintf(fp, " Download sec. %s\n", get_secstr(area.DLSec));
|
||||
fprintf(fp, " Upload security %s\n", get_secstr(area.UPSec));
|
||||
fprintf(fp, " List seccurity %s\n", get_secstr(area.LTSec));
|
||||
fprintf(fp, " Path to files.bbs %s\n", area.FilesBbs);
|
||||
fprintf(fp, " Newfiles scan %s\n", getboolean(area.New));
|
||||
fprintf(fp, " Check upl. dupes %s\n", getboolean(area.Dupes));
|
||||
fprintf(fp, " Files are free %s\n", getboolean(area.Free));
|
||||
fprintf(fp, " Allow direct DL %s\n", getboolean(area.DirectDL));
|
||||
fprintf(fp, " Allow pwd upl. %s\n", getboolean(area.PwdUP));
|
||||
fprintf(fp, " Filefind on %s\n", getboolean(area.FileFind));
|
||||
fprintf(fp, " Add files sorted %s\n", getboolean(area.AddAlpha));
|
||||
fprintf(fp, " Files in CDROM %s\n", getboolean(area.CDrom));
|
||||
fprintf(fp, " Allow filerequst %s\n", getboolean(area.FileReq));
|
||||
fprintf(fp, " BBS group %s\n", area.BbsGroup);
|
||||
fprintf(fp, " Newfiles group %s\n", area.NewGroup);
|
||||
fprintf(fp, " Minimum age %d\n", area.Age);
|
||||
fprintf(fp, " Area password %s\n", area.Password);
|
||||
fprintf(fp, " Kill DL days %d\n", area.DLdays);
|
||||
fprintf(fp, " Kill FD days %d\n", area.FDdays);
|
||||
fprintf(fp, " Move to area %d\n", area.MoveArea);
|
||||
fprintf(fp, " Archiver %s\n", area.Archiver);
|
||||
fprintf(fp, " Upload area %d\n", area.Upload);
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(ip, "</UL>\n");
|
||||
close_webdoc(ip);
|
||||
|
||||
fclose(no);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -432,46 +432,79 @@ void InitFilefind(void)
|
||||
|
||||
int ff_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
FILE *no;
|
||||
int j;
|
||||
char temp[PATH_MAX];
|
||||
FILE *wp, *ip, *no;
|
||||
int i = 0, j;
|
||||
|
||||
sprintf(temp, "%s/etc/scanmgr.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
sprintf(temp, "%s/etc/scanmgr.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 13, 0, page, (char *)"Filefind areas");
|
||||
j = 0;
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 13, 0, page, (char *)"Filefind areas");
|
||||
j = 0;
|
||||
|
||||
fprintf(fp, "\n\n");
|
||||
fread(&scanmgrhdr, sizeof(scanmgrhdr), 1, no);
|
||||
fprintf(fp, "\n\n");
|
||||
fread(&scanmgrhdr, sizeof(scanmgrhdr), 1, no);
|
||||
|
||||
while ((fread(&scanmgr, scanmgrhdr.recsize, 1, no)) == 1) {
|
||||
ip = open_webdoc((char *)"filefind.html", (char *)"Filefind Areas", NULL);
|
||||
fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(ip, "<UL>\n");
|
||||
|
||||
if (j == 4) {
|
||||
page = newpage(fp, page);
|
||||
fprintf(fp, "\n");
|
||||
j = 0;
|
||||
}
|
||||
while ((fread(&scanmgr, scanmgrhdr.recsize, 1, no)) == 1) {
|
||||
|
||||
fprintf(fp, " Area comment %s\n", scanmgr.Comment);
|
||||
fprintf(fp, " Origin line %s\n", scanmgr.Origin);
|
||||
fprintf(fp, " Aka to use %s\n", aka2str(scanmgr.Aka));
|
||||
fprintf(fp, " Scan msg board %s\n", scanmgr.ScanBoard);
|
||||
fprintf(fp, " Reply msg board %s\n", scanmgr.ReplBoard);
|
||||
fprintf(fp, " Language %c\n", scanmgr.Language);
|
||||
fprintf(fp, " Template file %s\n", scanmgr.template);
|
||||
fprintf(fp, " Active %s\n", getboolean(scanmgr.Active));
|
||||
fprintf(fp, " Netmail reply %s\n", getboolean(scanmgr.NetReply));
|
||||
fprintf(fp, " Allow Hi-ASCII %s\n", getboolean(scanmgr.HiAscii));
|
||||
fprintf(fp, " Keyword length %d\n", scanmgr.keywordlen);
|
||||
fprintf(fp, "\n\n");
|
||||
j++;
|
||||
i++;
|
||||
if (j == 4) {
|
||||
page = newpage(fp, page);
|
||||
fprintf(fp, "\n");
|
||||
j = 0;
|
||||
}
|
||||
|
||||
fclose(no);
|
||||
return page;
|
||||
sprintf(temp, "filefind_%d.html", i);
|
||||
fprintf(ip, " <LI><A HREF=\"%s\">%3d %s</A></LI>\n", temp, i, scanmgr.Comment);
|
||||
if ((wp = open_webdoc(temp, (char *)"Filefind Area", scanmgr.Comment))) {
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"filefind.html\">Back</A>\n");
|
||||
fprintf(wp, "<P>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"Area comment", scanmgr.Comment);
|
||||
add_webtable(wp, (char *)"Origin line", scanmgr.Origin);
|
||||
add_webtable(wp, (char *)"Aka to use", aka2str(scanmgr.Aka));
|
||||
add_webtable(wp, (char *)"Scan msg board", scanmgr.ScanBoard);
|
||||
add_webtable(wp, (char *)"Reply msg board", scanmgr.ReplBoard);
|
||||
sprintf(temp, "%c", scanmgr.Language);
|
||||
add_webtable(wp, (char *)"Language", temp);
|
||||
add_webtable(wp, (char *)"Template file", scanmgr.template);
|
||||
add_webtable(wp, (char *)"Active", getboolean(scanmgr.Active));
|
||||
add_webtable(wp, (char *)"Netmail reply", getboolean(scanmgr.NetReply));
|
||||
add_webtable(wp, (char *)"Allow Hi-ASCII", getboolean(scanmgr.HiAscii));
|
||||
add_webdigit(wp, (char *)"Keyword length", scanmgr.keywordlen);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
close_webdoc(wp);
|
||||
}
|
||||
|
||||
fprintf(fp, " Area comment %s\n", scanmgr.Comment);
|
||||
fprintf(fp, " Origin line %s\n", scanmgr.Origin);
|
||||
fprintf(fp, " Aka to use %s\n", aka2str(scanmgr.Aka));
|
||||
fprintf(fp, " Scan msg board %s\n", scanmgr.ScanBoard);
|
||||
fprintf(fp, " Reply msg board %s\n", scanmgr.ReplBoard);
|
||||
fprintf(fp, " Language %c\n", scanmgr.Language);
|
||||
fprintf(fp, " Template file %s\n", scanmgr.template);
|
||||
fprintf(fp, " Active %s\n", getboolean(scanmgr.Active));
|
||||
fprintf(fp, " Netmail reply %s\n", getboolean(scanmgr.NetReply));
|
||||
fprintf(fp, " Allow Hi-ASCII %s\n", getboolean(scanmgr.HiAscii));
|
||||
fprintf(fp, " Keyword length %d\n", scanmgr.keywordlen);
|
||||
fprintf(fp, "\n\n");
|
||||
j++;
|
||||
}
|
||||
|
||||
fprintf(ip, "</UL>\n");
|
||||
close_webdoc(ip);
|
||||
|
||||
fclose(no);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -682,68 +682,125 @@ char *PickFGroup(char *shdr)
|
||||
|
||||
int tic_group_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char *temp;
|
||||
FILE *no;
|
||||
int First = TRUE;;
|
||||
char *temp;
|
||||
FILE *wp, *ip, *no;
|
||||
int First = TRUE;;
|
||||
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
sprintf(temp, "%s/etc/fgroups.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL) {
|
||||
free(temp);
|
||||
return page;
|
||||
}
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
sprintf(temp, "%s/etc/fgroups.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL) {
|
||||
free(temp);
|
||||
return page;
|
||||
}
|
||||
|
||||
fread(&fgrouphdr, sizeof(fgrouphdr), 1, no);
|
||||
fseek(no, 0, SEEK_SET);
|
||||
fread(&fgrouphdr, fgrouphdr.hdrsize, 1, no);
|
||||
fread(&fgrouphdr, sizeof(fgrouphdr), 1, no);
|
||||
fseek(no, 0, SEEK_SET);
|
||||
fread(&fgrouphdr, fgrouphdr.hdrsize, 1, no);
|
||||
|
||||
while ((fread(&fgroup, fgrouphdr.recsize, 1, no)) == 1) {
|
||||
if (First) {
|
||||
addtoc(fp, toc, 10, 1, page, (char *)"File processing groups");
|
||||
First = FALSE;
|
||||
fprintf(fp, "\n");
|
||||
} else {
|
||||
page = newpage(fp, page);
|
||||
fprintf(fp, "\n\n");
|
||||
}
|
||||
|
||||
fprintf(fp, " Group name %s\n", fgroup.Name);
|
||||
fprintf(fp, " Comment %s\n", fgroup.Comment);
|
||||
fprintf(fp, " Active %s\n", getboolean(fgroup.Active));
|
||||
fprintf(fp, " Use Aka %s\n", aka2str(fgroup.UseAka));
|
||||
fprintf(fp, " Uplink %s\n", aka2str(fgroup.UpLink));
|
||||
fprintf(fp, " Areas file %s\n", fgroup.AreaFile);
|
||||
fprintf(fp, " Start area %ld\n", fgroup.StartArea);
|
||||
fprintf(fp, " Banner file %s\n", fgroup.Banner);
|
||||
fprintf(fp, " Def. archiver %s\n", fgroup.Convert);
|
||||
fprintf(fp, " Filegate fmt %s\n", getboolean(fgroup.FileGate));
|
||||
fprintf(fp, " Auto change %s\n", getboolean(fgroup.AutoChange));
|
||||
fprintf(fp, " User change %s\n", getboolean(fgroup.UserChange));
|
||||
fprintf(fp, " Allow replace %s\n", getboolean(fgroup.Replace));
|
||||
fprintf(fp, " Dupe checking %s\n", getboolean(fgroup.DupCheck));
|
||||
fprintf(fp, " Secure %s\n", getboolean(fgroup.Secure));
|
||||
fprintf(fp, " Touch dates %s\n", getboolean(fgroup.Touch));
|
||||
fprintf(fp, " Virus scan %s\n", getboolean(fgroup.VirScan));
|
||||
fprintf(fp, " Announce %s\n", getboolean(fgroup.Announce));
|
||||
fprintf(fp, " Update magics %s\n", getboolean(fgroup.UpdMagic));
|
||||
fprintf(fp, " FILE_ID.DIZ %s\n", getboolean(fgroup.FileId));
|
||||
fprintf(fp, " Convert all %s\n", getboolean(fgroup.ConvertAll));
|
||||
fprintf(fp, " Send original %s\n", getboolean(fgroup.SendOrg));
|
||||
fprintf(fp, " Base path %s\n", fgroup.BasePath);
|
||||
fprintf(fp, " Download sec. %s\n", get_secstr(fgroup.DLSec));
|
||||
fprintf(fp, " Upload sec. %s\n", get_secstr(fgroup.UPSec));
|
||||
fprintf(fp, " List security %s\n", get_secstr(fgroup.LTSec));
|
||||
fprintf(fp, " Def. tic sec. %s\n", getflag(fgroup.LinkSec.flags, fgroup.LinkSec.notflags));
|
||||
fprintf(fp, " BBS group %s\n", fgroup.BbsGroup);
|
||||
fprintf(fp, " Announce group %s\n", fgroup.AnnGroup);
|
||||
fprintf(fp, " Upload area %d\n", fgroup.Upload);
|
||||
fprintf(fp, " Start date %s", ctime(&fgroup.StartDate));
|
||||
fprintf(fp, " Last date %s\n", ctime(&fgroup.LastDate));
|
||||
ip = open_webdoc((char *)"filegroup.html", (char *)"File Groups", NULL);
|
||||
fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(ip, "<UL>\n");
|
||||
|
||||
while ((fread(&fgroup, fgrouphdr.recsize, 1, no)) == 1) {
|
||||
if (First) {
|
||||
addtoc(fp, toc, 10, 1, page, (char *)"File processing groups");
|
||||
First = FALSE;
|
||||
fprintf(fp, "\n");
|
||||
} else {
|
||||
page = newpage(fp, page);
|
||||
fprintf(fp, "\n\n");
|
||||
}
|
||||
|
||||
fclose(no);
|
||||
return page;
|
||||
sprintf(temp, "filegroup_%s.html", fgroup.Name);
|
||||
fprintf(ip, " <LI><A HREF=\"%s\">%s</A> %s</LI>\n", temp, fgroup.Name, fgroup.Comment);
|
||||
|
||||
if ((wp = open_webdoc(temp, (char *)"File group", fgroup.Comment))) {
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"filegroup.html\">Back</A>\n");
|
||||
fprintf(wp, "<P>\n");
|
||||
fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='50%%'><COL width='50%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"Group name", fgroup.Name);
|
||||
add_webtable(wp, (char *)"Comment", fgroup.Comment);
|
||||
add_webtable(wp, (char *)"Active", getboolean(fgroup.Active));
|
||||
add_webtable(wp, (char *)"Use Aka", aka2str(fgroup.UseAka));
|
||||
add_webtable(wp, (char *)"Uplink Aka", aka2str(fgroup.UpLink));
|
||||
add_webtable(wp, (char *)"Areas file", fgroup.AreaFile);
|
||||
sprintf(temp, "%ld", fgroup.StartArea);
|
||||
add_webtable(wp, (char *)"Start autocreate BBS area", temp);
|
||||
add_webtable(wp, (char *)"Banner file", fgroup.Banner);
|
||||
add_webtable(wp, (char *)"Default archiver", fgroup.Convert);
|
||||
add_webtable(wp, (char *)"Area file in Filegate format", getboolean(fgroup.FileGate));
|
||||
add_webtable(wp, (char *)"Auto change areas", getboolean(fgroup.AutoChange));
|
||||
add_webtable(wp, (char *)"User (downlink) change areas", getboolean(fgroup.UserChange));
|
||||
add_webtable(wp, (char *)"Allow replace", getboolean(fgroup.Replace));
|
||||
add_webtable(wp, (char *)"Dupe checking", getboolean(fgroup.DupCheck));
|
||||
add_webtable(wp, (char *)"Secure processing", getboolean(fgroup.Secure));
|
||||
add_webtable(wp, (char *)"Touch file dates", getboolean(fgroup.Touch));
|
||||
add_webtable(wp, (char *)"Virus scan", getboolean(fgroup.VirScan));
|
||||
add_webtable(wp, (char *)"Announce", getboolean(fgroup.Announce));
|
||||
add_webtable(wp, (char *)"Allow update magics", getboolean(fgroup.UpdMagic));
|
||||
add_webtable(wp, (char *)"Extract FILE_ID.DIZ", getboolean(fgroup.FileId));
|
||||
add_webtable(wp, (char *)"Convert all archives", getboolean(fgroup.ConvertAll));
|
||||
add_webtable(wp, (char *)"Send original file", getboolean(fgroup.SendOrg));
|
||||
add_webtable(wp, (char *)"Base path for new areas", fgroup.BasePath);
|
||||
web_secflags(wp, (char *)"Download security", fgroup.DLSec);
|
||||
web_secflags(wp, (char *)"Upload security", fgroup.UPSec);
|
||||
web_secflags(wp, (char *)"List security", fgroup.LTSec);
|
||||
add_webtable(wp, (char *)"Default tic security", getflag(fgroup.LinkSec.flags, fgroup.LinkSec.notflags));
|
||||
fprintf(wp, "<TR><TH align='left'>BBS (tic) file group</TH><TD><A HREF=\"filegroup_%s.html\">%s</A></TD></TH>\n",
|
||||
fgroup.BbsGroup, fgroup.BbsGroup);
|
||||
fprintf(wp, "<TR><TH align='left'>Newfiles announce group</TH><TD><A HREF=\"newfilegroup_%s.html\">%s</A></TD></TH>\n",
|
||||
fgroup.AnnGroup, fgroup.AnnGroup);
|
||||
sprintf(temp, "%d", fgroup.Upload);
|
||||
add_webtable(wp, (char *)"Upload area", temp);
|
||||
add_webtable(wp, (char *)"Start date", ctime(&fgroup.StartDate));
|
||||
add_webtable(wp, (char *)"Last active date", ctime(&fgroup.LastDate));
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
close_webdoc(wp);
|
||||
}
|
||||
|
||||
fprintf(fp, " Group name %s\n", fgroup.Name);
|
||||
fprintf(fp, " Comment %s\n", fgroup.Comment);
|
||||
fprintf(fp, " Active %s\n", getboolean(fgroup.Active));
|
||||
fprintf(fp, " Use Aka %s\n", aka2str(fgroup.UseAka));
|
||||
fprintf(fp, " Uplink %s\n", aka2str(fgroup.UpLink));
|
||||
fprintf(fp, " Areas file %s\n", fgroup.AreaFile);
|
||||
fprintf(fp, " Start area %ld\n", fgroup.StartArea);
|
||||
fprintf(fp, " Banner file %s\n", fgroup.Banner);
|
||||
fprintf(fp, " Def. archiver %s\n", fgroup.Convert);
|
||||
fprintf(fp, " Filegate fmt %s\n", getboolean(fgroup.FileGate));
|
||||
fprintf(fp, " Auto change %s\n", getboolean(fgroup.AutoChange));
|
||||
fprintf(fp, " User change %s\n", getboolean(fgroup.UserChange));
|
||||
fprintf(fp, " Allow replace %s\n", getboolean(fgroup.Replace));
|
||||
fprintf(fp, " Dupe checking %s\n", getboolean(fgroup.DupCheck));
|
||||
fprintf(fp, " Secure %s\n", getboolean(fgroup.Secure));
|
||||
fprintf(fp, " Touch dates %s\n", getboolean(fgroup.Touch));
|
||||
fprintf(fp, " Virus scan %s\n", getboolean(fgroup.VirScan));
|
||||
fprintf(fp, " Announce %s\n", getboolean(fgroup.Announce));
|
||||
fprintf(fp, " Update magics %s\n", getboolean(fgroup.UpdMagic));
|
||||
fprintf(fp, " FILE_ID.DIZ %s\n", getboolean(fgroup.FileId));
|
||||
fprintf(fp, " Convert all %s\n", getboolean(fgroup.ConvertAll));
|
||||
fprintf(fp, " Send original %s\n", getboolean(fgroup.SendOrg));
|
||||
fprintf(fp, " Base path %s\n", fgroup.BasePath);
|
||||
fprintf(fp, " Download sec. %s\n", get_secstr(fgroup.DLSec));
|
||||
fprintf(fp, " Upload sec. %s\n", get_secstr(fgroup.UPSec));
|
||||
fprintf(fp, " List security %s\n", get_secstr(fgroup.LTSec));
|
||||
fprintf(fp, " Def. tic sec. %s\n", getflag(fgroup.LinkSec.flags, fgroup.LinkSec.notflags));
|
||||
fprintf(fp, " BBS group %s\n", fgroup.BbsGroup);
|
||||
fprintf(fp, " Newfiles group %s\n", fgroup.AnnGroup);
|
||||
fprintf(fp, " Upload area %d\n", fgroup.Upload);
|
||||
fprintf(fp, " Start date %s", ctime(&fgroup.StartDate));
|
||||
fprintf(fp, " Last date %s\n", ctime(&fgroup.LastDate));
|
||||
}
|
||||
|
||||
fprintf(ip, "</UL>\n");
|
||||
close_webdoc(ip);
|
||||
|
||||
fclose(no);
|
||||
free(temp);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
107
mbsetup/m_fido.c
107
mbsetup/m_fido.c
@ -510,48 +510,85 @@ void gold_akamatch(FILE *fp)
|
||||
|
||||
int fido_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
FILE *fido;
|
||||
int i, j;
|
||||
char temp[PATH_MAX];
|
||||
FILE *wp, *ip, *fido;
|
||||
int i, j;
|
||||
|
||||
sprintf(temp, "%s/etc/fidonet.data", getenv("MBSE_ROOT"));
|
||||
if ((fido = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
sprintf(temp, "%s/etc/fidonet.data", getenv("MBSE_ROOT"));
|
||||
if ((fido = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 2, 0, page, (char *)"Fidonet networks");
|
||||
j = 0;
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 2, 0, page, (char *)"Fidonet networks");
|
||||
j = 0;
|
||||
|
||||
fprintf(fp, "\n\n");
|
||||
fread(&fidonethdr, sizeof(fidonethdr), 1, fido);
|
||||
while ((fread(&fidonet, fidonethdr.recsize, 1, fido)) == 1) {
|
||||
fprintf(fp, "\n\n");
|
||||
fread(&fidonethdr, sizeof(fidonethdr), 1, fido);
|
||||
|
||||
if (j == 6) {
|
||||
page = newpage(fp, page);
|
||||
fprintf(fp, "\n");
|
||||
j = 0;
|
||||
}
|
||||
ip = open_webdoc((char *)"fidonet.html", (char *)"Fidonet networks", NULL);
|
||||
fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(ip, "<UL>\n");
|
||||
|
||||
while ((fread(&fidonet, fidonethdr.recsize, 1, fido)) == 1) {
|
||||
|
||||
fprintf(fp, " Comment %s\n", fidonet.comment);
|
||||
fprintf(fp, " Domain %s\n", fidonet.domain);
|
||||
fprintf(fp, " Available %s\n", getboolean(fidonet.available));
|
||||
fprintf(fp, " Nodelist %s\n", fidonet.nodelist);
|
||||
for (i = 0; i < 6; i++)
|
||||
if (strlen(fidonet.seclist[i].nodelist) || fidonet.seclist[i].zone) {
|
||||
fprintf(fp, " Merge list %d %-8s %d:%d/%d\n", i+1,
|
||||
fidonet.seclist[i].nodelist, fidonet.seclist[i].zone,
|
||||
fidonet.seclist[i].net, fidonet.seclist[i].node);
|
||||
}
|
||||
fprintf(fp, " Zone(s) ");
|
||||
for (i = 0; i < 6; i++)
|
||||
if (fidonet.zone[i])
|
||||
fprintf(fp, "%d ", fidonet.zone[i]);
|
||||
fprintf(fp, "\n\n\n");
|
||||
j++;
|
||||
if (j == 6) {
|
||||
page = newpage(fp, page);
|
||||
fprintf(fp, "\n");
|
||||
j = 0;
|
||||
}
|
||||
|
||||
fclose(fido);
|
||||
return page;
|
||||
sprintf(temp, "fidonet_%d.html", fidonet.zone[0]);
|
||||
fprintf(ip, " <LI><A HREF=\"%s\">Zone %d</A> %s</LI>\n", temp, fidonet.zone[0], fidonet.comment);
|
||||
|
||||
if ((wp = open_webdoc(temp, (char *)"Fidonet network", fidonet.comment))) {
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A> <A HREF=\"fidonet.html\">Back</A>\n");
|
||||
fprintf(wp, "<P>\n");
|
||||
fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='50%%'><COL width='50%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"Comment", fidonet.comment);
|
||||
add_webtable(wp, (char *)"Domain", fidonet.domain);
|
||||
add_webtable(wp, (char *)"Available", getboolean(fidonet.available));
|
||||
add_webtable(wp, (char *)"Nodelist", fidonet.nodelist);
|
||||
for (i = 0; i < 6; i++)
|
||||
if (strlen(fidonet.seclist[i].nodelist) || fidonet.seclist[i].zone) {
|
||||
sprintf(temp, "%d %-8s %d:%d/%d", i+1, fidonet.seclist[i].nodelist, fidonet.seclist[i].zone,
|
||||
fidonet.seclist[i].net, fidonet.seclist[i].node);
|
||||
add_webtable(wp, (char *)"Merge list", temp);
|
||||
}
|
||||
sprintf(temp, "%d", fidonet.zone[0]);
|
||||
for (i = 1; i < 6; i++)
|
||||
if (fidonet.zone[i])
|
||||
sprintf(temp, "%s %d", temp, fidonet.zone[i]);
|
||||
add_webtable(wp, (char *)"Zone(s)", temp);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
close_webdoc(wp);
|
||||
}
|
||||
|
||||
fprintf(fp, " Comment %s\n", fidonet.comment);
|
||||
fprintf(fp, " Domain %s\n", fidonet.domain);
|
||||
fprintf(fp, " Available %s\n", getboolean(fidonet.available));
|
||||
fprintf(fp, " Nodelist %s\n", fidonet.nodelist);
|
||||
for (i = 0; i < 6; i++)
|
||||
if (strlen(fidonet.seclist[i].nodelist) || fidonet.seclist[i].zone) {
|
||||
fprintf(fp, " Merge list %d %-8s %d:%d/%d\n", i+1,
|
||||
fidonet.seclist[i].nodelist, fidonet.seclist[i].zone,
|
||||
fidonet.seclist[i].net, fidonet.seclist[i].node);
|
||||
}
|
||||
fprintf(fp, " Zone(s) ");
|
||||
for (i = 0; i < 6; i++)
|
||||
if (fidonet.zone[i])
|
||||
fprintf(fp, "%d ", fidonet.zone[i]);
|
||||
fprintf(fp, "\n\n\n");
|
||||
j++;
|
||||
}
|
||||
|
||||
fprintf(ip, "</UL>\n");
|
||||
close_webdoc(ip);
|
||||
|
||||
fclose(fido);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "m_new.h"
|
||||
#include "m_fgroup.h"
|
||||
#include "m_mgroup.h"
|
||||
#include "m_limits.h"
|
||||
#include "m_global.h"
|
||||
|
||||
|
||||
@ -1595,137 +1596,303 @@ int PickAka(char *msg, int openit)
|
||||
|
||||
|
||||
|
||||
void web_secflags(FILE *fp, char *name, securityrec sec)
|
||||
{
|
||||
int i;
|
||||
|
||||
fprintf(fp, "<TR><TH align='left'>%s</TH><TD>%d (%s)</TD></TR>\n", name, sec.level, get_limit_name(sec.level));
|
||||
for (i = 0; i < 32; i++) {
|
||||
if ((sec.flags >> i) & 1) {
|
||||
fprintf(fp, "<TR><TH> </TH><TD>.and. bit %d (%s)</TD></TR>\n", i, CFG.fname[i]);
|
||||
} else if ((sec.notflags >> i) & 1) {
|
||||
fprintf(fp, "<TR><TH> </TH><TD>.and not. bit %d (%s)</TD></TR>\n", i, CFG.fname[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int global_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
int i, j;
|
||||
struct utsname utsbuf;
|
||||
time_t now;
|
||||
char *p;
|
||||
int i, j;
|
||||
struct utsname utsbuf;
|
||||
time_t now;
|
||||
char *p, temp[1024];
|
||||
FILE *wp;
|
||||
|
||||
if (config_read())
|
||||
return page;
|
||||
|
||||
if (config_read())
|
||||
return page;
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 0, page, (char *)"Global system setup");
|
||||
addtoc(fp, toc, 1, 1, page, (char *)"Host system information");
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 0, page, (char *)"Global system setup");
|
||||
addtoc(fp, toc, 1, 1, page, (char *)"Host system information");
|
||||
wp = open_webdoc((char *)"global.html", (char *)"Global Configuration", NULL);
|
||||
fprintf(wp, "<A HREF=\"index.html\">Main</A>\n");
|
||||
fprintf(wp, "<UL>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_host\">Host System Information</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_akas\">System fidonet addresses</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_reginfo\">Registration information</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_filenames\">Global filenames</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_pathnames\">Pathnames</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_global\">Global settings</A></LI>\n");
|
||||
fprintf(wp, " <LI><A HREF=\"#_security\">Users flag descriptions</A></LI>\n");
|
||||
fprintf(wp, "</UL>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
|
||||
memset(&utsbuf, 0, sizeof(utsbuf));
|
||||
if (uname(&utsbuf) == 0) {
|
||||
fprintf(fp, " Node name %s\n", utsbuf.nodename);
|
||||
fprintf(wp, "<A NAME=\"_host\"></A><H3>Host System Information</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
memset(&utsbuf, 0, sizeof(utsbuf));
|
||||
if (uname(&utsbuf) == 0) {
|
||||
add_webtable(wp, (char *)"Node name", utsbuf.nodename);
|
||||
fprintf(fp, " Node name %s\n", utsbuf.nodename);
|
||||
#ifdef __USE_GNU
|
||||
fprintf(fp, " Domain name %s\n", utsbuf.domainname);
|
||||
add_webtable(wp, (char *)"Domain name", utsbuf.domainname);
|
||||
fprintf(fp, " Domain name %s\n", utsbuf.domainname);
|
||||
#else
|
||||
#ifdef __linux__
|
||||
fprintf(fp, " Domain name %s\n", utsbuf.__domainname);
|
||||
add_webtable(wp, (char *)"Domain name", utsbuf.__domainname);
|
||||
fprintf(fp, " Domain name %s\n", utsbuf.__domainname);
|
||||
#endif
|
||||
#endif
|
||||
fprintf(fp, " Operating system %s %s\n", utsbuf.sysname, utsbuf.release);
|
||||
fprintf(fp, " Kernel version %s\n", utsbuf.version);
|
||||
fprintf(fp, " Machine type %s\n", utsbuf.machine);
|
||||
sprintf(temp, "%s %s", utsbuf.sysname, utsbuf.release);
|
||||
add_webtable(wp, (char *)"Operating system", temp);
|
||||
fprintf(fp, " Operating system %s %s\n", utsbuf.sysname, utsbuf.release);
|
||||
add_webtable(wp, (char *)"Kernel version", utsbuf.version);
|
||||
fprintf(fp, " Kernel version %s\n", utsbuf.version);
|
||||
add_webtable(wp, (char *)"Machine type", utsbuf.machine);
|
||||
fprintf(fp, " Machine type %s\n", utsbuf.machine);
|
||||
}
|
||||
add_webtable(wp, (char *)"MBSE_ROOT", getenv("MBSE_ROOT"));
|
||||
fprintf(fp, " MBSE_ROOT %s\n", getenv("MBSE_ROOT"));
|
||||
now = time(NULL);
|
||||
add_webtable(wp, (char *)"Date created", ctime(&now));
|
||||
fprintf(fp, " Date created %s", ctime(&now));
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
|
||||
fprintf(wp, "<A NAME=\"_akas\"></A><H3>System fidonet addresses</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
addtoc(fp, toc, 1, 2, page, (char *)"System fidonet addresses");
|
||||
for (i = 0; i < 40; i++) {
|
||||
if (CFG.akavalid[i]) {
|
||||
fprintf(fp, " Aka %2d %s\n", i+1, aka2str(CFG.aka[i]));
|
||||
sprintf(temp, "Aka %d", i+1);
|
||||
add_webtable(wp, temp, aka2str(CFG.aka[i]));
|
||||
}
|
||||
fprintf(fp, " MBSE_ROOT %s\n", getenv("MBSE_ROOT"));
|
||||
now = time(NULL);
|
||||
fprintf(fp, " Date created %s", ctime(&now));
|
||||
}
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
page = newpage(fp, page);
|
||||
|
||||
addtoc(fp, toc, 1, 2, page, (char *)"System fidonet addresses");
|
||||
for (i = 0; i < 40; i++)
|
||||
if (CFG.akavalid[i])
|
||||
fprintf(fp, " Aka %2d %s\n", i+1, aka2str(CFG.aka[i]));
|
||||
fprintf(wp, "<A NAME=\"_reginfo\"></A><H3>Registration information</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"System name", CFG.bbs_name);
|
||||
add_webtable(wp, (char *)"Domain name", CFG.sysdomain);
|
||||
add_webtable(wp, (char *)"Sysop unix name", CFG.sysop);
|
||||
add_webtable(wp, (char *)"Sysop fido name", CFG.sysop_name);
|
||||
add_webtable(wp, (char *)"System location", CFG.location);
|
||||
add_webtable(wp, (char *)"QWK/Bluewave id", CFG.bbsid);
|
||||
add_webtable(wp, (char *)"Omen id", CFG.bbsid2);
|
||||
add_webtable(wp, (char *)"Comment", CFG.comment);
|
||||
add_webtable(wp, (char *)"Origin line", CFG.origin);
|
||||
add_webtable(wp, (char *)"Start unix name", CFG.startname);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
addtoc(fp, toc, 1, 3, page, (char *)"Registration information");
|
||||
fprintf(fp, " System name %s\n", CFG.bbs_name);
|
||||
fprintf(fp, " Domain name %s\n", CFG.sysdomain);
|
||||
fprintf(fp, " Sysop unix name %s\n", CFG.sysop);
|
||||
fprintf(fp, " Sysop fido name %s\n", CFG.sysop_name);
|
||||
fprintf(fp, " System location %s\n", CFG.location);
|
||||
fprintf(fp, " QWK/Bluewave id %s\n", CFG.bbsid);
|
||||
fprintf(fp, " Omen id %s\n", CFG.bbsid2);
|
||||
fprintf(fp, " Comment %s\n", CFG.comment);
|
||||
fprintf(fp, " Origin line %s\n", CFG.origin);
|
||||
fprintf(fp, " Start unix name %s\n", CFG.startname);
|
||||
|
||||
page = newpage(fp, page);
|
||||
fprintf(wp, "<A NAME=\"_filenames\"></A><H3>Global filenames</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"System logfile", CFG.logfile);
|
||||
add_webtable(wp, (char *)"Error logfile", CFG.error_log);
|
||||
add_webtable(wp, (char *)"Debug logfile", CFG.debuglog);
|
||||
add_webtable(wp, (char *)"Manager logfile", CFG.mgrlog);
|
||||
add_webtable(wp, (char *)"Default menu", CFG.default_menu);
|
||||
add_webtable(wp, (char *)"Default language", CFG.current_language);
|
||||
add_webtable(wp, (char *)"Chat logfile", CFG.chat_log);
|
||||
add_webtable(wp, (char *)"Welcome logo", CFG.welcome_logo);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
addtoc(fp, toc, 1, 4, page, (char *)"Global filenames");
|
||||
fprintf(fp, " System logfile %s\n", CFG.logfile);
|
||||
fprintf(fp, " Error logfile %s\n", CFG.error_log);
|
||||
fprintf(fp, " Debug logfile %s\n", CFG.debuglog);
|
||||
fprintf(fp, " Manager logfile %s\n", CFG.mgrlog);
|
||||
fprintf(fp, " Default menu %s\n", CFG.default_menu);
|
||||
fprintf(fp, " Default language %s\n", CFG.current_language);
|
||||
fprintf(fp, " Chat logfile %s\n", CFG.chat_log);
|
||||
fprintf(fp, " Welcome logo %s\n", CFG.welcome_logo);
|
||||
|
||||
addtoc(fp, toc, 1, 3, page, (char *)"Registration information");
|
||||
fprintf(fp, " System name %s\n", CFG.bbs_name);
|
||||
fprintf(fp, " Domain name %s\n", CFG.sysdomain);
|
||||
fprintf(fp, " Sysop unix name %s\n", CFG.sysop);
|
||||
fprintf(fp, " Sysop fido name %s\n", CFG.sysop_name);
|
||||
fprintf(fp, " System location %s\n", CFG.location);
|
||||
fprintf(fp, " QWK/Bluewave id %s\n", CFG.bbsid);
|
||||
fprintf(fp, " Omen id %s\n", CFG.bbsid2);
|
||||
fprintf(fp, " Comment %s\n", CFG.comment);
|
||||
fprintf(fp, " Origin line %s\n", CFG.origin);
|
||||
fprintf(fp, " Start unix name %s\n", CFG.startname);
|
||||
fprintf(wp, "<A NAME=\"_pathnames\"></A><H3>Pathnames</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"Menufiles", CFG.bbs_menus);
|
||||
add_webtable(wp, (char *)"Textfiles", CFG.bbs_txtfiles);
|
||||
add_webtable(wp, (char *)"Macro templates", CFG.bbs_macros);
|
||||
add_webtable(wp, (char *)"Users homedirs", CFG.bbs_usersdir);
|
||||
add_webtable(wp, (char *)"Nodelists", CFG.nodelists);
|
||||
add_webtable(wp, (char *)"Unsafe inbound", CFG.inbound);
|
||||
add_webtable(wp, (char *)"Known inbound", CFG.pinbound);
|
||||
add_webtable(wp, (char *)"Outbound", CFG.outbound);
|
||||
add_webtable(wp, (char *)"Outbound queue", CFG.out_queue);
|
||||
add_webtable(wp, (char *)"*.msgs path", CFG.msgs_path);
|
||||
add_webtable(wp, (char *)"Bad TIC's", CFG.badtic);
|
||||
add_webtable(wp, (char *)"TIC queue", CFG.ticout);
|
||||
add_webtable(wp, (char *)"Magic filerequests", CFG.req_magic);
|
||||
add_webtable(wp, (char *)"DOS path", CFG.dospath);
|
||||
add_webtable(wp, (char *)"Unix path", CFG.uxpath);
|
||||
add_webtable(wp, (char *)"Leave case as is", getboolean(CFG.leavecase));
|
||||
add_webtable(wp, (char *)"FTP base path", CFG.ftp_base);
|
||||
add_webtable(wp, (char *)"Area lists", CFG.alists_path);
|
||||
add_webtable(wp, (char *)"External editor", CFG.externaleditor);
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
addtoc(fp, toc, 1, 5, page, (char *)"Pathnames");
|
||||
fprintf(fp, " Menufiles %s\n", CFG.bbs_menus);
|
||||
fprintf(fp, " Textfiles %s\n", CFG.bbs_txtfiles);
|
||||
fprintf(fp, " Macros %s\n", CFG.bbs_macros);
|
||||
fprintf(fp, " Users homedirs %s\n", CFG.bbs_usersdir);
|
||||
fprintf(fp, " Nodelists %s\n", CFG.nodelists);
|
||||
fprintf(fp, " Unsafe inbound %s\n", CFG.inbound);
|
||||
fprintf(fp, " Known inbound %s\n", CFG.pinbound);
|
||||
fprintf(fp, " Outbound %s\n", CFG.outbound);
|
||||
fprintf(fp, " Out queue %s\n", CFG.out_queue);
|
||||
fprintf(fp, " *.msgs path %s\n", CFG.msgs_path);
|
||||
fprintf(fp, " Bad TIC's %s\n", CFG.badtic);
|
||||
fprintf(fp, " TIC queue %s\n", CFG.ticout);
|
||||
fprintf(fp, " Magic filereq. %s\n", CFG.req_magic);
|
||||
fprintf(fp, " DOS path %s\n", CFG.dospath);
|
||||
fprintf(fp, " Unix path %s\n", CFG.uxpath);
|
||||
fprintf(fp, " Leave case as is %s\n", getboolean(CFG.leavecase));
|
||||
fprintf(fp, " FTP base path %s\n", CFG.ftp_base);
|
||||
fprintf(fp, " Area lists %s\n", CFG.alists_path);
|
||||
fprintf(fp, " External editor %s\n", CFG.externaleditor);
|
||||
|
||||
addtoc(fp, toc, 1, 4, page, (char *)"Global filenames");
|
||||
fprintf(fp, " System logfile %s\n", CFG.logfile);
|
||||
fprintf(fp, " Error logfile %s\n", CFG.error_log);
|
||||
fprintf(fp, " Debug logfile %s\n", CFG.debuglog);
|
||||
fprintf(fp, " Manager logfile %s\n", CFG.mgrlog);
|
||||
fprintf(fp, " Default menu %s\n", CFG.default_menu);
|
||||
fprintf(fp, " Default language %s\n", CFG.current_language);
|
||||
fprintf(fp, " Chat logfile %s\n", CFG.chat_log);
|
||||
fprintf(fp, " Welcome logo %s\n", CFG.welcome_logo);
|
||||
fprintf(wp, "<A NAME=\"_global\"></A><H3>Global settings</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
add_webtable(wp, (char *)"Show new message areas", getboolean(CFG.NewAreas));
|
||||
add_webtable(wp, (char *)"Exclude sysop from lists", getboolean(CFG.exclude_sysop));
|
||||
add_webtable(wp, (char *)"Show connect info", getboolean(CFG.iConnectString));
|
||||
add_webtable(wp, (char *)"Ask protocols", getboolean(CFG.iAskFileProtocols));
|
||||
add_webdigit(wp, (char *)"Sysop security level", CFG.sysop_access);
|
||||
add_webdigit(wp, (char *)"Minimum password length", CFG.password_length);
|
||||
add_webtable(wp, (char *)"BBS loglevel", getloglevel(CFG.bbs_loglevel));
|
||||
add_webtable(wp, (char *)"Util loglevel", getloglevel(CFG.util_loglevel));
|
||||
sprintf(temp, "%c", CFG.iPasswd_Char);
|
||||
add_webtable(wp, (char *)"Password char", temp);
|
||||
add_webdigit(wp, (char *)"Idle timeout in minutes", CFG.idleout);
|
||||
add_webdigit(wp, (char *)"Login enters", CFG.iCRLoginCount);
|
||||
add_webdigit(wp, (char *)"Homedir quota in MByte", CFG.iQuota);
|
||||
add_webdigit(wp, (char *)"Minimum location length", CFG.CityLen);
|
||||
add_webdigit(wp, (char *)"OLR Max. messages", CFG.OLR_MaxMsgs);
|
||||
add_webdigit(wp, (char *)"OLR Newfile days", CFG.OLR_NewFileLimit);
|
||||
add_webdigit(wp, (char *)"OLR Max. filerequests", CFG.OLR_MaxReq);
|
||||
add_webtable(wp, (char *)"Slowdown utilities", getboolean(CFG.slow_util));
|
||||
add_webdigit(wp, (char *)"CrashMail security level", CFG.iCrashLevel);
|
||||
add_webdigit(wp, (char *)"FileAttach security level", CFG.iAttachLevel);
|
||||
add_webdigit(wp, (char *)"Free diskspace in MBytes", CFG.freespace);
|
||||
if (CFG.max_logins)
|
||||
sprintf(temp, "%d", CFG.max_logins);
|
||||
else
|
||||
sprintf(temp, "Unlimited");
|
||||
add_webtable(wp, (char *)"Simultaneous logins", temp);
|
||||
add_webdigit(wp, (char *)"Child priority", CFG.priority);
|
||||
add_webtable(wp, (char *)"Sync on execute", getboolean(CFG.do_sync));
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 6, page, (char *)"Global settings");
|
||||
fprintf(fp, " Show new msgarea %s\n", getboolean(CFG.NewAreas));
|
||||
fprintf(fp, " Exclude sysop %s\n", getboolean(CFG.exclude_sysop));
|
||||
fprintf(fp, " Show connect %s\n", getboolean(CFG.iConnectString));
|
||||
fprintf(fp, " Ask protocols %s\n", getboolean(CFG.iAskFileProtocols));
|
||||
fprintf(fp, " Sysop level %d\n", CFG.sysop_access);
|
||||
fprintf(fp, " Password length %d\n", CFG.password_length);
|
||||
p = getloglevel(CFG.bbs_loglevel);
|
||||
fprintf(fp, " BBS loglevel %s\n", p);
|
||||
free(p);
|
||||
p = getloglevel(CFG.util_loglevel);
|
||||
fprintf(fp, " Util loglevel %s\n", p);
|
||||
free(p);
|
||||
fprintf(fp, " Password char %c\n", CFG.iPasswd_Char);
|
||||
fprintf(fp, " Idle timeout %d mins\n", CFG.idleout);
|
||||
fprintf(fp, " Login enters %d\n", CFG.iCRLoginCount);
|
||||
fprintf(fp, " Homedir quota %d MB.\n", CFG.iQuota);
|
||||
fprintf(fp, " Location length %d\n", CFG.CityLen);
|
||||
fprintf(fp, " OLR Max. msgs. %d\n", CFG.OLR_MaxMsgs);
|
||||
fprintf(fp, " OLR Newfile days %d\n", CFG.OLR_NewFileLimit);
|
||||
fprintf(fp, " OLR Max Freq's %d\n", CFG.OLR_MaxReq);
|
||||
fprintf(fp, " Slow utilities %s\n", getboolean(CFG.slow_util));
|
||||
fprintf(fp, " CrashMail level %d\n", CFG.iCrashLevel);
|
||||
fprintf(fp, " FileAttach level %d\n", CFG.iAttachLevel);
|
||||
fprintf(fp, " Free diskspace %d MB.\n", CFG.freespace);
|
||||
if (CFG.max_logins)
|
||||
fprintf(fp, " Simult. logins %d\n", CFG.max_logins);
|
||||
else
|
||||
fprintf(fp, " Simult. logins unlimited\n");
|
||||
fprintf(fp, " Child priority %d\n", CFG.priority);
|
||||
fprintf(fp, " Sync on execute %s\n", getboolean(CFG.do_sync));
|
||||
|
||||
addtoc(fp, toc, 1, 5, page, (char *)"Pathnames");
|
||||
fprintf(fp, " Menufiles %s\n", CFG.bbs_menus);
|
||||
fprintf(fp, " Textfiles %s\n", CFG.bbs_txtfiles);
|
||||
fprintf(fp, " Macros %s\n", CFG.bbs_macros);
|
||||
fprintf(fp, " Users homedirs %s\n", CFG.bbs_usersdir);
|
||||
fprintf(fp, " Nodelists %s\n", CFG.nodelists);
|
||||
fprintf(fp, " Unsafe inbound %s\n", CFG.inbound);
|
||||
fprintf(fp, " Known inbound %s\n", CFG.pinbound);
|
||||
fprintf(fp, " Outbound %s\n", CFG.outbound);
|
||||
fprintf(fp, " Out queue %s\n", CFG.out_queue);
|
||||
fprintf(fp, " *.msgs path %s\n", CFG.msgs_path);
|
||||
fprintf(fp, " Bad TIC's %s\n", CFG.badtic);
|
||||
fprintf(fp, " TIC queue %s\n", CFG.ticout);
|
||||
fprintf(fp, " Magic filereq. %s\n", CFG.req_magic);
|
||||
fprintf(fp, " DOS path %s\n", CFG.dospath);
|
||||
fprintf(fp, " Unix path %s\n", CFG.uxpath);
|
||||
fprintf(fp, " Leave case as is %s\n", getboolean(CFG.leavecase));
|
||||
fprintf(fp, " FTP base path %s\n", CFG.ftp_base);
|
||||
fprintf(fp, " Area lists %s\n", CFG.alists_path);
|
||||
fprintf(fp, " External editor %s\n", CFG.externaleditor);
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 6, page, (char *)"Global settings");
|
||||
|
||||
fprintf(fp, " Show new msgarea %s\n", getboolean(CFG.NewAreas));
|
||||
fprintf(fp, " Exclude sysop %s\n", getboolean(CFG.exclude_sysop));
|
||||
fprintf(fp, " Show connect %s\n", getboolean(CFG.iConnectString));
|
||||
fprintf(fp, " Ask protocols %s\n", getboolean(CFG.iAskFileProtocols));
|
||||
fprintf(fp, " Sysop level %d\n", CFG.sysop_access);
|
||||
fprintf(fp, " Password length %d\n", CFG.password_length);
|
||||
p = getloglevel(CFG.bbs_loglevel);
|
||||
fprintf(fp, " BBS loglevel %s\n", p);
|
||||
free(p);
|
||||
p = getloglevel(CFG.util_loglevel);
|
||||
fprintf(fp, " Util loglevel %s\n", p);
|
||||
free(p);
|
||||
fprintf(fp, " Password char %c\n", CFG.iPasswd_Char);
|
||||
fprintf(fp, " Idle timeout %d mins\n", CFG.idleout);
|
||||
fprintf(fp, " Login enters %d\n", CFG.iCRLoginCount);
|
||||
fprintf(fp, " Homedir quota %d MB.\n", CFG.iQuota);
|
||||
fprintf(fp, " Location length %d\n", CFG.CityLen);
|
||||
fprintf(fp, " OLR Max. msgs. %d\n", CFG.OLR_MaxMsgs);
|
||||
fprintf(fp, " OLR Newfile days %d\n", CFG.OLR_NewFileLimit);
|
||||
fprintf(fp, " OLR Max Freq's %d\n", CFG.OLR_MaxReq);
|
||||
fprintf(fp, " Slow utilities %s\n", getboolean(CFG.slow_util));
|
||||
fprintf(fp, " CrashMail level %d\n", CFG.iCrashLevel);
|
||||
fprintf(fp, " FileAttach level %d\n", CFG.iAttachLevel);
|
||||
fprintf(fp, " Free diskspace %d MB.\n", CFG.freespace);
|
||||
if (CFG.max_logins)
|
||||
fprintf(fp, " Simult. logins %d\n", CFG.max_logins);
|
||||
else
|
||||
fprintf(fp, " Simult. logins unlimited\n");
|
||||
fprintf(fp, " Child priority %d\n", CFG.priority);
|
||||
fprintf(fp, " Sync on execute %s\n", getboolean(CFG.do_sync));
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 7, page, (char *)"Users flag descriptions");
|
||||
fprintf(fp, " 1 1 2 2 3 3\n");
|
||||
fprintf(fp, " 1 5 0 5 0 5 0 2\n");
|
||||
fprintf(fp, " --------------------------------\n");
|
||||
fprintf(fp, " ||||||||||||||||||||||||||||||||\n");
|
||||
for (i = 0; i < 32; i++) {
|
||||
fprintf(fp, " ");
|
||||
for (j = 0; j < (31 - i); j++)
|
||||
fprintf(fp, "|");
|
||||
fprintf(fp, "+");
|
||||
for (j = (32 - i); j < 32; j++)
|
||||
fprintf(fp, "-");
|
||||
fprintf(fp, " %s\n", CFG.fname[31 - i]);
|
||||
}
|
||||
fprintf(wp, "<A NAME=\"_security\"></A><H3>Users flag descriptions</H3>\n");
|
||||
fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
|
||||
fprintf(wp, "<COL width='30%%'><COL width='70%%'>\n");
|
||||
fprintf(wp, "<TBODY>\n");
|
||||
for (i = 0; i < 32; i++) {
|
||||
sprintf(temp, "Bit %d", i+1);
|
||||
add_webtable(wp, temp, CFG.fname[i]);
|
||||
}
|
||||
fprintf(wp, "</TBODY>\n");
|
||||
fprintf(wp, "</TABLE>\n");
|
||||
fprintf(wp, "<A HREF=\"#_top\">Top</A>\n");
|
||||
fprintf(wp, "<HR>\n");
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 7, page, (char *)"Users flag descriptions");
|
||||
fprintf(fp, " 1 1 2 2 3 3\n");
|
||||
fprintf(fp, " 1 5 0 5 0 5 0 2\n");
|
||||
fprintf(fp, " --------------------------------\n");
|
||||
fprintf(fp, " ||||||||||||||||||||||||||||||||\n");
|
||||
for (i = 0; i < 32; i++) {
|
||||
fprintf(fp, " ");
|
||||
for (j = 0; j < (31 - i); j++)
|
||||
fprintf(fp, "|");
|
||||
fprintf(fp, "+");
|
||||
for (j = (32 - i); j < 32; j++)
|
||||
fprintf(fp, "-");
|
||||
fprintf(fp, " %s\n", CFG.fname[31 - i]);
|
||||
}
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 8, page, (char *)"New users defaults");
|
||||
@ -1897,7 +2064,8 @@ int global_doc(FILE *fp, FILE *toc, int page)
|
||||
fprintf(fp, " %s\n", CFG.aname[31 - i]);
|
||||
}
|
||||
|
||||
return page;
|
||||
close_webdoc(wp);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* m_global.h */
|
||||
|
||||
#ifndef _GLOBAL_H
|
||||
#define _GLOBAL_H
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
void config_check(char *path);
|
||||
int config_open(void);
|
||||
void config_close(void);
|
||||
@ -10,7 +10,7 @@ int config_read(void);
|
||||
int config_write(void);
|
||||
void global_menu(void);
|
||||
int PickAka(char *, int);
|
||||
void web_secflags(FILE *, char *, securityrec);
|
||||
int global_doc(FILE *, FILE *, int);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -510,6 +510,31 @@ char *PickLimits(int nr)
|
||||
|
||||
|
||||
|
||||
char *get_limit_name(int level)
|
||||
{
|
||||
static char buf[41];
|
||||
char temp[PATH_MAX];
|
||||
FILE *fp;
|
||||
|
||||
sprintf(buf, "N/A");
|
||||
sprintf(temp, "%s/etc/limits.data", getenv("MBSE_ROOT"));
|
||||
if ((fp = fopen(temp, "r")) == NULL)
|
||||
return buf;
|
||||
|
||||
fread(&LIMIThdr, sizeof(LIMIThdr), 1, fp);
|
||||
|
||||
while ((fread(&LIMIT, LIMIThdr.recsize, 1, fp)) == 1) {
|
||||
if (level == LIMIT.Security) {
|
||||
sprintf(buf, "%s", LIMIT.Description);
|
||||
break;
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int bbs_limits_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
@ -537,67 +562,3 @@ int bbs_limits_doc(FILE *fp, FILE *toc, int page)
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int limit_users_doc(FILE *fp, FILE *toc, int page)
|
||||
{
|
||||
char temp[PATH_MAX];
|
||||
FILE *no, *us;
|
||||
int line = 0, j;
|
||||
|
||||
sprintf(temp, "%s/etc/limits.data", getenv("MBSE_ROOT"));
|
||||
if ((no = fopen(temp, "r")) == NULL)
|
||||
return page;
|
||||
|
||||
sprintf(temp, "%s/etc/users.data", getenv("MBSE_ROOT"));
|
||||
if ((us = fopen(temp, "r")) == NULL) {
|
||||
fclose(no);
|
||||
return page;
|
||||
}
|
||||
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 1, 0, page, (char *)"Access limits and users");
|
||||
|
||||
fread(&LIMIThdr, sizeof(LIMIThdr), 1, no);
|
||||
fread(&usrconfighdr, sizeof(usrconfighdr), 1, us);
|
||||
|
||||
while (fread(&LIMIT, LIMIThdr.recsize, 1, no) == 1) {
|
||||
if (LIMIT.Available) {
|
||||
if (line > 52) {
|
||||
page = newpage(fp, page);
|
||||
line = 0;
|
||||
}
|
||||
fprintf(fp, "\n\n");
|
||||
fprintf(fp, " Level %ld - %s\n\n", LIMIT.Security, LIMIT.Description);
|
||||
line += 4;
|
||||
j = 2;
|
||||
fseek(us, usrconfighdr.hdrsize, SEEK_SET);
|
||||
|
||||
while (fread(&usrconfig, usrconfighdr.recsize, 1, us) == 1) {
|
||||
if ((!usrconfig.Deleted) && strlen(usrconfig.sUserName) &&
|
||||
(usrconfig.Security.level == LIMIT.Security)) {
|
||||
if (j == 2) {
|
||||
j = 0;
|
||||
fprintf(fp, " %-35s", usrconfig.sUserName);
|
||||
} else {
|
||||
fprintf(fp, " %s\n", usrconfig.sUserName);
|
||||
line++;
|
||||
if (line > 56) {
|
||||
page = newpage(fp, page);
|
||||
line = 0;
|
||||
}
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
if (j != 2)
|
||||
fprintf(fp, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
fclose(us);
|
||||
fclose(no);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,14 +1,13 @@
|
||||
#ifndef _LIMITSS_H
|
||||
#define _LIMITSS_H
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
int CountLimits(void);
|
||||
void EditLimits(void);
|
||||
void InitLimits(void);
|
||||
char *PickLimits(int);
|
||||
char *get_limit_name(int);
|
||||
int bbs_limits_doc(FILE *, FILE *, int);
|
||||
int limit_users_doc(FILE *, FILE *, int);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -188,161 +188,136 @@ void soft_info(void)
|
||||
void site_docs(void);
|
||||
void site_docs(void)
|
||||
{
|
||||
FILE *fp, *toc;
|
||||
char temp[PATH_MAX], temp1[PATH_MAX];
|
||||
int page = 0, line = 0;
|
||||
FILE *fp, *hp, *toc;
|
||||
char temp[PATH_MAX], temp1[PATH_MAX];
|
||||
int page = 0, line = 0;
|
||||
|
||||
if (config_read() == -1)
|
||||
return;
|
||||
|
||||
sprintf(temp, "%s/doc/site.doc", getenv("MBSE_ROOT"));
|
||||
if ((fp = fopen(temp, "w")) == NULL)
|
||||
return;
|
||||
|
||||
sprintf(temp1, "%s/tmp/toc.tmp", getenv("MBSE_ROOT"));
|
||||
if ((toc = fopen(temp1, "w+")) == NULL) {
|
||||
fclose(fp);
|
||||
return;
|
||||
}
|
||||
|
||||
clr_index();
|
||||
working(1, 0, 0);
|
||||
IsDoing("Making Sitedocs");
|
||||
Syslog('+', "Start creating sitedocs");
|
||||
set_color(WHITE, BLACK);
|
||||
mvprintw( 5, 6, "17. CREATING SITEDOCS");
|
||||
set_color(CYAN, BLACK);
|
||||
mvprintw( 7,11, (char *)"Create document in file %s", temp);
|
||||
fflush(stdout);
|
||||
|
||||
page = global_doc(fp, toc, page);
|
||||
page = fido_doc(fp, toc, page);
|
||||
page = archive_doc(fp, toc, page);
|
||||
page = virus_doc(fp, toc, page);
|
||||
page = modem_doc(fp, toc, page);
|
||||
page = tty_doc(fp, toc, page);
|
||||
page = node_doc(fp, toc, page);
|
||||
page = bbs_doc(fp, toc, page);
|
||||
page = mail_doc(fp, toc, page);
|
||||
page = tic_doc(fp, toc, page);
|
||||
page = newf_group_doc(fp, toc, page);
|
||||
page = new_doc(fp, toc, page);
|
||||
page = ff_doc(fp, toc, page);
|
||||
page = service_doc(fp, toc, page);
|
||||
page = domain_doc(fp, toc, page);
|
||||
page = task_doc(fp, toc, page);
|
||||
page = route_doc(fp, toc, page);
|
||||
|
||||
/*
|
||||
* Append table of contents
|
||||
*/
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 17, 0, page, (char *)"Table of contents");
|
||||
fprintf(fp, "\n\n");
|
||||
line = 4;
|
||||
rewind(toc);
|
||||
|
||||
while (fgets(temp, 256, toc) != NULL) {
|
||||
fprintf(fp, "%s", temp);
|
||||
line++;
|
||||
if (line == 56) {
|
||||
page = newpage(fp, page);
|
||||
line = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fp, "\f");
|
||||
fclose(fp);
|
||||
fclose(toc);
|
||||
unlink(temp1);
|
||||
|
||||
Syslog('+', "Sitedocs created");
|
||||
|
||||
page = line = 0;
|
||||
sprintf(temp, "%s/doc/xref.doc", getenv("MBSE_ROOT"));
|
||||
if ((fp = fopen(temp, "w")) == NULL)
|
||||
return;
|
||||
|
||||
sprintf(temp1, "%s/tmp/toc.tmp", getenv("MBSE_ROOT"));
|
||||
if ((toc = fopen(temp1, "w+")) == NULL) {
|
||||
fclose(fp);
|
||||
return;
|
||||
}
|
||||
|
||||
Syslog('+', "Start creating crossreference");
|
||||
mvprintw( 8,11, (char *)"Create document in file %s", temp);
|
||||
fflush(stdout);
|
||||
|
||||
page = limit_users_doc(fp, toc, page);
|
||||
|
||||
/*
|
||||
* Append table of contents
|
||||
*/
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 99, 0, page, (char *)"Table of contents");
|
||||
fprintf(fp, "\n\n");
|
||||
line = 4;
|
||||
rewind(toc);
|
||||
|
||||
while (fgets(temp, 256, toc) != NULL) {
|
||||
fprintf(fp, "%s", temp);
|
||||
line++;
|
||||
if (line == 56) {
|
||||
page = newpage(fp, page);
|
||||
line = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fp, "\f");
|
||||
fclose(fp);
|
||||
fclose(toc);
|
||||
unlink(temp1);
|
||||
|
||||
Syslog('+', "Crossreference created");
|
||||
|
||||
page = line = 0;
|
||||
sprintf(temp, "%s/doc/stat.doc", getenv("MBSE_ROOT"));
|
||||
if ((fp = fopen(temp, "w")) == NULL)
|
||||
return;
|
||||
|
||||
sprintf(temp1, "%s/tmp/toc.tmp", getenv("MBSE_ROOT"));
|
||||
if ((toc = fopen(temp1, "w+")) == NULL) {
|
||||
fclose(fp);
|
||||
return;
|
||||
}
|
||||
|
||||
Syslog('+', "Start creating statistics");
|
||||
mvprintw( 9,11, (char *)"Create document in file %s", temp);
|
||||
fflush(stdout);
|
||||
|
||||
/*
|
||||
* Append table of contents
|
||||
*/
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 99, 0, page, (char *)"Table of contents");
|
||||
fprintf(fp, "\n\n");
|
||||
line = 4;
|
||||
rewind(toc);
|
||||
|
||||
while (fgets(temp, 256, toc) != NULL) {
|
||||
fprintf(fp, "%s", temp);
|
||||
line++;
|
||||
if (line == 56) {
|
||||
page = newpage(fp, page);
|
||||
line = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fp, "\f");
|
||||
fclose(fp);
|
||||
fclose(toc);
|
||||
unlink(temp1);
|
||||
|
||||
Syslog('+', "Statistics created");
|
||||
|
||||
center_addstr(LINES -4, (char *)"Press any key");
|
||||
readkey(LINES -4, COLS / 2 + 8, LIGHTGRAY, BLACK);
|
||||
if (config_read() == -1)
|
||||
return;
|
||||
|
||||
sprintf(temp, "%s/doc/site.doc", getenv("MBSE_ROOT"));
|
||||
if ((fp = fopen(temp, "w")) == NULL)
|
||||
return;
|
||||
|
||||
sprintf(temp1, "%s/tmp/toc.tmp", getenv("MBSE_ROOT"));
|
||||
if ((toc = fopen(temp1, "w+")) == NULL) {
|
||||
fclose(fp);
|
||||
return;
|
||||
}
|
||||
|
||||
clr_index();
|
||||
working(1, 0, 0);
|
||||
IsDoing("Making Sitedocs");
|
||||
Syslog('+', "Start creating sitedocs");
|
||||
|
||||
set_color(WHITE, BLACK);
|
||||
mvprintw( 5, 6, "21. CREATING SITEDOCS");
|
||||
set_color(CYAN, BLACK);
|
||||
mvprintw( 7,11, (char *)"Erasing directory %s/doc/html", getenv("MBSE_ROOT"));
|
||||
fflush(stdout);
|
||||
|
||||
sprintf(temp, "-r -f %s/doc/html", getenv("MBSE_ROOT"));
|
||||
execute_pth((char *)"rm", temp, (char *)"/dev/null", (char *)"/dev/null", (char *)"/dev/null");
|
||||
|
||||
if ((hp = open_webdoc((char *)"index.html", (char *)"BBS Site Documentation", NULL))) {
|
||||
fprintf(hp, "<UL>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"global.html\">Global Configuration</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"fidonet.html\">Fido Networks</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"archivers.html\">Archivers</A></LI>\n");
|
||||
fprintf(hp, " <LI>Virus Scaners</LI>\n");
|
||||
fprintf(hp, " <LI>Modem Types</LI>\n");
|
||||
fprintf(hp, " <LI>TTY Lines Info</LI>\n");
|
||||
fprintf(hp, " <LI>Fidonet Nodes</LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"bbs.html\">BBS Setup</A></LI>\n");
|
||||
fprintf(hp, " <UL>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"limits.html\">Security Limits</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"language.html\">Language Setup</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"menus.html\">BBS Menus</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"fileareas.html\">File Areas</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"protocols.html\">Transfer Protocols</A></LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"oneliners.html\">Oneliners</A></LI>\n");
|
||||
fprintf(hp, " </UL>\n");
|
||||
fprintf(hp, " <LI>Mail Setup</LI>\n");
|
||||
fprintf(hp, " <UL>\n");
|
||||
fprintf(hp, " <LI>Echomail Groups</LI>\n");
|
||||
fprintf(hp, " <LI>Echomail Areas</LI>\n");
|
||||
fprintf(hp, " </UL>\n");
|
||||
fprintf(hp, " <LI>File Echo's Setup</LI>\n");
|
||||
fprintf(hp, " <UL>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"filegroup.html\">FileEcho Groups</A></LI>\n");
|
||||
fprintf(hp, " <LI>Fileecho Areas</LI>\n");
|
||||
fprintf(hp, " <LI>Hatch Manager</LI>\n");
|
||||
fprintf(hp, " <LI>Magic Files</LI>\n");
|
||||
fprintf(hp, " </UL>\n");
|
||||
fprintf(hp, " <LI>Newfiles Groups</LI>\n");
|
||||
fprintf(hp, " <LI>Newfiles Reports</LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"filefind.html\">Filefind Setup</A></LI>\n");
|
||||
fprintf(hp, " <LI>BBS Users</LI>\n");
|
||||
fprintf(hp, " <LI>Mail Services</LI>\n");
|
||||
fprintf(hp, " <LI><A HREF=\"domain.html\">Domain translation</A></LI>\n");
|
||||
fprintf(hp, " <LI>Task Manager</LI>\n");
|
||||
fprintf(hp, " <LI>Network Routing</LI>\n");
|
||||
fprintf(hp, "</UL>\n");
|
||||
close_webdoc(hp);
|
||||
} else {
|
||||
Syslog('+', "Can't create html documentation");
|
||||
}
|
||||
|
||||
mvprintw( 8,11, (char *)"Create document in file %s/doc/site.doc", getenv("MBSE_ROOT"));
|
||||
page = global_doc(fp, toc, page);
|
||||
page = fido_doc(fp, toc, page);
|
||||
page = archive_doc(fp, toc, page);
|
||||
page = virus_doc(fp, toc, page);
|
||||
page = modem_doc(fp, toc, page);
|
||||
page = tty_doc(fp, toc, page);
|
||||
page = node_doc(fp, toc, page);
|
||||
page = bbs_doc(fp, toc, page);
|
||||
page = mail_doc(fp, toc, page);
|
||||
page = tic_doc(fp, toc, page);
|
||||
page = newf_group_doc(fp, toc, page);
|
||||
page = new_doc(fp, toc, page);
|
||||
page = ff_doc(fp, toc, page);
|
||||
page = service_doc(fp, toc, page);
|
||||
page = domain_doc(fp, toc, page);
|
||||
page = task_doc(fp, toc, page);
|
||||
page = route_doc(fp, toc, page);
|
||||
|
||||
/*
|
||||
* Append table of contents
|
||||
*/
|
||||
page = newpage(fp, page);
|
||||
addtoc(fp, toc, 17, 0, page, (char *)"Table of contents");
|
||||
fprintf(fp, "\n\n");
|
||||
line = 4;
|
||||
rewind(toc);
|
||||
|
||||
while (fgets(temp, 256, toc) != NULL) {
|
||||
fprintf(fp, "%s", temp);
|
||||
line++;
|
||||
if (line == 56) {
|
||||
page = newpage(fp, page);
|
||||
line = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fp, "\f");
|
||||
fclose(fp);
|
||||
fclose(toc);
|
||||
unlink(temp1);
|
||||
|
||||
Syslog('+', "Sitedocs created");
|
||||
|
||||
/*
|
||||
* Remove obsolete documents
|
||||
*/
|
||||
sprintf(temp, "%s/doc/xref.doc", getenv("MBSE_ROOT"));
|
||||
unlink(temp);
|
||||
sprintf(temp, "%s/doc/stat.doc", getenv("MBSE_ROOT"));
|
||||
unlink(temp);
|
||||
|
||||
center_addstr(LINES -4, (char *)"Press any key");
|
||||
readkey(LINES -4, COLS / 2 + 8, LIGHTGRAY, BLACK);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
|
||||
#include "../config.h"
|
||||
#include "../lib/mbselib.h"
|
||||
#include "../lib/diesel.h"
|
||||
#include "screen.h"
|
||||
#include "mutil.h"
|
||||
|
||||
@ -142,3 +143,88 @@ void disk_reset(void)
|
||||
}
|
||||
|
||||
|
||||
|
||||
FILE *open_webdoc(char *filename, char *title, char *title2)
|
||||
{
|
||||
char *p, *temp;
|
||||
FILE *fp;
|
||||
time_t now;
|
||||
|
||||
temp = calloc(PATH_MAX, sizeof(char));
|
||||
sprintf(temp, "%s/doc/html/%s", getenv("MBSE_ROOT"), filename);
|
||||
mkdirs(temp, 0755);
|
||||
|
||||
if ((fp = fopen(temp, "w+")) == NULL) {
|
||||
WriteError("$Can't create %s", temp);
|
||||
} else {
|
||||
fprintf(fp, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
|
||||
fprintf(fp, "<HTML>\n");
|
||||
fprintf(fp, "<HEAD>\n");
|
||||
fprintf(fp, "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n");
|
||||
fprintf(fp, "<META NAME=\"Language\" content=\"en\">\n");
|
||||
if (title2)
|
||||
fprintf(fp, "<TITLE>%s: %s</TITLE>\n", title, title2);
|
||||
else
|
||||
fprintf(fp, "<TITLE>%s</TITLE>\n", title);
|
||||
fprintf(fp, "<STYLE type=\"text/css\">\n");
|
||||
fprintf(fp, "BODY { font: 12pt sans-serif,helvetica,arial; }\n");
|
||||
fprintf(fp, "H1 { color: red; font: 16pt sans-serif,helvetica,arial; font-weight: bold }\n");
|
||||
fprintf(fp, "H2 { color: red; font: 14pt sans-serif,helvetica,arial; font-weight: bold }\n");
|
||||
fprintf(fp, "H3 { position: relative; left: 60px; }\n");
|
||||
fprintf(fp, "H5 { color: black; font: 10pt sans-serif,helvetica,arial; }\n");
|
||||
fprintf(fp, "A:link { color: blue }\n");
|
||||
fprintf(fp, "A:visited { color: blue }\n");
|
||||
fprintf(fp, "A:active { color: red }\n");
|
||||
fprintf(fp, "TH { font-weight: bold; }\n");
|
||||
fprintf(fp, "PRE { font-size: 10pt; color: blue; font-family: fixed; }\n");
|
||||
fprintf(fp, "</STYLE>\n");
|
||||
fprintf(fp, "</HEAD>\n");
|
||||
fprintf(fp, "<BODY bgcolor=\"#DDDDAA\" link=\"blue\" alink=\"red\" vlink=\"blue\">\n");
|
||||
fprintf(fp, "<A NAME=\"_top\"></A>\n");
|
||||
fprintf(fp, "<BLOCKQUOTE>\n");
|
||||
if (title2)
|
||||
fprintf(fp, "<DIV Align=\"center\"><H1>%s: %s</H1></DIV>\n", title, title2);
|
||||
else
|
||||
fprintf(fp, "<DIV Align=\"center\"><H1>%s</H1></DIV>\n", title);
|
||||
now = time(NULL);
|
||||
p = ctime(&now);
|
||||
Striplf(p);
|
||||
fprintf(fp, "<DIV align=\"right\"><H5>Created %s</H5></DIV>\n", p);
|
||||
}
|
||||
|
||||
free(temp);
|
||||
return fp;
|
||||
}
|
||||
|
||||
|
||||
void close_webdoc(FILE *fp)
|
||||
{
|
||||
fprintf(fp, "</BLOCKQUOTE>\n");
|
||||
fprintf(fp, "</BODY>\n");
|
||||
fprintf(fp, "</HTML>\n");
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
|
||||
void add_webtable(FILE *fp, char *hstr, char *dstr)
|
||||
{
|
||||
char left[1024], right[1024];
|
||||
|
||||
html_massage(hstr, left);
|
||||
if (strlen(dstr))
|
||||
html_massage(dstr, right);
|
||||
else
|
||||
sprintf(right, " ");
|
||||
fprintf(fp, "<TR><TH align='left'>%s</TH><TD>%s</TD></TR>\n", left, right);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void add_webdigit(FILE *fp, char *hstr, int digit)
|
||||
{
|
||||
char left[1024];
|
||||
|
||||
html_massage(hstr, left);
|
||||
fprintf(fp, "<TR><TH align='left'>%s</TH><TD>%d</TD></TR>\n", left, digit);
|
||||
}
|
||||
|
||||
|
@ -8,5 +8,9 @@ unsigned char testkey(int, int);
|
||||
int newpage(FILE *, int);
|
||||
void addtoc(FILE *, FILE *, int, int, int, char *);
|
||||
void disk_reset(void);
|
||||
FILE *open_webdoc(char *, char *, char *);
|
||||
void close_webdoc(FILE *);
|
||||
void add_webtable(FILE *, char *, char *);
|
||||
void add_webdigit(FILE *, char *, int);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user