Fixed some AreaMgr problems, code cleanup, added Pause/Resume commands
This commit is contained in:
parent
792ef4649a
commit
f00ac0d11d
172
mbfido/areamgr.c
172
mbfido/areamgr.c
@ -68,14 +68,14 @@ extern int echo_out; /* Echomail forwarded */
|
|||||||
extern int echo_bad; /* Bad echomail */
|
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);
|
||||||
@ -859,8 +911,8 @@ void A_Group(faddr *t, char *Area, int Connect, FILE *tmp)
|
|||||||
|
|
||||||
ShiftBuf(Area, 2);
|
ShiftBuf(Area, 2);
|
||||||
CleanBuf(Area);
|
CleanBuf(Area);
|
||||||
for (i=0; i < strlen(Area); i++ )
|
for (i = 0; i < strlen(Area); i++ )
|
||||||
Area[i]=toupper(Area[i]);
|
Area[i] = toupper(Area[i]);
|
||||||
A_All(t, Connect, tmp, Area);
|
A_All(t, Connect, tmp, Area);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -687,7 +687,7 @@ void F_All(faddr *t, int Connect, FILE *tmp, char *Grp)
|
|||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&Sys, sizeof(Sys), 1, fp);
|
fread(&Sys, sizeof(Sys), 1, fp);
|
||||||
if (metric(fido2faddr(Sys.aka), t) == METRIC_EQUAL)
|
if (metric(fido2faddr(Sys.aka), t) == METRIC_EQUAL)
|
||||||
Link = TRUE;
|
Link = TRUE;
|
||||||
}
|
}
|
||||||
if (!Link) {
|
if (!Link) {
|
||||||
Pos = ftell(fp);
|
Pos = ftell(fp);
|
||||||
|
@ -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;
|
||||||
|
Reference in New Issue
Block a user