示例#1
0
文件: m_magic.c 项目: ftnapps/FTNd
void FieldsM(void)
{
	set_color(WHITE, BLACK);
	show_str( 7,16,20, getmagictype(magic.Attrib));
	show_str( 8,16,14, magic.Mask);
	show_str( 9,16, 3, getboolean(magic.Active));
	show_str(10,16, 3, getboolean(magic.Deleted));
	show_str(11,16,20, magic.From);

	switch(magic.Attrib) {
		case MG_ADOPT:
		case MG_MOVE:
				show_str(12,16,20, magic.ToArea);
				break;
		case MG_EXEC:
				show_str(12,16,64, magic.Cmd);
				show_bool(13,16, magic.Compile);
				break;
		case MG_UNPACK:
		case MG_COPY:
				show_bool(13,16, magic.Compile);
				show_str(12,16,64, magic.Path);
				break;
		case MG_KEEPNUM:
				show_int(12,16, magic.KeepNum);
				break;
	}
}
示例#2
0
文件: m_ol.c 项目: ftnapps/FTNd
void ol_doc(void)
{
    FILE    *fp, *wp;
    char    *temp, out[1024];
    int	    nr = 0;

    temp = calloc(PATH_MAX, sizeof(char));
    snprintf(temp, PATH_MAX, "%s/etc/oneline.data", getenv("FTND_ROOT"));
    if ((fp = fopen(temp, "r"))) {
	if ((wp = open_webdoc((char *)"oneliners.html", (char *)"Oneliners", NULL))) {
	    fprintf(wp, "<A HREF=\"index.html\">Main</A>\n");
	    fprintf(wp, "<P>\n");
	    fprintf(wp, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n");
	    fprintf(wp, "<TBODY>\n");
	    fread(&olhdr, sizeof(olhdr), 1, fp);
	    while (fread(&ol, olhdr.recsize, 1, fp) == 1) {
		nr++;
		html_massage(ol.Oneline, out, 1023);
		fprintf(wp, "<TR><TD>%d</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", 
		    nr, out, ol.UserName, ol.DateOfEntry, getboolean(ol.Available));
	    }
	    fprintf(wp, "</TBODY>\n");
	    fprintf(wp, "</TABLE>\n");
	    close_webdoc(wp);
	}
	fclose(fp);
    }
    free(temp);
}
示例#3
0
LVAL xlc_seq_write(void)
{
    seq_type arg1 = getseq(xlgaseq());
    FILE * arg2 = getfile(xlgastream());
    int arg3 = getboolean(xlgetarg());

    xllastarg();
    seq_write(arg1, arg2, arg3);
    return NIL;
}
示例#4
0
文件: m_service.c 项目: ftnapps/FTNd
int service_doc(FILE *fp, FILE *toc, int page)
{
    char    temp[PATH_MAX];
    FILE    *wp, *no;
    int	    j;

    snprintf(temp, PATH_MAX, "%s/etc/service.data", getenv("FTND_ROOT"));
    if ((no = fopen(temp, "r")) == NULL)
	return page;

    page = newpage(fp, page);
    addtoc(fp, toc, 16, 0, page, (char *)"Service manager");
    j = 0;

    fprintf(fp, "\n");
    fprintf(fp, "     Service           Action     Active\n");
    fprintf(fp, "     ---------------   --------   ------\n");
    fread(&servhdr, sizeof(servhdr), 1, no);

    wp = open_webdoc((char *)"service.html", (char *)"Mail Service Manager", NULL);
    fprintf(wp, "<A HREF=\"index.html\">Main</A>\n");
    fprintf(wp, "<UL>\n");
    fprintf(wp, "<TABLE width='400' border='0' cellspacing='0' cellpadding='2'>\n");
    fprintf(wp, "<TBODY>\n");
    fprintf(wp, "<TR><TH align='left'>Service</TH><TH align='left'>Action</TH><TH align='left'>Active</TH></TR>\n");

    while ((fread(&servrec, servhdr.recsize, 1, no)) == 1) {

	if (j == 50) {
	    page = newpage(fp, page);
	    fprintf(fp, "\n");
	    fprintf(fp, "     Service           Action     Active\n");
	    fprintf(fp, "     ---------------   --------   ------\n");
	    j = 0;
	}

	fprintf(wp, "<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n",
		servrec.Service, getservice(servrec.Action), getboolean(servrec.Active));
	fprintf(fp, "     %-15s   %-8s   %s\n", servrec.Service, getservice(servrec.Action), getboolean(servrec.Active));
	j++;
    }

    fclose(no);
    return page;
}
示例#5
0
文件: m_ngroup.c 项目: ftnapps/FTNd
int newf_group_doc(FILE *fp, FILE *toc, int page)
{
    char    *temp, group[13];
    FILE    *ip, *wp, *no;
    int	    i, groups, refs, nr;

    temp = calloc(PATH_MAX, sizeof(char));
    snprintf(temp, PATH_MAX, "%s/etc/ngroups.data", getenv("FTND_ROOT"));
    if ((no = fopen(temp, "r")) == NULL) {
	free(temp);
	return page;
    }

    wp = open_webdoc((char *)"newgroup.html", (char *)"Newfiles groups", NULL);
    fprintf(wp, "<A HREF=\"index.html\">Main</A>\n");
    
    page = newpage(fp, page);
    addtoc(fp, toc, 11, 0, page, (char *)"Newfiles announce groups");
    fprintf(fp, "\n");
    fprintf(fp, "   Name         Act Comment\n");
    fprintf(fp, "   ------------ --- --------------------------------------------------\n");

    fread(&ngrouphdr, sizeof(ngrouphdr), 1, no);
    fseek(no, 0, SEEK_SET);
    fread(&ngrouphdr, ngrouphdr.hdrsize, 1, no);

    fprintf(wp, "<P>\n");
    fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
    fprintf(wp, "<COL width='20%%'><COL width='5%%'><COL width='75%%'>\n");
    fprintf(wp, "<TBODY>\n");
    fprintf(wp, "<TR><TH align='left'>Name</TH><TH align='left'>Act</TH><TH align='left'>Comment</TH></TR>\n");

    while ((fread(&ngroup, ngrouphdr.recsize, 1, no)) == 1) {
	fprintf(fp, "   %-12s %s %s\n", ngroup.Name, getboolean(ngroup.Active), ngroup.Comment);
	fprintf(wp, "<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", ngroup.Name, getboolean(ngroup.Active), ngroup.Comment);
    }
    
    fprintf(wp, "</TBODY>\n");
    fprintf(wp, "</TABLE>\n");

    fseek(no, ngrouphdr.hdrsize, SEEK_SET);
    while ((fread(&ngroup, ngrouphdr.recsize, 1, no)) == 1) {
	refs = 0;
	snprintf(temp, PATH_MAX, "%s/etc/fareas.data", getenv("FTND_ROOT"));
	if ((ip = fopen(temp, "r"))) {
	    fread(&areahdr, sizeof(areahdr), 1, ip);
	    nr = 0;
	    while ((fread(&area, areahdr.recsize, 1, ip)) == 1) {
		nr++;
		if (area.Available && (strcmp(ngroup.Name, area.NewGroup) == 0)) {
		    if (refs == 0) {
			fprintf(wp, "<HR>\n");
			fprintf(wp, "<H3>References for group %s</H3>\n", ngroup.Name);
			fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
			fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n");
			fprintf(wp, "<TBODY>\n");
		    }
		    refs++;
		    fprintf(wp, "<TR><TD><A HREF=\"filearea_%d.html\">File area %d</A></TD><TD>%s</TD></TR>\n", nr, nr, area.Name);
		}
	    }
	    fclose(ip);
	}
	snprintf(temp, PATH_MAX, "%s/etc/fgroups.data", getenv("FTND_ROOT"));
	if ((ip = fopen(temp, "r"))) {
	    fread(&fgrouphdr, fgrouphdr.hdrsize, 1, ip);
	    while ((fread(&fgroup, fgrouphdr.recsize, 1, ip)) == 1) {
		if (strcmp(ngroup.Name, fgroup.AnnGroup) == 0) {
		    if (refs == 0) {
			fprintf(wp, "<HR>\n");
			fprintf(wp, "<H3>References for group %s</H3>\n", ngroup.Name);
			fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
			fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n");
			fprintf(wp, "<TBODY>\n");
		    }
		    refs++;
		    fprintf(wp, "<TR><TD><A HREF=\"filegroup_%s.html\">File group %s</A></TD><TD>%s</TD></TR>\n", 
			    fgroup.Name, fgroup.Name, fgroup.Comment);
		}
	    }
	    fclose(ip);
	}
	snprintf(temp, PATH_MAX, "%s/etc/newfiles.data", getenv("FTND_ROOT"));
	if ((ip = fopen(temp, "r"))) {
	    fread(&newfileshdr, sizeof(newfileshdr), 1, ip);
	    nr = 0;
	    while ((fread(&newfiles, newfileshdr.recsize, 1, ip)) == 1) {
		nr++;
		groups = newfileshdr.grpsize / sizeof(group);
		for (i = 0; i < groups; i++) {
		    fread(&group, sizeof(group), 1, ip);
		    if (newfiles.Active && strlen(group) && (strcmp(ngroup.Name, group) == 0)) {
			if (refs == 0) {
			    fprintf(wp, "<HR>\n");
			    fprintf(wp, "<H3>References for group %s</H3>\n", ngroup.Name);
			    fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
			    fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n");
			    fprintf(wp, "<TBODY>\n");
			}
			refs++;
			fprintf(wp, "<TR><TD><A HREF=\"newfiles_%d.html\">Report %d</A></TD><TD>%s</TD></TR>\n",
			    nr, nr, newfiles.Comment);
		    }
		}
	    }
	    fclose(ip);
	}
	if (refs) {
	    fprintf(wp, "</TBODY>\n");
	    fprintf(wp, "</TABLE>\n");
	}
    }

    close_webdoc(wp);
	
    free(temp);
    fclose(no);
    return page;
}
示例#6
0
文件: m_magic.c 项目: ftnapps/FTNd
int tic_magic_doc(FILE *fp, FILE *toc, int page)
{
    char    temp[PATH_MAX];
    FILE    *wp, *ip, *no;
    int	    nr = 0i, j;

    snprintf(temp, PATH_MAX, "%s/etc/magic.data", getenv("FTND_ROOT"));
    if ((no = fopen(temp, "r")) == NULL)
	return page;

    page = newpage(fp, page);
    addtoc(fp, toc, 10, 4, page, (char *)"File Magic processing");
    j = 0;
    fprintf(fp, "\n\n");
    fread(&magichdr, sizeof(magichdr), 1, no);

    ip = open_webdoc((char *)"magic.html", (char *)"File Magic Processing", NULL);
    fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
    fprintf(ip, "<P>\n");
    fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n");
    fprintf(ip, "<TBODY>\n");
    fprintf(ip, "<TR><TH align='left'>Nr</TH><TH align='left'>Mask</TH><TH align='left'>Type</TH><TH align='left'>Active</TH></TR>\n");
	    
    while (fread(&magic, magichdr.recsize, 1, no) == 1) {
	if (j == 6) {
	    page = newpage(fp, page);
	    fprintf(fp, "\n");
	    j = 0;
	}

	nr++;
	snprintf(temp, 81, "magic_%d.html", nr);
	fprintf(ip, " <TR><TD><A HREF=\"%s\">%d</A></TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR>\n", 
		temp, nr, magic.Mask, getmagictype(magic.Attrib), getboolean(magic.Active));
	if ((wp = open_webdoc(temp, (char *)"File Magic", magic.Mask))) {
	    fprintf(wp, "<A HREF=\"index.html\">Main</A>&nbsp;<A HREF=\"magic.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 *)"Filemask", magic.Mask);
	    add_webtable(wp, (char *)"Magic type", getmagictype(magic.Attrib));
	    add_webtable(wp, (char *)"Active", getboolean(magic.Active));
	    fprintf(wp, "<TR><TH align='left'>TIC Area</TH><TD><A HREF=\"ticarea_%s.html\">%s</A></TD></TR>\n",
				                    magic.From, magic.From);
	    fprintf(fp, "   Filemask     %s\n", magic.Mask);
	    fprintf(fp, "   Type         %s\n", getmagictype(magic.Attrib));
	    fprintf(fp, "   Active       %s\n", getboolean(magic.Active));
	    fprintf(fp, "   Area         %s\n", magic.From);

	    switch (magic.Attrib) {
		case MG_ADOPT:
		case MG_MOVE:	    fprintf(fp, "   To area      %s\n", magic.ToArea);
				    fprintf(wp, "<TR><TH align='left'>TIC Area</TH><TD><A HREF=\"ticarea_%s.html\">%s</A></TD></TR>\n",
					    magic.ToArea, magic.ToArea);
				    break;
		case MG_EXEC:	    add_webtable(wp, (char *)"Command", magic.Cmd);
				    add_webtable(wp, (char *)"Compile nodelist", getboolean(magic.Compile));
				    fprintf(fp, "   Command      %s\n", magic.Cmd);
				    fprintf(fp, "   Compile NL   %s\n", getboolean(magic.Compile));
				    break;
		case MG_UNPACK:
		case MG_COPY:	    add_webtable(wp, (char *)"Compile nodelist", getboolean(magic.Compile));
				    add_webtable(wp, (char *)"Destination path", magic.Path);
				    fprintf(fp, "   Compile NL   %s\n", getboolean(magic.Compile));
				    fprintf(fp, "   Path         %s\n", magic.Path);
				    break;
		case MG_KEEPNUM:    add_webdigit(wp, (char *)"Keep # files", magic.KeepNum);
				    fprintf(fp, "   Keep # file  %d\n", magic.KeepNum);
				    break;
	    }
	    fprintf(wp, "</TBODY>\n");
	    fprintf(wp, "</TABLE>\n");
	    close_webdoc(wp);
	}
	
	fprintf(fp, "\n\n");
	j++;
    }

    fprintf(ip, "</TBODY>\n");
    fprintf(ip, "</TABLE>\n");
    close_webdoc(ip);
	
    fclose(no);
    return page;
}
示例#7
0
文件: m_mgroup.c 项目: bbs-io/mbse
int mail_group_doc(FILE *fp, FILE *toc, int page)
{
    char    temp[PATH_MAX], group[13];
    FILE    *ti, *wp, *ip, *no;
    int	    refs, i, j;
    time_t  tt;

    snprintf(temp, PATH_MAX, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
    if ((no = fopen(temp, "r")) == NULL)
	return page;

    addtoc(fp, toc, 9, 1, page, (char *)"Mail processing groups");
    j = 0;
    fprintf(fp, "\n");

    fread(&mgrouphdr, sizeof(mgrouphdr), 1, no);
    fseek(no, 0, SEEK_SET);
    fread(&mgrouphdr, mgrouphdr.hdrsize, 1, no);

    ip = open_webdoc((char *)"msggroup.html", (char *)"Message Groups", NULL);
    fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
    fprintf(ip, "<P>\n");
    fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n");
    fprintf(ip, "<TBODY>\n");
    fprintf(ip, "<TR><TH align='left'>Group</TH><TH align='left'>Comment</TH><TH align='left'>Active</TH></TR>\n");

    while ((fread(&mgroup, mgrouphdr.recsize, 1, no)) == 1) {
	if (j == 2) {
	    page = newpage(fp, page);
	    fprintf(fp, "\n");
	    j = 0;
	}

	snprintf(temp, 81, "msggroup_%s.html", mgroup.Name);
	fprintf(ip, " <TR><TD><A HREF=\"%s\">%s</A></TD><TD>%s</TD><TD>%s</TD></TR>\n", 
		temp, mgroup.Name, mgroup.Comment, getboolean(mgroup.Active));

	if ((wp = open_webdoc(temp, (char *)"Message group", mgroup.Comment))) {
	    fprintf(wp, "<A HREF=\"index.html\">Main</A>&nbsp;<A HREF=\"msggroup.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", mgroup.Name);
	    add_webtable(wp, (char *)"Comment", mgroup.Comment);
	    add_webtable(wp, (char *)"Active", getboolean(mgroup.Active));
	    add_webtable(wp, (char *)"Use Aka", aka2str(mgroup.UseAka));
	    add_webtable(wp, (char *)"Uplink", aka2str(mgroup.UpLink));
	    add_webtable(wp, (char *)"Areas file", mgroup.AreaFile);
	    add_webtable(wp, (char *)"Base path", mgroup.BasePath);
	    add_webdigit(wp, (char *)"Netmail reply area", mgroup.NetReply);
	    add_webdigit(wp, (char *)"Start new areas at", mgroup.StartArea);
	    web_secflags(wp, (char *)"Read security", mgroup.RDSec);
	    web_secflags(wp, (char *)"Write security", mgroup.WRSec);
	    web_secflags(wp, (char *)"Sysop security", mgroup.SYSec);
	    add_webtable(wp, (char *)"Def. link security", getflag(mgroup.LinkSec.flags, mgroup.LinkSec.notflags));
	    add_webtable(wp, (char *)"Use aliases", getboolean(mgroup.Aliases));
	    add_webtable(wp, (char *)"Add quotes", getboolean(mgroup.Quotes));
	    add_webtable(wp, (char *)"Auto add/del areas", getboolean(mgroup.AutoChange));
	    add_webtable(wp, (char *)"User add/del areas", getboolean(mgroup.UserChange));
	    add_webtable(wp, (char *)"Default charset", getftnchrs(mgroup.Charset));
	    snprintf(temp, 5, "#%03d", mgroup.GoldEDgroup);
	    add_webtable(wp, (char *)"GoldED groupid", temp);
	    tt = (time_t)mgroup.StartDate;
	    add_webtable(wp, (char *)"Start area date", ctime(&tt));
	    tt = (time_t)mgroup.LastDate;
	    add_webtable(wp, (char *)"Last active date", ctime(&tt));
	    fprintf(wp, "</TBODY>\n");
	    fprintf(wp, "</TABLE>\n");
	    fprintf(wp, "<HR>\n");
	    fprintf(wp, "<H3>Message Areas Reference</H3>\n");
	    refs = 0;
            snprintf(temp, PATH_MAX, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
	    if ((ti = fopen(temp, "r"))) {
		fread(&tichdr, sizeof(tichdr), 1, ti);
		fseek(ti, 0, SEEK_SET);
		fread(&msgshdr, msgshdr.hdrsize, 1, ti);
		i = 0;
		while ((fread(&msgs, msgshdr.recsize, 1, ti)) == 1) {
		    i++;
		    if (msgs.Active && (strcmp(mgroup.Name, msgs.Group) == 0)) {
			if (refs == 0) {
			    fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
			    fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n");
			    fprintf(wp, "<TBODY>\n");
			}
			fprintf(wp, "<TR><TD><A HREF=\"msgarea_%d.html\">Area %d</A></TD><TD>%s</TD></TR>\n", 
				i, i, msgs.Name);
			refs++;
		    }
		    fseek(ti, msgshdr.syssize, SEEK_CUR);
		}
		fclose(ti);
	    }
	    if (refs == 0)
		fprintf(wp, "No Message Areas References\n");
	    else {
		fprintf(wp, "</TBODY>\n");
		fprintf(wp, "</TABLE>\n");
	    }
	    fprintf(wp, "<HR>\n");
	    fprintf(wp, "<H3>Nodes Reference</H3>\n");
	    refs = 0;
	    snprintf(temp, PATH_MAX, "%s/etc/nodes.data", getenv("MBSE_ROOT"));
	    if ((ti = fopen(temp, "r"))) {
		fread(&nodeshdr, sizeof(nodeshdr), 1, ti);
		fseek(ti, 0, SEEK_SET);
		fread(&nodeshdr, nodeshdr.hdrsize, 1, ti);
		while ((fread(&nodes, nodeshdr.recsize, 1, ti)) == 1) {
		    fseek(ti, nodeshdr.filegrp, SEEK_CUR);
		    for (i = 0; i < nodeshdr.mailgrp / sizeof(group); i++) {
			fread(&group, sizeof(group), 1, ti);
			if (strcmp(group, mgroup.Name) == 0) {
			    if (refs == 0) {
				fprintf(wp, "<TABLE width='600' border='0' cellspacing='0' cellpadding='2'>\n");
				fprintf(wp, "<COL width='20%%'><COL width='80%%'>\n");
				fprintf(wp, "<TBODY>\n");
			    }
			    fprintf(wp, "<TR><TD><A HREF=\"node_%d_%d_%d_%d_%s.html\">%s</A></TD><TD>%s</TD></TR>\n", 
				    nodes.Aka[0].zone, nodes.Aka[0].net, nodes.Aka[0].node, nodes.Aka[0].point, 
				    nodes.Aka[0].domain, aka2str(nodes.Aka[0]), nodes.Sysop);
			    refs++;
			}
		    }
		}
		fclose(ti);
	    }
	    if (refs == 0)
		fprintf(wp, "No Nodes References\n");
	    else {
		fprintf(wp, "</TBODY>\n");
		fprintf(wp, "</TABLE>\n");
	    }
	    fprintf(wp, "<HR>\n");
	    fprintf(wp, "<H3>Group Statistics</H3>\n");
	    add_statcnt(wp, (char *)"received messages", mgroup.MsgsRcvd);
	    add_statcnt(wp, (char *)"sent messages", mgroup.MsgsSent);
	    close_webdoc(wp);
	}
	
	fprintf(fp, "    Group name         %s\n", mgroup.Name);
	fprintf(fp, "    Comment            %s\n", mgroup.Comment);
	fprintf(fp, "    Active             %s\n", getboolean(mgroup.Active));
	fprintf(fp, "    Use Aka            %s\n", aka2str(mgroup.UseAka));
	fprintf(fp, "    Uplink             %s\n", aka2str(mgroup.UpLink));
	fprintf(fp, "    Areas file         %s\n", mgroup.AreaFile);
	fprintf(fp, "    Base path          %s\n", mgroup.BasePath);
	fprintf(fp, "    Netmail reply area %d\n", mgroup.NetReply);
	fprintf(fp, "    Start new areas at %d\n", mgroup.StartArea);
	fprintf(fp, "    Read security      %s\n", get_secstr(mgroup.RDSec));
	fprintf(fp, "    Write security     %s\n", get_secstr(mgroup.WRSec));
	fprintf(fp, "    Sysop security     %s\n", get_secstr(mgroup.SYSec));
	fprintf(fp, "    Def. link security       %s\n", getflag(mgroup.LinkSec.flags, mgroup.LinkSec.notflags));
	fprintf(fp, "    Use aliases        %s\n", getboolean(mgroup.Aliases));
	fprintf(fp, "    Add quotes         %s\n", getboolean(mgroup.Quotes));
	fprintf(fp, "    Auto add/del areas %s\n", getboolean(mgroup.AutoChange));
	fprintf(fp, "    User add/del areas %s\n", getboolean(mgroup.UserChange));
	fprintf(fp, "    Default charset    %s\n", getftnchrs(mgroup.Charset));
	fprintf(fp, "    GoldED groupid     #%03d\n", mgroup.GoldEDgroup);
	tt = (time_t)mgroup.StartDate;
	fprintf(fp, "    Start area date    %s",   ctime(&tt));
	tt = (time_t)mgroup.LastDate;
	fprintf(fp, "    Last active date   %s\n", ctime(&tt));
	fprintf(fp, "\n\n");
	j++;
    }

    fprintf(ip, "</TBODY>\n");
    fprintf(ip, "</TABLE>\n");
    close_webdoc(ip);
	
    fclose(no);
    return page;
}
示例#8
0
文件: m_fido.c 项目: bbs-io/mbse
int fido_doc(FILE *fp, FILE *toc, int page)
{
    char    temp[PATH_MAX];
    FILE    *wp, *ip, *fido;
    int	    i, j;

    snprintf(temp, PATH_MAX, "%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;

    fprintf(fp, "\n\n");
    fread(&fidonethdr, sizeof(fidonethdr), 1, fido);

    ip = open_webdoc((char *)"fidonet.html", (char *)"Fidonet networks", NULL);
    fprintf(ip, "<A HREF=\"index.html\">Main</A>\n<P>\n");
    fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n");
    fprintf(ip, "<TBODY>\n");
    fprintf(ip, "<TR><TH align='left'>Zone</TH><TH align='left'>Comment</TH><TH align='left'>Available</TH></TR>\n");

    while ((fread(&fidonet, fidonethdr.recsize, 1, fido)) == 1) {

	if (j == 6) {
	    page = newpage(fp, page);
	    fprintf(fp, "\n");
	    j = 0;
	}

	snprintf(temp, 81, "fidonet_%d.html", fidonet.zone[0]);
	fprintf(ip, " <TR><TD><A HREF=\"%s\">%d</A></TD><TD>%s</TD><TD>%s</TD></TR>\n", 
		temp, fidonet.zone[0], fidonet.comment, getboolean(fidonet.available));

	if ((wp = open_webdoc(temp, (char *)"Fidonet network", fidonet.comment))) {
	    fprintf(wp, "<A HREF=\"index.html\">Main</A>&nbsp;<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) {
		    snprintf(temp, 81, "%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);
		}
	    snprintf(temp, 81, "%d", fidonet.zone[0]);
	    for (i = 1; i < 6; i++)
		if (fidonet.zone[i])
		    snprintf(temp, 81, "%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, "</TBODY>\n");
    fprintf(ip, "</TABLE>\n");
    close_webdoc(ip);
	
    fclose(fido);
    return page;
}
示例#9
0
文件: m_ibc.c 项目: ftnapps/FTNd
int ibc_doc(FILE *fp, FILE *toc, int page)
{
    char    temp[PATH_MAX];
    FILE    *wp, *ip, *vir;
    int	    nr = 0, j;

    snprintf(temp, PATH_MAX, "%s/etc/ibcsrv.data", getenv("FTND_ROOT"));
    if ((vir = fopen(temp, "r")) == NULL)
        return page;

    page = newpage(fp, page);
    addtoc(fp, toc, 20, 0, page, (char *)"Internet BBS Chatservers");
    j = 0;
    fprintf(fp, "\n\n");
    fread(&ibcsrvhdr, sizeof(ibcsrvhdr), 1, vir);

    ip = open_webdoc((char *)"ibcsrv.html", (char *)"Internet BBS Chatservers", NULL);
    fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
    fprintf(ip, "<UL>\n");

    while ((fread(&ibcsrv, ibcsrvhdr.recsize, 1, vir)) == 1) {

        if (j == 5) {
            page = newpage(fp, page);
            fprintf(fp, "\n");
            j = 0;
        }

        nr++;
        snprintf(temp, 81, "ibcsrv_%d.html", nr);
        fprintf(ip, "<LI><A HREF=\"%s\">%s</A></LI>\n", temp, ibcsrv.comment);
        if ((wp = open_webdoc(temp, (char *)"Internet BBS Chatserver", ibcsrv.comment))) {
            fprintf(wp, "<A HREF=\"index.html\">Main</A>&nbsp;<A HREF=\"ibcsrv.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 *)"Server comment", ibcsrv.comment);
            add_webtable(wp, (char *)"Server address", ibcsrv.server);
            add_webtable(wp, (char *)"Uses dynamic dns", getboolean(ibcsrv.Dyndns));
            add_webtable(wp, (char *)"My address", ibcsrv.myname);
            add_webtable(wp, (char *)"Active", getboolean(ibcsrv.Active));
            add_webtable(wp, (char *)"Compresion", getboolean(ibcsrv.Compress));
            fprintf(wp, "</TBODY>\n");
            fprintf(wp, "</TABLE>\n");
            close_webdoc(wp);
        }

        fprintf(fp, "      Comment     %s\n", ibcsrv.comment);
        fprintf(fp, "      Server      %s\n", ibcsrv.server);
        fprintf(fp, "      Dynamic dns %s\n", getboolean(ibcsrv.Dyndns));
        fprintf(fp, "      My name     %s\n", ibcsrv.myname);
        fprintf(fp, "      Active      %s\n", getboolean(ibcsrv.Active));
        fprintf(fp, "      Compression %s\n", getboolean(ibcsrv.Compress));
        fprintf(fp, "\n\n\n");
        j++;
    }

    fprintf(ip, "</UL>\n");
    close_webdoc(ip);

    fclose(vir);
    return page;
}
示例#10
0
文件: m_hatch.c 项目: bbs-io/mbse
int tic_hatch_doc(FILE *fp, FILE *toc, int page)
{
    char    temp[PATH_MAX], *tmp = NULL;
    FILE    *wp, *ip, *no;
    int	    i, j, nr = 0, All;

    snprintf(temp, PATH_MAX, "%s/etc/hatch.data", getenv("MBSE_ROOT"));
    if ((no = fopen(temp, "r")) == NULL)
	return page;

    page = newpage(fp, page);
    addtoc(fp, toc, 10, 3, page, (char *)"Hatch manager");
    j = 1;

    fprintf(fp, "\n\n");
    fread(&hatchhdr, sizeof(hatchhdr), 1, no);

    ip = open_webdoc((char *)"hatch.html", (char *)"File Areas", NULL);
    fprintf(ip, "<A HREF=\"index.html\">Main</A>\n");
    fprintf(ip, "<P>\n");
    fprintf(ip, "<TABLE border='1' cellspacing='0' cellpadding='2'>\n");
    fprintf(ip, "<TBODY>\n");
    fprintf(ip, "<TR><TH align='left'>Nr</TH><TH align='left'>Pattern</TH><TH align='left'>Active</TH></TR>\n");
	    
    while ((fread(&hatch, hatchhdr.recsize, 1, no)) == 1) {

	nr++;
	if (j == 5) {
	    page = newpage(fp, page);
	    fprintf(fp, "\n");
	    j = 0;
	}

	snprintf(temp, 81, "hatch_%d.html", nr);
	fprintf(ip, " <TR><TD><A HREF=\"%s\">%d</A></TD><TD>%s</TD><TD>%s</TD></TR>\n", 
		temp, nr, hatch.Spec, getboolean(hatch.Active));
	if ((wp = open_webdoc(temp, (char *)"Hatch Manager", hatch.Spec))) {
	    fprintf(wp, "<A HREF=\"index.html\">Main</A>&nbsp;<A HREF=\"hatch.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 *)"File specification", hatch.Spec);
	    fprintf(wp, "<TR><TH align='left'>TIC File area</TH><TD><A HREF=\"ticarea_%s.html\">%s</A></TD></TR>\n", 
		    hatch.Name, hatch.Name);
	    add_webtable(wp, (char *)"Replace file", hatch.Replace);
	    add_webtable(wp, (char *)"Magic filename", hatch.Magic);
	    add_webtable(wp, (char *)"File description", hatch.Desc);
	    add_webtable(wp, (char *)"Dupe check", getboolean(hatch.DupeCheck));
	    add_webtable(wp, (char *)"Active", getboolean(hatch.Active));
	}
	
	fprintf(fp, "     File spec         %s\n", hatch.Spec);
	fprintf(fp, "     File echo         %s\n", hatch.Name);
	fprintf(fp, "     Replace file      %s\n", hatch.Replace);
	fprintf(fp, "     Magic filename    %s\n", hatch.Magic);
	fprintf(fp, "     Description       %s\n", hatch.Desc);
	fprintf(fp, "     Dupe check        %s\n", getboolean(hatch.DupeCheck));
	fprintf(fp, "     Active            %s\n", getboolean(hatch.Active));
	tmp = NULL;
	for (i = 0; i < 7; i++)
	    if (hatch.Days[i]) {
		if (tmp == NULL) {
		    tmp = xstrcpy(Days[i]);
		} else {
		    tmp = xstrcat(tmp, (char *)", ");
		    tmp = xstrcat(tmp, Days[i]);
		}
	    }
	if (tmp == NULL)
	    tmp = xstrcpy((char *)"None");
	if (wp != NULL)
	    add_webtable(wp, (char *)"Hatch on days", tmp);
	fprintf(fp, "     Hatch on days     %s\n", tmp);
	if (tmp != NULL) {
	    free(tmp);
	    tmp = NULL;
	}
	All = TRUE;
	for (i = 0; i < 32; i++)
	    if (!hatch.Month[i])
		All = FALSE;
	if (!All) {
	    for (i = 0; i < 32; i++) {
		if (hatch.Month[i]) {
		    if (tmp == NULL) {
			tmp = xstrcpy(Month[i]);
		    } else {
			tmp = xstrcat(tmp, (char *)", ");
			tmp = xstrcat(tmp, Month[i]);
		    }
		}
	    }
	} else {
	    tmp = xstrcpy((char *)"All dates");
	}
	if (tmp == NULL)
	    tmp = xstrcpy((char *)"None");
	if (wp != NULL) {
	    add_webtable(wp, (char *)"Hatch on dates", tmp);
	    fprintf(wp, "</TBODY>\n");
	    fprintf(wp, "</TABLE>\n");
	    fprintf(wp, "<HR>\n");
	    fprintf(wp, "<H3>Hatch Statistics</H3>\n");
	    add_statcnt(wp, (char *)"hatched files", hatch.Hatched);
	    close_webdoc(wp);
	}
	fprintf(fp, "     Hatch on dates    %s\n", tmp);
	if (tmp != NULL) {
	    free(tmp);
	    tmp = NULL;
	}
	fprintf(fp, "\n\n");
	j++;
    }

    fprintf(ip, "</TBODY>\n");
    fprintf(ip, "</TABLE>\n");
    close_webdoc(ip);
	    
    fclose(no);
    return page;
}