Changed AreaMgr and FileMgr code
This commit is contained in:
parent
11d712c572
commit
465b620050
11
ChangeLog
11
ChangeLog
@ -4585,7 +4585,8 @@ v0.33.19 26-Oct-2001
|
|||||||
v0.33.20 10-Feb-2002
|
v0.33.20 10-Feb-2002
|
||||||
|
|
||||||
upgrade:
|
upgrade:
|
||||||
|
Compile sources and install binaries. Restart the BBS.
|
||||||
|
Enter mbsetup, this will upgrade the databases.
|
||||||
|
|
||||||
general:
|
general:
|
||||||
Added structures for area maintenance with area lists.
|
Added structures for area maintenance with area lists.
|
||||||
@ -4595,3 +4596,11 @@ v0.33.20 10-Feb-2002
|
|||||||
Added 2 functions to return the OS name and CPU family.
|
Added 2 functions to return the OS name and CPU family.
|
||||||
Added a function to return the right tearline.
|
Added a function to return the right tearline.
|
||||||
|
|
||||||
|
mbsetup:
|
||||||
|
In message groups added default settings for auto area
|
||||||
|
creation.
|
||||||
|
|
||||||
|
mbfido:
|
||||||
|
In AreaMgr and FileMgr changed aka matching for area
|
||||||
|
connections. Code cleanups.
|
||||||
|
|
||||||
|
102
mbfido/areamgr.c
102
mbfido/areamgr.c
@ -140,7 +140,7 @@ void A_Query(faddr *t, char *replyid)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, SubTot, Total = 0, Cons;
|
int i, First = TRUE, SubTot, Total = 0, Cons;
|
||||||
char Stat[5];
|
char Stat[5];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
|
|
||||||
Syslog('+', "AreaMgr: Query");
|
Syslog('+', "AreaMgr: Query");
|
||||||
@ -148,7 +148,7 @@ 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(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");
|
mp = fopen(temp, "r");
|
||||||
@ -168,13 +168,12 @@ void A_Query(faddr *t, char *replyid)
|
|||||||
|
|
||||||
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(mgroup.UseAka));
|
||||||
if ((!strcmp(mgroup.Name, Group)) &&
|
if ((!strcmp(mgroup.Name, Group)) &&
|
||||||
(mgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) && (g->net == f->net) &&
|
||||||
(mgroup.UseAka.net == f->net) &&
|
(g->node == f->node) && (g->point == f->point)) {
|
||||||
(mgroup.UseAka.node == f->node) &&
|
|
||||||
(mgroup.UseAka.point == f->point)) {
|
|
||||||
SubTot = 0;
|
SubTot = 0;
|
||||||
fprintf(qp, "Group %s - %s\r\r", mgroup.Name, mgroup.Comment);
|
fprintf(qp, "Group %s - %s (%s)\r\r", mgroup.Name, mgroup.Comment, aka2str(mgroup.UseAka));
|
||||||
fprintf(qp, "Con Message area Description\r");
|
fprintf(qp, "Con Message area Description\r");
|
||||||
fprintf(qp, "----------------------------------------------------------------------------\r");
|
fprintf(qp, "----------------------------------------------------------------------------\r");
|
||||||
fseek(mp, msgshdr.hdrsize, SEEK_SET);
|
fseek(mp, msgshdr.hdrsize, SEEK_SET);
|
||||||
@ -185,15 +184,12 @@ void A_Query(faddr *t, char *replyid)
|
|||||||
Stat[sizeof(Stat)-1] = '\0';
|
Stat[sizeof(Stat)-1] = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now check if this node is connected,
|
* Now check if this node is connected, if so, set the Stat bits
|
||||||
* if so, set the Stat bits
|
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, mp);
|
fread(&System, sizeof(System), 1, mp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if (System.receivefrom)
|
if (System.receivefrom)
|
||||||
Stat[0] = 'S';
|
Stat[0] = 'S';
|
||||||
if (System.sendto)
|
if (System.sendto)
|
||||||
@ -246,7 +242,7 @@ void A_List(faddr *t, char *replyid, int Notify)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, SubTot, Total = 0, Cons;
|
int i, First = TRUE, SubTot, Total = 0, Cons;
|
||||||
char Stat[5];
|
char Stat[5];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
|
|
||||||
if (Notify)
|
if (Notify)
|
||||||
@ -258,7 +254,7 @@ 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(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");
|
mp = fopen(temp, "r");
|
||||||
@ -278,13 +274,12 @@ void A_List(faddr *t, char *replyid, int Notify)
|
|||||||
|
|
||||||
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(mgroup.UseAka));
|
||||||
if ((!strcmp(mgroup.Name, Group)) &&
|
if ((!strcmp(mgroup.Name, Group)) &&
|
||||||
(mgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) && (g->net == f->net) &&
|
||||||
(mgroup.UseAka.net == f->net) &&
|
(g->node == f->node) && (g->point == f->point)) {
|
||||||
(mgroup.UseAka.node == f->node) &&
|
|
||||||
(mgroup.UseAka.point == f->point)) {
|
|
||||||
SubTot = 0;
|
SubTot = 0;
|
||||||
fprintf(qp, "Group %s - %s\r\r", mgroup.Name, mgroup.Comment);
|
fprintf(qp, "Group %s - %s (%s)\r\r", mgroup.Name, mgroup.Comment, aka2str(mgroup.UseAka));
|
||||||
fprintf(qp, "Con Message area Description\r");
|
fprintf(qp, "Con Message area Description\r");
|
||||||
fprintf(qp, "----------------------------------------------------------------------------\r");
|
fprintf(qp, "----------------------------------------------------------------------------\r");
|
||||||
fseek(mp, msgshdr.hdrsize, SEEK_SET);
|
fseek(mp, msgshdr.hdrsize, SEEK_SET);
|
||||||
@ -295,15 +290,12 @@ void A_List(faddr *t, char *replyid, int Notify)
|
|||||||
Stat[sizeof(Stat)-1] = '\0';
|
Stat[sizeof(Stat)-1] = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now check if this node is connected,
|
* Now check if this node is connected, if so, set the Stat bits
|
||||||
* if so, set the Stat bits
|
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, mp);
|
fread(&System, sizeof(System), 1, mp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if (System.receivefrom)
|
if (System.receivefrom)
|
||||||
Stat[0] = 'S';
|
Stat[0] = 'S';
|
||||||
if (System.sendto)
|
if (System.sendto)
|
||||||
@ -353,7 +345,7 @@ void A_Flow(faddr *t, char *replyid, int Notify)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, Cons;
|
int i, First = TRUE, Cons;
|
||||||
char Stat[2];
|
char Stat[2];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
time_t Now;
|
time_t Now;
|
||||||
struct tm *tt;
|
struct tm *tt;
|
||||||
@ -376,7 +368,7 @@ 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(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");
|
mp = fopen(temp, "r");
|
||||||
@ -397,11 +389,10 @@ void A_Flow(faddr *t, char *replyid, int Notify)
|
|||||||
lm = lw = 0;
|
lm = lw = 0;
|
||||||
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(mgroup.UseAka));
|
||||||
if ((!strcmp(mgroup.Name, Group)) &&
|
if ((!strcmp(mgroup.Name, Group)) &&
|
||||||
(mgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) && (g->net == f->net) &&
|
||||||
(mgroup.UseAka.net == f->net) &&
|
(g->node == f->node) && (g->point == f->point)) {
|
||||||
(mgroup.UseAka.node == f->node) &&
|
|
||||||
(mgroup.UseAka.point == f->point)) {
|
|
||||||
fprintf(qp, "Group %s - %s\r\r", mgroup.Name, mgroup.Comment);
|
fprintf(qp, "Group %s - %s\r\r", mgroup.Name, mgroup.Comment);
|
||||||
// 1 2 3 4 5 6 7
|
// 1 2 3 4 5 6 7
|
||||||
// 12345678901234567890123456789012345678901234567890123456789012345678901234567890
|
// 12345678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||||
@ -415,24 +406,18 @@ void A_Flow(faddr *t, char *replyid, int Notify)
|
|||||||
Stat[sizeof(Stat)-1] = '\0';
|
Stat[sizeof(Stat)-1] = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now check if this node is connected,
|
* Now check if this node is connected, if so, set the Stat bits
|
||||||
* if so, set the Stat bits
|
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, mp);
|
fread(&System, sizeof(System), 1, mp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
if ((System.receivefrom || System.sendto) && (!System.pause) && (!System.cutoff))
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if ((System.receivefrom || System.sendto) &&
|
|
||||||
(!System.pause) && (!System.cutoff))
|
|
||||||
Stat[0] = 'C';
|
Stat[0] = 'C';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf(qp, "%s %s %9lu %10lu\r",
|
fprintf(qp, "%s %s %9lu %10lu\r", Stat, padleft(msgs.Tag, 50, ' '),
|
||||||
Stat, padleft(msgs.Tag, 50, ' '),
|
msgs.Received.lweek, msgs.Received.month[lmonth]);
|
||||||
msgs.Received.lweek,
|
|
||||||
msgs.Received.month[lmonth]);
|
|
||||||
lm += msgs.Received.month[lmonth];
|
lm += msgs.Received.month[lmonth];
|
||||||
lw += msgs.Received.lweek;
|
lw += msgs.Received.lweek;
|
||||||
} else
|
} else
|
||||||
@ -508,7 +493,7 @@ void A_Unlinked(faddr *t, char *replyid)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, SubTot, Total = 0, Cons;
|
int i, First = TRUE, SubTot, Total = 0, Cons;
|
||||||
char Stat[5];
|
char Stat[5];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
|
|
||||||
Syslog('+', "AreaMgr: Unlinked");
|
Syslog('+', "AreaMgr: Unlinked");
|
||||||
@ -537,11 +522,12 @@ void A_Unlinked(faddr *t, char *replyid)
|
|||||||
|
|
||||||
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(mgroup.UseAka));
|
||||||
if ((!strcmp(mgroup.Name, Group)) &&
|
if ((!strcmp(mgroup.Name, Group)) &&
|
||||||
(mgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) &&
|
||||||
(mgroup.UseAka.net == f->net) &&
|
(g->net == f->net) &&
|
||||||
(mgroup.UseAka.node == f->node) &&
|
(g->node == f->node) &&
|
||||||
(mgroup.UseAka.point == f->point)) {
|
(g->point == f->point)) {
|
||||||
SubTot = 0;
|
SubTot = 0;
|
||||||
fprintf(qp, "Group %s - %s\r\r", mgroup.Name, mgroup.Comment);
|
fprintf(qp, "Group %s - %s\r\r", mgroup.Name, mgroup.Comment);
|
||||||
fprintf(qp, "Con Message area Description\r");
|
fprintf(qp, "Con Message area Description\r");
|
||||||
@ -554,15 +540,12 @@ void A_Unlinked(faddr *t, char *replyid)
|
|||||||
Stat[sizeof(Stat)-1] = '\0';
|
Stat[sizeof(Stat)-1] = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now check if this node is connected,
|
* Now check if this node is connected, if so, set the Stat bits
|
||||||
* if so, set the Stat bits
|
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, mp);
|
fread(&System, sizeof(System), 1, mp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if (System.receivefrom)
|
if (System.receivefrom)
|
||||||
Stat[0] = 'S';
|
Stat[0] = 'S';
|
||||||
if (System.sendto)
|
if (System.sendto)
|
||||||
@ -809,14 +792,12 @@ void A_All(faddr *t, int Connect, FILE *tmp, char *Grp)
|
|||||||
|
|
||||||
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, mgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&mgroup, mgrouphdr.recsize, 1, gp) == 1) {
|
||||||
if ((!strcmp(mgroup.Name, Group)) &&
|
if ((!strcmp(mgroup.Name, Group)) && ((Grp == NULL) || (!strcmp(Group, Grp)))) {
|
||||||
((Grp == NULL) || (!strcmp(Group, Grp)))) {
|
|
||||||
|
|
||||||
fseek(mp, msgshdr.hdrsize, SEEK_SET);
|
fseek(mp, msgshdr.hdrsize, SEEK_SET);
|
||||||
|
|
||||||
while (fread(&msgs, msgshdr.recsize, 1, mp) == 1) {
|
while (fread(&msgs, msgshdr.recsize, 1, mp) == 1) {
|
||||||
if ((!strcmp(Group, msgs.Group)) &&
|
if ((!strcmp(Group, msgs.Group)) && (msgs.Active) && (!msgs.Mandatory) &&
|
||||||
(msgs.Active) && (!msgs.Mandatory) &&
|
|
||||||
(metric(fido2faddr(mgroup.UseAka), f) == METRIC_EQUAL)) {
|
(metric(fido2faddr(mgroup.UseAka), f) == METRIC_EQUAL)) {
|
||||||
|
|
||||||
if (Connect) {
|
if (Connect) {
|
||||||
@ -849,8 +830,7 @@ void A_All(faddr *t, int Connect, FILE *tmp, char *Grp)
|
|||||||
} else {
|
} else {
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&Sys, sizeof(Sys), 1, mp);
|
fread(&Sys, sizeof(Sys), 1, mp);
|
||||||
if ((metric(fido2faddr(Sys.aka), t) == METRIC_EQUAL) &&
|
if ((metric(fido2faddr(Sys.aka), t) == METRIC_EQUAL) && (!Sys.cutoff)) {
|
||||||
(!Sys.cutoff)) {
|
|
||||||
memset(&Sys, 0, sizeof(Sys));
|
memset(&Sys, 0, sizeof(Sys));
|
||||||
fseek(mp, - sizeof(Sys), SEEK_CUR);
|
fseek(mp, - sizeof(Sys), SEEK_CUR);
|
||||||
fwrite(&Sys, sizeof(Sys), 1, mp);
|
fwrite(&Sys, sizeof(Sys), 1, mp);
|
||||||
|
@ -139,15 +139,16 @@ void F_Query(faddr *t, char *replyid)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, SubTot, Total = 0, Cons;
|
int i, First = TRUE, SubTot, Total = 0, Cons;
|
||||||
char Stat[4];
|
char Stat[4];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
|
|
||||||
Syslog('+', "FileMgr: Query");
|
Syslog('+', "FileMgr: Query");
|
||||||
f = bestaka_s(t);
|
f = bestaka_s(t);
|
||||||
|
Syslog('f', "Bestaka for %s is %s", ascfnode(t, 0x0f), ascfnode(f, 0x0f));
|
||||||
|
|
||||||
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Filemgr", (char *)"Your query request", replyid)) != NULL) {
|
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Filemgr", (char *)"Your query request", replyid)) != NULL) {
|
||||||
|
|
||||||
temp = calloc(128, sizeof(char));
|
temp = calloc(PATH_MAX, sizeof(char));
|
||||||
|
|
||||||
sprintf(temp, "%s/etc/tic.data", getenv("MBSE_ROOT"));
|
sprintf(temp, "%s/etc/tic.data", getenv("MBSE_ROOT"));
|
||||||
fp = fopen(temp, "r");
|
fp = fopen(temp, "r");
|
||||||
@ -167,13 +168,13 @@ void F_Query(faddr *t, char *replyid)
|
|||||||
|
|
||||||
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(fgroup.UseAka));
|
||||||
if ((!strcmp(fgroup.Name, Group)) &&
|
if ((!strcmp(fgroup.Name, Group)) &&
|
||||||
(fgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) && (g->net == f->net) &&
|
||||||
(fgroup.UseAka.net == f->net) &&
|
(g->node == f->node) && (g->point == f->point)) {
|
||||||
(fgroup.UseAka.node == f->node) &&
|
Syslog('f', "Group %s, aka %s", fgroup.Name, aka2str(fgroup.UseAka));
|
||||||
(fgroup.UseAka.point == f->point)) {
|
|
||||||
SubTot = 0;
|
SubTot = 0;
|
||||||
fprintf(qp, "Group %s - %s\r\r", fgroup.Name, fgroup.Comment);
|
fprintf(qp, "Group %s - %s (%s)\r\r", fgroup.Name, fgroup.Comment, aka2str(fgroup.UseAka));
|
||||||
fprintf(qp, "Con File tic Description\r");
|
fprintf(qp, "Con File tic Description\r");
|
||||||
fprintf(qp, "------------------------------------------------------------------------\r");
|
fprintf(qp, "------------------------------------------------------------------------\r");
|
||||||
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
||||||
@ -189,10 +190,8 @@ void F_Query(faddr *t, char *replyid)
|
|||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, fp);
|
fread(&System, sizeof(System), 1, fp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if (System.receivefrom)
|
if (System.receivefrom)
|
||||||
Stat[0] = 'S';
|
Stat[0] = 'S';
|
||||||
if (System.sendto)
|
if (System.sendto)
|
||||||
@ -241,7 +240,7 @@ void F_List(faddr *t, char *replyid, int Notify)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, SubTot, Total = 0, Cons;
|
int i, First = TRUE, SubTot, Total = 0, Cons;
|
||||||
char Stat[4];
|
char Stat[4];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
|
|
||||||
if (Notify)
|
if (Notify)
|
||||||
@ -253,7 +252,7 @@ void F_List(faddr *t, char *replyid, int Notify)
|
|||||||
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Filemgr", (char *)"FileMgr List", replyid)) != NULL) {
|
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Filemgr", (char *)"FileMgr List", replyid)) != NULL) {
|
||||||
|
|
||||||
WriteFileGroups(qp, f);
|
WriteFileGroups(qp, f);
|
||||||
temp = calloc(128, sizeof(char));
|
temp = calloc(PATH_MAX, sizeof(char));
|
||||||
|
|
||||||
sprintf(temp, "%s/etc/tic.data", getenv("MBSE_ROOT"));
|
sprintf(temp, "%s/etc/tic.data", getenv("MBSE_ROOT"));
|
||||||
fp = fopen(temp, "r");
|
fp = fopen(temp, "r");
|
||||||
@ -273,13 +272,12 @@ void F_List(faddr *t, char *replyid, int Notify)
|
|||||||
|
|
||||||
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(fgroup.UseAka));
|
||||||
if ((!strcmp(fgroup.Name, Group)) &&
|
if ((!strcmp(fgroup.Name, Group)) &&
|
||||||
(fgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) && (g->net == f->net) &&
|
||||||
(fgroup.UseAka.net == f->net) &&
|
(g->node == f->node) && (g->point == f->point)) {
|
||||||
(fgroup.UseAka.node == f->node) &&
|
|
||||||
(fgroup.UseAka.point == f->point)) {
|
|
||||||
SubTot = 0;
|
SubTot = 0;
|
||||||
fprintf(qp, "Group %s - %s\r\r", fgroup.Name, fgroup.Comment);
|
fprintf(qp, "Group %s - %s (%s)\r\r", fgroup.Name, fgroup.Comment, aka2str(fgroup.UseAka));
|
||||||
fprintf(qp, "Con File tic Description\r");
|
fprintf(qp, "Con File tic Description\r");
|
||||||
fprintf(qp, "------------------------------------------------------------------------\r");
|
fprintf(qp, "------------------------------------------------------------------------\r");
|
||||||
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
||||||
@ -290,15 +288,12 @@ void F_List(faddr *t, char *replyid, int Notify)
|
|||||||
Stat[sizeof(Stat)-1] = '\0';
|
Stat[sizeof(Stat)-1] = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now check if this node is connected,
|
* Now check if this node is connected, if so, set the Stat bits.
|
||||||
* if so, set the Stat bits.
|
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, fp);
|
fread(&System, sizeof(System), 1, fp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if (System.receivefrom)
|
if (System.receivefrom)
|
||||||
Stat[0] = 'S';
|
Stat[0] = 'S';
|
||||||
if (System.sendto)
|
if (System.sendto)
|
||||||
@ -394,7 +389,7 @@ void F_Unlinked(faddr *t, char *replyid)
|
|||||||
char *temp, *Group;
|
char *temp, *Group;
|
||||||
int i, First = TRUE, SubTot, Total = 0, Cons;
|
int i, First = TRUE, SubTot, Total = 0, Cons;
|
||||||
char Stat[4];
|
char Stat[4];
|
||||||
faddr *f;
|
faddr *f, *g;
|
||||||
sysconnect System;
|
sysconnect System;
|
||||||
|
|
||||||
Syslog('+', "FileMgr: Unlinked");
|
Syslog('+', "FileMgr: Unlinked");
|
||||||
@ -402,7 +397,7 @@ void F_Unlinked(faddr *t, char *replyid)
|
|||||||
|
|
||||||
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Filemgr", (char *)"Your unlinked request", replyid)) != NULL) {
|
if ((qp = SendMgrMail(t, CFG.ct_KeepMgr, FALSE, (char *)"Filemgr", (char *)"Your unlinked request", replyid)) != NULL) {
|
||||||
|
|
||||||
temp = calloc(128, sizeof(char));
|
temp = calloc(PATH_MAX, sizeof(char));
|
||||||
|
|
||||||
sprintf(temp, "%s/etc/tic.data", getenv("MBSE_ROOT"));
|
sprintf(temp, "%s/etc/tic.data", getenv("MBSE_ROOT"));
|
||||||
fp = fopen(temp, "r");
|
fp = fopen(temp, "r");
|
||||||
@ -422,13 +417,12 @@ void F_Unlinked(faddr *t, char *replyid)
|
|||||||
|
|
||||||
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
||||||
|
g = bestaka_s(fido2faddr(fgroup.UseAka));
|
||||||
if ((!strcmp(fgroup.Name, Group)) &&
|
if ((!strcmp(fgroup.Name, Group)) &&
|
||||||
(fgroup.UseAka.zone == f->zone) &&
|
(g->zone == f->zone) && (g->net == f->net) &&
|
||||||
(fgroup.UseAka.net == f->net) &&
|
(g->node == f->node) && (g->point == f->point)) {
|
||||||
(fgroup.UseAka.node == f->node) &&
|
|
||||||
(fgroup.UseAka.point == f->point)) {
|
|
||||||
SubTot = 0;
|
SubTot = 0;
|
||||||
fprintf(qp, "Group %s - %s\r\r", fgroup.Name, fgroup.Comment);
|
fprintf(qp, "Group %s - %s (%s)\r\r", fgroup.Name, fgroup.Comment, aka2str(fgroup.UseAka));
|
||||||
fprintf(qp, "Con File tic Description\r");
|
fprintf(qp, "Con File tic Description\r");
|
||||||
fprintf(qp, "------------------------------------------------------------------------\r");
|
fprintf(qp, "------------------------------------------------------------------------\r");
|
||||||
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
||||||
@ -439,15 +433,12 @@ void F_Unlinked(faddr *t, char *replyid)
|
|||||||
Stat[sizeof(Stat)-1] = '\0';
|
Stat[sizeof(Stat)-1] = '\0';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now check if this node is connected,
|
* Now check if this node is connected, if so, set the Stat bits.
|
||||||
* if so, set the Stat bits.
|
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < Cons; i++) {
|
for (i = 0; i < Cons; i++) {
|
||||||
fread(&System, sizeof(System), 1, fp);
|
fread(&System, sizeof(System), 1, fp);
|
||||||
if ((t->zone == System.aka.zone) &&
|
if ((t->zone == System.aka.zone) && (t->net == System.aka.net) &&
|
||||||
(t->net == System.aka.net) &&
|
(t->node == System.aka.node) && (t->point == System.aka.point)) {
|
||||||
(t->node == System.aka.node) &&
|
|
||||||
(t->point == System.aka.point)) {
|
|
||||||
if (System.receivefrom)
|
if (System.receivefrom)
|
||||||
Stat[0] = 'S';
|
Stat[0] = 'S';
|
||||||
if (System.sendto)
|
if (System.sendto)
|
||||||
@ -649,7 +640,7 @@ void F_All(faddr *, int, FILE *, char *);
|
|||||||
void F_All(faddr *t, int Connect, FILE *tmp, char *Grp)
|
void F_All(faddr *t, int Connect, FILE *tmp, char *Grp)
|
||||||
{
|
{
|
||||||
FILE *fp, *gp;
|
FILE *fp, *gp;
|
||||||
char *Group, temp[81];
|
char *Group, temp[PATH_MAX];
|
||||||
faddr *f;
|
faddr *f;
|
||||||
int i, Link, First = TRUE, Cons;
|
int i, Link, First = TRUE, Cons;
|
||||||
sysconnect Sys;
|
sysconnect Sys;
|
||||||
@ -684,15 +675,12 @@ void F_All(faddr *t, int Connect, FILE *tmp, char *Grp)
|
|||||||
|
|
||||||
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
fseek(gp, fgrouphdr.hdrsize, SEEK_SET);
|
||||||
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
while (fread(&fgroup, fgrouphdr.recsize, 1, gp) == 1) {
|
||||||
if ((!strcmp(fgroup.Name, Group)) &&
|
if ((!strcmp(fgroup.Name, Group)) && ((Grp == NULL) || (!strcmp(Group, Grp)))) {
|
||||||
((Grp == NULL) || (!strcmp(Group, Grp)))) {
|
|
||||||
|
|
||||||
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
fseek(fp, tichdr.hdrsize, SEEK_SET);
|
||||||
|
|
||||||
while (fread(&tic, tichdr.recsize, 1, fp) == 1) {
|
while (fread(&tic, tichdr.recsize, 1, fp) == 1) {
|
||||||
|
|
||||||
if ((!strcmp(Group, tic.Group)) && tic.Active &&
|
if ((!strcmp(Group, tic.Group)) && tic.Active && (metric(fido2faddr(fgroup.UseAka), f) == METRIC_EQUAL)) {
|
||||||
(metric(fido2faddr(fgroup.UseAka), f) == METRIC_EQUAL)) {
|
|
||||||
|
|
||||||
if (Connect) {
|
if (Connect) {
|
||||||
Link = FALSE;
|
Link = FALSE;
|
||||||
|
Reference in New Issue
Block a user