Fixed some AreaMgr problems, code cleanup, added Pause/Resume commands

This commit is contained in:
Michiel Broek 2002-03-02 13:27:44 +00:00
parent 792ef4649a
commit f00ac0d11d
3 changed files with 160 additions and 52 deletions

View File

@ -69,13 +69,13 @@ extern int echo_bad; /* Bad echomail */
extern int echo_dupe; /* Dupe echomail */ extern int echo_dupe; /* Dupe echomail */
int areamgr = 0; /* Nr of AreaMgr messages */ int areamgr = 0; /* Nr of AreaMgr messages */
int a_help = FALSE; int a_help = FALSE; /* Send AreaMgr help */
int a_list = FALSE; int a_list = FALSE; /* Send AreaMgr list */
int a_query = FALSE; int a_query = FALSE; /* Send AreaMgr query */
int a_stat = FALSE; int a_stat = FALSE; /* Send AreaMgr status */
int a_unlnk = FALSE; int a_unlnk = FALSE; /* Send AreaMgr unlinked */
int a_flow = FALSE; int a_flow = FALSE; /* Send AreaMgr flow */
unsigned long a_msgs = 0; unsigned long a_msgs = 0; /* Messages to rescan */
@ -105,8 +105,8 @@ void A_Help(faddr *t, char *replyid)
fprintf(fp, " to which you are not already connected\r"); fprintf(fp, " to which you are not already connected\r");
fprintf(fp, "%%FLOW To request a flow report of available areas\r"); fprintf(fp, "%%FLOW To request a flow report of available areas\r");
fprintf(fp, "%%STATUS To request a status report for your system\r"); fprintf(fp, "%%STATUS To request a status report for your system\r");
// fprintf(fp, "%%PAUSE To temporary disconnect from the connected echomail areas\r"); fprintf(fp, "%%PAUSE To temporary disconnect from the connected echomail areas\r");
// fprintf(fp, "%%RESUME To reconnect the temporary disconnected echomail areas\r"); fprintf(fp, "%%RESUME To reconnect the temporary disconnected echomail areas\r");
fprintf(fp, "%%PWD=newpwd To set a new AreaMgr and FileMgr password\r"); fprintf(fp, "%%PWD=newpwd To set a new AreaMgr and FileMgr password\r");
fprintf(fp, "%%MSGS <n> To set max. number of messages to be rescanned\r"); fprintf(fp, "%%MSGS <n> To set max. number of messages to be rescanned\r");
fprintf(fp, "%%RESCAN <area> To request messages from 'area' again\r"); fprintf(fp, "%%RESCAN <area> To request messages from 'area' again\r");
@ -149,14 +149,24 @@ void A_Query(faddr *t, char *replyid)
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"Your query request", replyid)) != NULL) { if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"Your query request", replyid)) != NULL) {
temp = calloc(PATH_MAX, sizeof(char)); temp = calloc(PATH_MAX, sizeof(char));
sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
mp = fopen(temp, "r"); if ((mp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
return;
}
fread(&msgshdr, sizeof(msgshdr), 1, mp); fread(&msgshdr, sizeof(msgshdr), 1, mp);
Cons = msgshdr.syssize / sizeof(System); Cons = msgshdr.syssize / sizeof(System);
sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
gp = fopen(temp, "r"); if ((gp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
fclose(mp);
return;
}
fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp); fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp);
free(temp);
fprintf(qp, "The following is a list of all connected message areas\r\r"); fprintf(qp, "The following is a list of all connected message areas\r\r");
@ -229,7 +239,6 @@ void A_Query(faddr *t, char *replyid)
fprintf(qp, "%s\r", TearLine()); fprintf(qp, "%s\r", TearLine());
CloseMail(qp, t); CloseMail(qp, t);
net_out++; net_out++;
free(temp);
} else } else
WriteError("Can't create netmail"); WriteError("Can't create netmail");
} }
@ -254,15 +263,26 @@ void A_List(faddr *t, char *replyid, int Notify)
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"AreaMgr List", replyid)) != NULL) { if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"AreaMgr List", replyid)) != NULL) {
WriteMailGroups(qp, f); WriteMailGroups(qp, f);
temp = calloc(PATH_MAX, sizeof(char));
temp = calloc(PATH_MAX, sizeof(char));
sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
mp = fopen(temp, "r"); if ((mp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
return;
}
fread(&msgshdr, sizeof(msgshdr), 1, mp); fread(&msgshdr, sizeof(msgshdr), 1, mp);
Cons = msgshdr.syssize / sizeof(System); Cons = msgshdr.syssize / sizeof(System);
sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
gp = fopen(temp, "r"); if ((gp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
fclose(mp);
return;
}
fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp); fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp);
free(temp);
fprintf(qp, "The following is a list of all message areas\r\r"); fprintf(qp, "The following is a list of all message areas\r\r");
@ -332,7 +352,6 @@ void A_List(faddr *t, char *replyid, int Notify)
fprintf(qp, "%s\r", TearLine()); fprintf(qp, "%s\r", TearLine());
CloseMail(qp, t); CloseMail(qp, t);
net_out++; net_out++;
free(temp);
} else } else
WriteError("Can't create netmail"); WriteError("Can't create netmail");
} }
@ -369,14 +388,24 @@ void A_Flow(faddr *t, char *replyid, int Notify)
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"AreaMgr Flow report", replyid)) != NULL) { if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"AreaMgr Flow report", replyid)) != NULL) {
temp = calloc(PATH_MAX, sizeof(char)); temp = calloc(PATH_MAX, sizeof(char));
sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
mp = fopen(temp, "r"); if ((mp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
return;
}
fread(&msgshdr, sizeof(msgshdr), 1, mp); fread(&msgshdr, sizeof(msgshdr), 1, mp);
Cons = msgshdr.syssize / sizeof(System); Cons = msgshdr.syssize / sizeof(System);
sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
gp = fopen(temp, "r"); if ((gp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
fclose(mp);
return;
}
fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp); fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp);
free(temp);
fprintf(qp, "The following is a flow report of all message areas\r\r"); fprintf(qp, "The following is a flow report of all message areas\r\r");
@ -439,7 +468,6 @@ void A_Flow(faddr *t, char *replyid, int Notify)
fprintf(qp, "%s\r", TearLine()); fprintf(qp, "%s\r", TearLine());
CloseMail(qp, t); CloseMail(qp, t);
net_out++; net_out++;
free(temp);
} else } else
WriteError("Can't create netmail"); WriteError("Can't create netmail");
} }
@ -472,8 +500,10 @@ void A_Status(faddr *t, char *replyid)
fprintf(fp, " Last week Last month Total ever\r"); fprintf(fp, " Last week Last month Total ever\r");
fprintf(fp, " ---------- ---------- ----------\r"); fprintf(fp, " ---------- ---------- ----------\r");
fprintf(fp, "Messages to you %-10ld %-10ld %-10ld\r", nodes.MailSent.lweek, nodes.MailSent.month[i], nodes.MailSent.total); fprintf(fp, "Messages to you %-10ld %-10ld %-10ld\r", nodes.MailSent.lweek,
fprintf(fp, "Messages from you %-10ld %-10ld %-10ld\r", nodes.MailRcvd.lweek, nodes.MailRcvd.month[i], nodes.MailRcvd.total); nodes.MailSent.month[i], nodes.MailSent.total);
fprintf(fp, "Messages from you %-10ld %-10ld %-10ld\r", nodes.MailRcvd.lweek,
nodes.MailRcvd.month[i], nodes.MailRcvd.total);
fprintf(fp, "\rWith regards, %s\r\r", CFG.sysop_name); fprintf(fp, "\rWith regards, %s\r\r", CFG.sysop_name);
@ -502,15 +532,26 @@ void A_Unlinked(faddr *t, char *replyid)
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"Your unlinked request", replyid)) != NULL) { if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Areamgr", (char *)"Your unlinked request", replyid)) != NULL) {
WriteMailGroups(qp, f); WriteMailGroups(qp, f);
temp = calloc(128, sizeof(char));
temp = calloc(PATH_MAX, sizeof(char));
sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
mp = fopen(temp, "r"); if ((mp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
return;
}
fread(&msgshdr, sizeof(msgshdr), 1, mp); fread(&msgshdr, sizeof(msgshdr), 1, mp);
Cons = msgshdr.syssize / sizeof(System); Cons = msgshdr.syssize / sizeof(System);
sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
gp = fopen(temp, "r"); if ((gp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
fclose(mp);
return;
}
fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp); fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp);
free(temp);
fprintf(qp, "The following is a list of all available message areas\r\r"); fprintf(qp, "The following is a list of all available message areas\r\r");
@ -584,7 +625,6 @@ void A_Unlinked(faddr *t, char *replyid)
fprintf(qp, "%s\r", TearLine()); fprintf(qp, "%s\r", TearLine());
CloseMail(qp, t); CloseMail(qp, t);
net_out++; net_out++;
free(temp);
} else } else
WriteError("Can't create netmail"); WriteError("Can't create netmail");
} }
@ -615,7 +655,7 @@ void A_Disconnect(faddr *t, char *Area, FILE *tmp)
if (!SearchMsgs(Area)) { if (!SearchMsgs(Area)) {
fprintf(tmp, "Area %s not found\n", Area); fprintf(tmp, "Area %s not found\n", Area);
Syslog('m', " Area not found"); Syslog('+', " Area not found");
return; return;
} }
@ -629,7 +669,7 @@ void A_Disconnect(faddr *t, char *Area, FILE *tmp)
} }
if (Group == NULL) { if (Group == NULL) {
fprintf(tmp, "You may not disconnect from area %s\n", Area); fprintf(tmp, "You may not disconnect from area %s\n", Area);
Syslog('m', " Group %s not available for node", mgroup.Name); Syslog('+', " Group %s not available for %s", mgroup.Name, ascfnode(t, 0x1f));
return; return;
} }
@ -639,7 +679,7 @@ void A_Disconnect(faddr *t, char *Area, FILE *tmp)
if (i > METRIC_POINT) { if (i > METRIC_POINT) {
fprintf(tmp, "You may not disconnect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f)); fprintf(tmp, "You may not disconnect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f));
Syslog('m', " Node may not disconnect from group %s", mgroup.Name); Syslog('+', " %s may not disconnect from group %s", ascfnode(t, 0x1f), mgroup.Name);
return; return;
} }
@ -650,7 +690,7 @@ void A_Disconnect(faddr *t, char *Area, FILE *tmp)
if (!MsgSystemConnected(Sys)) { if (!MsgSystemConnected(Sys)) {
fprintf(tmp, "You are not connected to %s\n", Area); fprintf(tmp, "You are not connected to %s\n", Area);
Syslog('m', " Node is not connected to %s", Area); Syslog('+', " %s is not connected to %s", ascfnode(t, 0x1f), Area);
return; return;
} }
@ -709,7 +749,7 @@ void A_Connect(faddr *t, char *Area, FILE *tmp)
} }
if (Group == NULL) { if (Group == NULL) {
fprintf(tmp, "You may not connect to area %s\n", Area); fprintf(tmp, "You may not connect to area %s\n", Area);
Syslog('m', " Group %s not available for node %s", mgroup.Name); Syslog('+', " Group %s not available for node %s", mgroup.Name, ascfnode(t, 0x1f));
return; return;
} }
@ -719,7 +759,7 @@ void A_Connect(faddr *t, char *Area, FILE *tmp)
if (i > METRIC_POINT) { if (i > METRIC_POINT) {
fprintf(tmp, "You may not connect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f)); fprintf(tmp, "You may not connect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f));
Syslog('m', " Node may not connect to group %s", mgroup.Name); Syslog('+', " %s may not connect to group %s", ascfnode(t, 0x1f), mgroup.Name);
return; return;
} }
@ -730,7 +770,7 @@ void A_Connect(faddr *t, char *Area, FILE *tmp)
if (MsgSystemConnected(Sys)) { if (MsgSystemConnected(Sys)) {
fprintf(tmp, "You are already connected to %s\n", Area); fprintf(tmp, "You are already connected to %s\n", Area);
Syslog('m', " Node is already connected to %s", Area); Syslog('+', " %s is already connected to %s", ascfnode(t, 0x1f), Area);
return; return;
} }
@ -755,7 +795,7 @@ void A_All(faddr *, int, FILE *, char *);
void A_All(faddr *t, int Connect, FILE *tmp, char *Grp) void A_All(faddr *t, int Connect, FILE *tmp, char *Grp)
{ {
FILE *mp, *gp; FILE *mp, *gp;
char *Group, temp[81]; char *Group, *temp;
faddr *f; faddr *f;
int i, Link, First = TRUE, Cons; int i, Link, First = TRUE, Cons;
sysconnect Sys; sysconnect Sys;
@ -776,13 +816,25 @@ void A_All(faddr *t, int Connect, FILE *tmp, char *Grp)
f = bestaka_s(t); f = bestaka_s(t);
Syslog('m', "Bestaka for %s is %s", ascfnode(t, 0x1f), ascfnode(f, 0x1f)); Syslog('m', "Bestaka for %s is %s", ascfnode(t, 0x1f), ascfnode(f, 0x1f));
temp = calloc(PATH_MAX, sizeof(char));
sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
mp = fopen(temp, "r+"); if ((mp = fopen(temp, "r+")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
return;
}
fread(&msgshdr, sizeof(msgshdr), 1, mp); fread(&msgshdr, sizeof(msgshdr), 1, mp);
Cons = msgshdr.syssize / sizeof(Sys); Cons = msgshdr.syssize / sizeof(Sys);
sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT")); sprintf(temp, "%s/etc/mgroups.data", getenv("MBSE_ROOT"));
gp = fopen(temp, "r"); if ((gp = fopen(temp, "r")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
fclose(mp);
return;
}
fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp); fread(&mgrouphdr, sizeof(mgrouphdr), 1, gp);
free(temp);
while (TRUE) { while (TRUE) {
Group = GetNodeMailGrp(First); Group = GetNodeMailGrp(First);
@ -869,11 +921,49 @@ void A_Group(faddr *t, char *Area, int Connect, FILE *tmp)
void A_Pause(faddr *, int, FILE *); void A_Pause(faddr *, int, FILE *);
void A_Pause(faddr *t, int Pause, FILE *tmp) void A_Pause(faddr *t, int Pause, FILE *tmp)
{ {
return; FILE *mp;
faddr *f;
int i, Cons;
sysconnect Sys;
char *temp;
if (Pause) if (Pause)
Syslog('+', "AreaMgr: Pause"); Syslog('+', "AreaMgr: Pause");
else else
Syslog('+', "AreaMgr: Resume"); Syslog('+', "AreaMgr: Resume");
f = bestaka_s(t);
Syslog('m', "Bestaka for %s is %s", ascfnode(t, 0x1f), ascfnode(f, 0x1f));
temp = calloc(PATH_MAX, sizeof(char));
sprintf(temp, "%s/etc/mareas.data", getenv("MBSE_ROOT"));
if ((mp = fopen(temp, "r+")) == NULL) {
WriteError("$Can't open %s", temp);
free(temp);
return;
}
free(temp);
fread(&msgshdr, sizeof(msgshdr), 1, mp);
Cons = msgshdr.syssize / sizeof(Sys);
while (fread(&msgs, msgshdr.recsize, 1, mp) == 1) {
if (msgs.Active) {
for (i = 0; i < Cons; i++) {
fread(&Sys, sizeof(Sys), 1, mp);
if ((metric(fido2faddr(Sys.aka), t) == METRIC_EQUAL) && (!Sys.cutoff)) {
Sys.pause = Pause;
fseek(mp, - sizeof(Sys), SEEK_CUR);
fwrite(&Sys, sizeof(Sys), 1, mp);
Syslog('+', "AreaMgr: %s area %s", Pause?"Pause":"Resume", msgs.Tag);
fprintf(tmp, "%s area %s\n", Pause?"Pause":"Resume", msgs.Tag);
a_list = TRUE;
}
}
} else {
fseek(mp, msgshdr.syssize, SEEK_CUR);
}
}
fclose(mp);
} }

View File

@ -503,7 +503,7 @@ void F_Disconnect(faddr *t, char *Area, FILE *tmp)
if (!SearchTic(Area)) { if (!SearchTic(Area)) {
fprintf(tmp, "Area %s not found\n", Area); fprintf(tmp, "Area %s not found\n", Area);
Syslog('m', " Area not found"); Syslog('+', " Area not found");
return; return;
} }
@ -517,7 +517,7 @@ void F_Disconnect(faddr *t, char *Area, FILE *tmp)
} }
if (Group == NULL) { if (Group == NULL) {
fprintf(tmp, "You may not disconnect from area %s\n", Area); fprintf(tmp, "You may not disconnect from area %s\n", Area);
Syslog('m', " Group %s not available for node", fgroup.Name); Syslog('+', " Group %s not available for %s", fgroup.Name, ascfnode(t, 0x1f));
return; return;
} }
@ -527,7 +527,7 @@ void F_Disconnect(faddr *t, char *Area, FILE *tmp)
if (i > METRIC_POINT) { if (i > METRIC_POINT) {
fprintf(tmp, "You may not disconnect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f)); fprintf(tmp, "You may not disconnect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f));
Syslog('m', " Node may not disconnect from group %s", fgroup.Name); Syslog('+', " %s may not disconnect from group %s", ascfnode(t, 0x1f), fgroup.Name);
return; return;
} }
@ -538,7 +538,7 @@ void F_Disconnect(faddr *t, char *Area, FILE *tmp)
if (!TicSystemConnected(Sys)) { if (!TicSystemConnected(Sys)) {
fprintf(tmp, "You are not connected to %s\n", Area); fprintf(tmp, "You are not connected to %s\n", Area);
Syslog('m', " Node is not connected to %s", Area); Syslog('+', " %s is not connected to %s", ascfnode(t, 0x1f), Area);
return; return;
} }
@ -595,7 +595,7 @@ void F_Connect(faddr *t, char *Area, FILE *tmp)
} }
if (Group == NULL) { if (Group == NULL) {
fprintf(tmp, "You may not connect to area %s\n", Area); fprintf(tmp, "You may not connect to area %s\n", Area);
Syslog('m', " Group %s not available for node %s", fgroup.Name); Syslog('+', " Group %s not available for %s", fgroup.Name, ascfnode(t, 0x1f));
return; return;
} }
@ -605,7 +605,7 @@ void F_Connect(faddr *t, char *Area, FILE *tmp)
if (i > METRIC_POINT) { if (i > METRIC_POINT) {
fprintf(tmp, "You may not connect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f)); fprintf(tmp, "You may not connect area %s with nodenumber %s\n", Area, ascfnode(t, 0x1f));
Syslog('m', " Node may not connect to group %s", fgroup.Name); Syslog('+', " Node %s may not connect to group %s", ascfnode(t, 0x1f), fgroup.Name);
return; return;
} }
@ -615,7 +615,7 @@ void F_Connect(faddr *t, char *Area, FILE *tmp)
if (TicSystemConnected(Sys)) { if (TicSystemConnected(Sys)) {
fprintf(tmp, "You are already connected to %s\n", Area); fprintf(tmp, "You are already connected to %s\n", Area);
Syslog('m', " Node is already connected to %s", Area); Syslog('+', " %s is already connected to %s", ascfnode(t, 0x1f), Area);
return; return;
} }

View File

@ -41,6 +41,9 @@
/*
* Write Echomail groups list to tempfile
*/
void WriteMailGroups(FILE *fp, faddr *f) void WriteMailGroups(FILE *fp, faddr *f)
{ {
int Count = 0, First = TRUE; int Count = 0, First = TRUE;
@ -92,6 +95,9 @@ void WriteMailGroups(FILE *fp, faddr *f)
/*
* Write ticarea groups to tempfile
*/
void WriteFileGroups(FILE *fp, faddr *f) void WriteFileGroups(FILE *fp, faddr *f)
{ {
int Count = 0, First = TRUE; int Count = 0, First = TRUE;
@ -153,6 +159,9 @@ char *GetBool(int Flag)
/*
* Shift all characters in Buf Cnt places to left
*/
void ShiftBuf(char *Buf, int Cnt) void ShiftBuf(char *Buf, int Cnt)
{ {
int i; int i;
@ -164,6 +173,9 @@ void ShiftBuf(char *Buf, int Cnt)
/*
* Remove spaces and = characters from begin of line
*/
void CleanBuf(char *Buf) void CleanBuf(char *Buf)
{ {
while (strlen(Buf) && ((Buf[0] == ' ') || (Buf[0] == '='))) while (strlen(Buf) && ((Buf[0] == ' ') || (Buf[0] == '=')))
@ -172,6 +184,9 @@ void CleanBuf(char *Buf)
/*
* Change AreaMgr and FileMgr password for a node
*/
void MgrPasswd(faddr *t, char *Buf, FILE *tmp, int Len) void MgrPasswd(faddr *t, char *Buf, FILE *tmp, int Len)
{ {
fidoaddr Node; fidoaddr Node;
@ -185,10 +200,10 @@ void MgrPasswd(faddr *t, char *Buf, FILE *tmp, int Len)
return; return;
} }
memset(&nodes.Apasswd, 0, 16); memset(&nodes.Apasswd, 0, sizeof(nodes.Apasswd));
sprintf(nodes.Apasswd, "%s", tu(Buf)); strncpy(nodes.Apasswd, tu(Buf), 15);
fprintf(tmp, "AreaMgr and FileMgr password is now \"%s\"\n", nodes.Apasswd); fprintf(tmp, "AreaMgr and FileMgr password is now \"%s\"\n", nodes.Apasswd);
Syslog('+', "XxxxMgr: Password \"%s\"", nodes.Apasswd); Syslog('+', "XxxxMgr: Password \"%s\" for node %s", nodes.Apasswd, ascfnode(t, 0x1f));
UpdateNode(); UpdateNode();
memcpy(&Node, faddr2fido(t), sizeof(fidoaddr)); memcpy(&Node, faddr2fido(t), sizeof(fidoaddr));
SearchNode(Node); SearchNode(Node);
@ -196,6 +211,9 @@ void MgrPasswd(faddr *t, char *Buf, FILE *tmp, int Len)
/*
* Change AreaMgr/FileMgr nodify flag for node
*/
void MgrNotify(faddr *t, char *Buf, FILE *tmp) void MgrNotify(faddr *t, char *Buf, FILE *tmp)
{ {
fidoaddr Node; fidoaddr Node;