Changes to the system aka editor
This commit is contained in:
parent
f947ba80f5
commit
3cc5a6fa3a
10
ChangeLog
10
ChangeLog
@ -4,6 +4,10 @@ $Id$
|
|||||||
|
|
||||||
v0.35.01 05-Jun-2002
|
v0.35.01 05-Jun-2002
|
||||||
|
|
||||||
|
upgrade:
|
||||||
|
Start mbsetup, check in the nodes setup if all the session
|
||||||
|
passwords are ok.
|
||||||
|
|
||||||
general:
|
general:
|
||||||
Added structures for netmail routing file.
|
Added structures for netmail routing file.
|
||||||
Expanded nodes structures for FTP and Directory transfers.
|
Expanded nodes structures for FTP and Directory transfers.
|
||||||
@ -31,6 +35,10 @@ v0.35.01 05-Jun-2002
|
|||||||
Fixed a problem with the calculated filetransfer speed with
|
Fixed a problem with the calculated filetransfer speed with
|
||||||
large files on fast connections.
|
large files on fast connections.
|
||||||
|
|
||||||
|
mbfido:
|
||||||
|
When creating uplink area requests the from aka used is now
|
||||||
|
the aka defined in the group.
|
||||||
|
|
||||||
mbfile:
|
mbfile:
|
||||||
Added -v commandline switch to supress virus checking for the
|
Added -v commandline switch to supress virus checking for the
|
||||||
adopt and import commands. Use with great care.
|
adopt and import commands. Use with great care.
|
||||||
@ -45,6 +53,8 @@ v0.35.01 05-Jun-2002
|
|||||||
in the setup and enabled. Others are shown there with default
|
in the setup and enabled. Others are shown there with default
|
||||||
paths but are disabled, they can be used as examples.
|
paths but are disabled, they can be used as examples.
|
||||||
Fixed crashing mbsetup in menus 10.3.2, 10.4.5 and 10.4.6.
|
Fixed crashing mbsetup in menus 10.3.2, 10.4.5 and 10.4.6.
|
||||||
|
Menu 1.1 system aka's now has the option to move aka's to
|
||||||
|
other positions. Added some check's on the main aka's.
|
||||||
|
|
||||||
|
|
||||||
v0.33.21 04-Jun-2002
|
v0.33.21 04-Jun-2002
|
||||||
|
11
README
11
README
@ -1,4 +1,6 @@
|
|||||||
MBSE BBS Packages.
|
$Id$
|
||||||
|
|
||||||
|
MBSE BBS Packages.
|
||||||
|
|
||||||
|
|
||||||
Distribution naming scheme:
|
Distribution naming scheme:
|
||||||
@ -13,4 +15,11 @@ mbsebbs-0.33.18.tar.gz
|
|||||||
For fidonet distribution, the tar archive and FILE_ID.DIZ are
|
For fidonet distribution, the tar archive and FILE_ID.DIZ are
|
||||||
zipped together in a file like mbb03318.zip
|
zipped together in a file like mbb03318.zip
|
||||||
|
|
||||||
|
The odd minor version numbers are developent versions only. From 0.35.1 and up
|
||||||
|
these will not be released anymore but are only available via cvs.
|
||||||
|
|
||||||
|
The even minor version numbers will be stable releases, they will be available
|
||||||
|
at http://mbse.sourceforge.net and at 2:280/2802. The first version using this
|
||||||
|
scheme is 0.36.1
|
||||||
|
|
||||||
|
|
||||||
|
5
TODO
5
TODO
@ -42,6 +42,9 @@ mbfido:
|
|||||||
U: Code cleanup and make a structure in this program. Remove duplicate
|
U: Code cleanup and make a structure in this program. Remove duplicate
|
||||||
or similar functions.
|
or similar functions.
|
||||||
|
|
||||||
|
U: AreaMgr uplink mails use the default best aka instead of the aka
|
||||||
|
defined in that specific group.
|
||||||
|
|
||||||
N: Remove memory leak during toss. (It's ok for less 5000 messages for
|
N: Remove memory leak during toss. (It's ok for less 5000 messages for
|
||||||
each run).
|
each run).
|
||||||
|
|
||||||
@ -115,7 +118,7 @@ mbnewusr:
|
|||||||
mbsetup:
|
mbsetup:
|
||||||
U: PickAka function lets mbsetup crash if domain is 12 characters
|
U: PickAka function lets mbsetup crash if domain is 12 characters
|
||||||
|
|
||||||
U: Use some sort of sorting for the system aka's and make sure the
|
N: Use some sort of sorting for the system aka's and make sure the
|
||||||
main aka with zone's is listed first. Having zone's mixed gives
|
main aka with zone's is listed first. Having zone's mixed gives
|
||||||
too high outbound stats and the outbound is scanned multiple times.
|
too high outbound stats and the outbound is scanned multiple times.
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</HEAD>
|
</HEAD>
|
||||||
<BODY>
|
<BODY>
|
||||||
<BLOCKQUOTE>
|
<BLOCKQUOTE>
|
||||||
<h5>Last update 16-May-2002</h5>
|
<h5>Last update 17-Jun-2002</h5>
|
||||||
<P> <P>
|
<P> <P>
|
||||||
|
|
||||||
<H1>MBSE BBS Setup - Global Setup</H1>
|
<H1>MBSE BBS Setup - Global Setup</H1>
|
||||||
@ -24,7 +24,9 @@ be discussed below.
|
|||||||
|
|
||||||
<h3>1.1. Fidonet Aka's.</h3>
|
<h3>1.1. Fidonet Aka's.</h3>
|
||||||
<p>
|
<p>
|
||||||
Here you can enter 40 fidonet addresses. These are 5d addresses.
|
Here you can enter 40 fidonet addresses. These are 5d addresses. Make sure you
|
||||||
|
group the different zone's together, strange things will happen if you don't
|
||||||
|
group them.
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
<h3>1.2. Edit Registration Info.</H3>
|
<h3>1.2. Edit Registration Info.</H3>
|
||||||
|
@ -188,7 +188,7 @@ int CheckTicGroup(char *Area, int SendUplink, faddr *f)
|
|||||||
*/
|
*/
|
||||||
if (SendUplink) {
|
if (SendUplink) {
|
||||||
sprintf(temp, "+%s", Area);
|
sprintf(temp, "+%s", Area);
|
||||||
if (UplinkRequest(fido2faddr(fgroup.UpLink), TRUE, temp)) {
|
if (UplinkRequest(fido2faddr(fgroup.UpLink), fido2faddr(fgroup.UseAka), TRUE, temp)) {
|
||||||
WriteError("Can't send netmail to uplink");
|
WriteError("Can't send netmail to uplink");
|
||||||
fclose(ap);
|
fclose(ap);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
@ -121,7 +121,7 @@ int CheckEchoGroup(char *Area, int SendUplink, faddr *f)
|
|||||||
*/
|
*/
|
||||||
if (SendUplink) {
|
if (SendUplink) {
|
||||||
sprintf(temp, "+%s", Area);
|
sprintf(temp, "+%s", Area);
|
||||||
if (UplinkRequest(fido2faddr(mgroup.UpLink), FALSE, temp)) {
|
if (UplinkRequest(fido2faddr(mgroup.UpLink), fido2faddr(mgroup.UseAka), FALSE, temp)) {
|
||||||
WriteError("Can't send netmail to uplink");
|
WriteError("Can't send netmail to uplink");
|
||||||
fclose(ap);
|
fclose(ap);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
@ -296,24 +296,22 @@ void MgrNotify(faddr *t, char *Buf, FILE *tmp, int mgr)
|
|||||||
* 3 - No uplink password in setup
|
* 3 - No uplink password in setup
|
||||||
* 4 - Can't add mail to outbound
|
* 4 - Can't add mail to outbound
|
||||||
*/
|
*/
|
||||||
int UplinkRequest(faddr *t, int FileMgr, char *cmd)
|
int UplinkRequest(faddr *t, faddr *From, int FileMgr, char *cmd)
|
||||||
{
|
{
|
||||||
FILE *qp;
|
FILE *qp;
|
||||||
time_t Now;
|
time_t Now;
|
||||||
struct tm *tm;
|
struct tm *tm;
|
||||||
fidoaddr Orig, Dest;
|
fidoaddr Orig, Dest;
|
||||||
faddr From;
|
|
||||||
unsigned flags = M_PVT;
|
unsigned flags = M_PVT;
|
||||||
char ext[4], *mgrname, *subj;
|
char ext[4], *mgrname, *subj;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
From = *bestaka_s(t);
|
|
||||||
memset(&Orig, 0, sizeof(Orig));
|
memset(&Orig, 0, sizeof(Orig));
|
||||||
Orig.zone = From.zone;
|
Orig.zone = From->zone;
|
||||||
Orig.net = From.net;
|
Orig.net = From->net;
|
||||||
Orig.node = From.node;
|
Orig.node = From->node;
|
||||||
Orig.point = From.point;
|
Orig.point = From->point;
|
||||||
sprintf(Orig.domain, "%s", From.domain);
|
sprintf(Orig.domain, "%s", From->domain);
|
||||||
|
|
||||||
memset(&Dest, 0, sizeof(Dest));
|
memset(&Dest, 0, sizeof(Dest));
|
||||||
Dest.zone = t->zone;
|
Dest.zone = t->zone;
|
||||||
@ -373,7 +371,7 @@ int UplinkRequest(faddr *t, int FileMgr, char *cmd)
|
|||||||
if ((qp = OpenPkt(Orig, Dest, (char *)ext)) == NULL)
|
if ((qp = OpenPkt(Orig, Dest, (char *)ext)) == NULL)
|
||||||
return 4;
|
return 4;
|
||||||
|
|
||||||
if (AddMsgHdr(qp, &From, t, flags, 0, Now, mgrname, CFG.sysop_name, subj)) {
|
if (AddMsgHdr(qp, From, t, flags, 0, Now, mgrname, CFG.sysop_name, subj)) {
|
||||||
fclose(qp);
|
fclose(qp);
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
@ -687,7 +685,7 @@ int Areas(void)
|
|||||||
* Sent one uplink command with additions and deletions
|
* Sent one uplink command with additions and deletions
|
||||||
*/
|
*/
|
||||||
if (mgroup.UpLink.zone) {
|
if (mgroup.UpLink.zone) {
|
||||||
if (UplinkRequest(fido2faddr(mgroup.UpLink), FALSE, cmd)) {
|
if (UplinkRequest(fido2faddr(mgroup.UpLink), fido2faddr(mgroup.UseAka), FALSE, cmd)) {
|
||||||
WriteError("Uplink request failed");
|
WriteError("Uplink request failed");
|
||||||
} else {
|
} else {
|
||||||
Syslog('+', "AreaMgr request sent to %s", aka2str(mgroup.UpLink));
|
Syslog('+', "AreaMgr request sent to %s", aka2str(mgroup.UpLink));
|
||||||
@ -941,7 +939,7 @@ int Areas(void)
|
|||||||
* Sent one uplink command with additions and deletions
|
* Sent one uplink command with additions and deletions
|
||||||
*/
|
*/
|
||||||
if (fgroup.UpLink.zone) {
|
if (fgroup.UpLink.zone) {
|
||||||
if (UplinkRequest(fido2faddr(fgroup.UpLink), TRUE, cmd)) {
|
if (UplinkRequest(fido2faddr(fgroup.UpLink), fido2faddr(fgroup.UseAka), TRUE, cmd)) {
|
||||||
WriteError("Uplink request failed");
|
WriteError("Uplink request failed");
|
||||||
} else {
|
} else {
|
||||||
Syslog('+', "AreaMgr request sent to %s", aka2str(fgroup.UpLink));
|
Syslog('+', "AreaMgr request sent to %s", aka2str(fgroup.UpLink));
|
||||||
|
@ -25,7 +25,7 @@ void CleanBuf(char *);
|
|||||||
void ShiftBuf(char *, int);
|
void ShiftBuf(char *, int);
|
||||||
void MgrPasswd(faddr *, char *, FILE *, int, int);
|
void MgrPasswd(faddr *, char *, FILE *, int, int);
|
||||||
void MgrNotify(faddr *, char *, FILE *, int);
|
void MgrNotify(faddr *, char *, FILE *, int);
|
||||||
int UplinkRequest(faddr *, int, char *);
|
int UplinkRequest(faddr *, faddr *, int, char *);
|
||||||
int Areas(void);
|
int Areas(void);
|
||||||
|
|
||||||
|
|
||||||
|
@ -584,6 +584,53 @@ char *select_pick(int max, int items)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
char *select_aka(int max, int items)
|
||||||
|
{
|
||||||
|
static char s[12];
|
||||||
|
static char *menu=(char *)"-";
|
||||||
|
char help[81];
|
||||||
|
int pick;
|
||||||
|
|
||||||
|
memset((char *)s, 0, 12);
|
||||||
|
|
||||||
|
if (max == 0)
|
||||||
|
sprintf(help, "Select ^\"-\"^ for previous level");
|
||||||
|
else
|
||||||
|
if (max > items)
|
||||||
|
sprintf(help, "Record (1..%d), ^\"-\"^ prev. level, ^\"P\" or \"N\"^ to page, ^\"M\"^ move aka", max);
|
||||||
|
else
|
||||||
|
sprintf(help, "Select record (1..%d), ^\"-\"^ for previous level ^\"M\"^ move aka", max);
|
||||||
|
showhelp(help);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Loop until the answer is right
|
||||||
|
*/
|
||||||
|
for (;;) {
|
||||||
|
mvprintw(LINES - 3, 6, "Enter your choice >");
|
||||||
|
menu = (char *)"-";
|
||||||
|
menu = edit_field(LINES - 3, 26, 6, '!', menu);
|
||||||
|
locate(LINES - 3, 6);
|
||||||
|
clrtoeol();
|
||||||
|
|
||||||
|
if (strncmp(menu, "-", 1) == 0)
|
||||||
|
break;
|
||||||
|
if (max > items) {
|
||||||
|
if (strncmp(menu, "N", 1) == 0)
|
||||||
|
break;
|
||||||
|
if (strncmp(menu, "P", 1) == 0)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (strncmp(menu, "M", 1) == 0)
|
||||||
|
break;
|
||||||
|
pick = atoi(menu);
|
||||||
|
if ((pick >= 1) && (pick <= max))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Select menu, max is the highest item to pick. Returns zero if
|
* Select menu, max is the highest item to pick. Returns zero if
|
||||||
|
@ -14,6 +14,7 @@ char *select_record(int, int);
|
|||||||
char *select_filearea(int, int);
|
char *select_filearea(int, int);
|
||||||
char *select_area(int, int);
|
char *select_area(int, int);
|
||||||
char *select_pick(int, int);
|
char *select_pick(int, int);
|
||||||
|
char *select_aka(int, int);
|
||||||
char *select_show(int);
|
char *select_show(int);
|
||||||
int select_menu(int);
|
int select_menu(int);
|
||||||
int select_tag(int);
|
int select_tag(int);
|
||||||
|
@ -1187,55 +1187,103 @@ void e_aka(int Area)
|
|||||||
|
|
||||||
void e_fidoakas(void)
|
void e_fidoakas(void)
|
||||||
{
|
{
|
||||||
int i, x, y, o;
|
int i, j, k, x, y, o = 0, error, from, too;
|
||||||
char pick[12];
|
char pick[12];
|
||||||
char temp[121];
|
char temp[121];
|
||||||
|
|
||||||
o = 0;
|
for (;;) {
|
||||||
for (;;) {
|
clr_index();
|
||||||
clr_index();
|
set_color(WHITE, BLACK);
|
||||||
set_color(WHITE, BLACK);
|
mvprintw( 5, 2, "1.1 EDIT FIDONET AKA'S");
|
||||||
mvprintw( 5, 2, "1.1 EDIT FIDONET AKA'S");
|
set_color(CYAN, BLACK);
|
||||||
set_color(CYAN, BLACK);
|
x = 2;
|
||||||
x = 2;
|
y = 7;
|
||||||
|
set_color(CYAN, BLACK);
|
||||||
|
for (i = 1; i <= 20; i++) {
|
||||||
|
if (i == 11) {
|
||||||
|
x = 42;
|
||||||
y = 7;
|
y = 7;
|
||||||
set_color(CYAN, BLACK);
|
}
|
||||||
for (i = 1; i <= 20; i++) {
|
if ((o + i) <= 40) {
|
||||||
if (i == 11) {
|
if (CFG.akavalid[o+i-1])
|
||||||
x = 42;
|
set_color(CYAN, BLACK);
|
||||||
y = 7;
|
else
|
||||||
}
|
set_color(LIGHTBLUE, BLACK);
|
||||||
if ((o + i) <= 40) {
|
if (CFG.akavalid[o+i-1]) {
|
||||||
if (CFG.akavalid[o+i-1])
|
sprintf(temp, "%3d %s", o+i, aka2str(CFG.aka[o+i-1]));
|
||||||
set_color(CYAN, BLACK);
|
temp[38] = '\0';
|
||||||
else
|
} else
|
||||||
set_color(LIGHTBLUE, BLACK);
|
sprintf(temp, "%3d", o+i);
|
||||||
if (CFG.akavalid[o+i-1]) {
|
mvprintw(y, x, temp);
|
||||||
sprintf(temp, "%3d %s", o+i, aka2str(CFG.aka[o+i-1]));
|
y++;
|
||||||
temp[38] = '\0';
|
}
|
||||||
} else
|
|
||||||
sprintf(temp, "%3d", o+i);
|
|
||||||
mvprintw(y, x, temp);
|
|
||||||
y++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
strcpy(pick, select_pick(40, 20));
|
|
||||||
|
|
||||||
if (strncmp(pick, "-", 1) == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strncmp(pick, "N", 1) == 0)
|
|
||||||
if ((o + 20) < 40)
|
|
||||||
o = o + 20;
|
|
||||||
|
|
||||||
if (strncmp(pick, "P", 1) == 0)
|
|
||||||
if ((o - 20) >= 0)
|
|
||||||
o = o - 20;
|
|
||||||
|
|
||||||
if ((atoi(pick) >= 1) && (atoi(pick) <= 40))
|
|
||||||
e_aka(atoi(pick)-1);
|
|
||||||
}
|
}
|
||||||
|
strcpy(pick, select_aka(40, 20));
|
||||||
|
|
||||||
|
if (strncmp(pick, "-", 1) == 0) {
|
||||||
|
error = FALSE;
|
||||||
|
/*
|
||||||
|
* Various checks on the system aka's.
|
||||||
|
*/
|
||||||
|
if ((! CFG.aka[0].zone) && (! CFG.akavalid[0])) {
|
||||||
|
errmsg("First aka (main aka) must be valid");
|
||||||
|
error = TRUE;
|
||||||
|
}
|
||||||
|
if (error == FALSE) {
|
||||||
|
/*
|
||||||
|
* Check if aka's are in one continues block
|
||||||
|
*/
|
||||||
|
k = 0;
|
||||||
|
for (j = 0; j < 40; j++)
|
||||||
|
if (CFG.akavalid[j] && CFG.aka[j].zone)
|
||||||
|
k++;
|
||||||
|
for (j = k; j < 40; j++)
|
||||||
|
if (CFG.akavalid[j] || CFG.aka[j].zone)
|
||||||
|
error = TRUE;
|
||||||
|
if (error)
|
||||||
|
errmsg("All aka's must be in one continues block");
|
||||||
|
}
|
||||||
|
if (! error)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(pick, "N", 1) == 0)
|
||||||
|
if ((o + 20) < 40)
|
||||||
|
o = o + 20;
|
||||||
|
|
||||||
|
if (strncmp(pick, "P", 1) == 0)
|
||||||
|
if ((o - 20) >= 0)
|
||||||
|
o = o - 20;
|
||||||
|
|
||||||
|
if (strncmp(pick, "M", 1) == 0) {
|
||||||
|
from = too = 0;
|
||||||
|
mvprintw(LINES -3, 6, "Enter aka number (1..40) to move >");
|
||||||
|
from = edit_int(LINES -3, 42, from, (char *)"Enter record number");
|
||||||
|
locate(LINES -3, 6);
|
||||||
|
clrtoeol();
|
||||||
|
mvprintw(LINES -3, 6, "Enter new position (1..40) >");
|
||||||
|
too = edit_int(LINES -3, 36, too, (char *)"Enter destination record number");
|
||||||
|
if ((from == too) || (from == 0) || (too == 0) || (from > 40) || (too > 40)) {
|
||||||
|
errmsg("That makes no sense");
|
||||||
|
} else if (CFG.akavalid[from - 1] == FALSE) {
|
||||||
|
errmsg("Origin aka is invalid");
|
||||||
|
} else if (CFG.akavalid[too - 1]) {
|
||||||
|
errmsg("Destination record is in use");
|
||||||
|
} else if (yes_no((char *)"Proceed move")) {
|
||||||
|
CFG.aka[too -1].zone = CFG.aka[from -1].zone;
|
||||||
|
CFG.aka[too -1].net = CFG.aka[from -1].net;
|
||||||
|
CFG.aka[too -1].node = CFG.aka[from -1].node;
|
||||||
|
CFG.aka[too -1].point = CFG.aka[from -1].point;
|
||||||
|
strcpy(CFG.aka[too -1].domain, CFG.aka[from -1].domain);
|
||||||
|
CFG.akavalid[too -1] = TRUE;
|
||||||
|
CFG.akavalid[from -1] = FALSE;
|
||||||
|
memset(&CFG.aka[from -1], 0, sizeof(fidoaddr));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((atoi(pick) >= 1) && (atoi(pick) <= 40))
|
||||||
|
e_aka(atoi(pick)-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user