Default domain nodelists lookups made working
This commit is contained in:
parent
561533ead6
commit
780beffadc
@ -30,6 +30,9 @@ v0.37.01 14-Jan-2003.
|
|||||||
nodelist.a:
|
nodelist.a:
|
||||||
Added experimental support for IP nodes lookup using a default
|
Added experimental support for IP nodes lookup using a default
|
||||||
domain method. This is not the final implementation yet!
|
domain method. This is not the final implementation yet!
|
||||||
|
Update, this works now as described in a FSP-xxxx that is in
|
||||||
|
discussion in the FTSC. This will also work for current
|
||||||
|
practice.
|
||||||
|
|
||||||
common.a:
|
common.a:
|
||||||
Removed charset conversion/translation.
|
Removed charset conversion/translation.
|
||||||
|
@ -628,9 +628,24 @@ node *getnlent(faddr *addr)
|
|||||||
goto retdummy;
|
goto retdummy;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* First, lookup node in index. NOTE -- NOT 5D YET
|
* Search domainname for the requested aka, should not fail.
|
||||||
*/
|
*/
|
||||||
path = calloc(PATH_MAX, sizeof(char));
|
path = calloc(PATH_MAX, sizeof(char));
|
||||||
|
sprintf(path, "%s/etc/fidonet.data", getenv("MBSE_ROOT"));
|
||||||
|
if ((fp = fopen(path, "r"))) {
|
||||||
|
fread(&fidonethdr, sizeof(fidonethdr), 1, fp);
|
||||||
|
while (fread(&fidonet, fidonethdr.recsize, 1, fp) == 1) {
|
||||||
|
for (i = 0; i < 6; i++) {
|
||||||
|
if (addr->zone == fidonet.zone[i])
|
||||||
|
nodebuf.addr.domain = xstrcpy(fidonet.domain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* First, lookup node in index. NOTE -- NOT 5D YET
|
||||||
|
*/
|
||||||
sprintf(path, "%s/%s", CFG.nodelists, "node.index");
|
sprintf(path, "%s/%s", CFG.nodelists, "node.index");
|
||||||
if ((fp = fopen(path, "r")) == NULL) {
|
if ((fp = fopen(path, "r")) == NULL) {
|
||||||
WriteError("$Can't open %s", path);
|
WriteError("$Can't open %s", path);
|
||||||
@ -1039,14 +1054,18 @@ node *getnlent(faddr *addr)
|
|||||||
memset(&tbuf, 0, sizeof(tbuf));
|
memset(&tbuf, 0, sizeof(tbuf));
|
||||||
} else if (strcasecmp((*tmpa)->name, "defdomain") == 0) {
|
} else if (strcasecmp((*tmpa)->name, "defdomain") == 0) {
|
||||||
Syslog('n', "Trying default domain");
|
Syslog('n', "Trying default domain");
|
||||||
for (tmpd = &nl_domsuffix; *tmpd; tmpd=&((*tmpd)->next)) {
|
if (nodebuf.addr.domain) {
|
||||||
if ((*tmpd)->zone == nodebuf.addr.zone) {
|
for (tmpd = &nl_domsuffix; *tmpd; tmpd=&((*tmpd)->next)) {
|
||||||
sprintf(tbuf, "f%d.n%d.z%d.%s.%s", nodebuf.addr.node, nodebuf.addr.net,
|
if ((*tmpd)->zone == nodebuf.addr.zone) {
|
||||||
nodebuf.addr.zone, nodebuf.addr.domain, (*tmpd)->name);
|
sprintf(tbuf, "f%d.n%d.z%d.%s.%s", nodebuf.addr.node, nodebuf.addr.net,
|
||||||
Syslog('n', "Will try default domain \"%s\"", tbuf);
|
nodebuf.addr.zone, nodebuf.addr.domain, (*tmpd)->name);
|
||||||
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
Syslog('n', "Will try default domain \"%s\"", tbuf);
|
||||||
break;
|
nodebuf.url = xstrcat(nodebuf.url, tbuf);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Syslog('+', "getnlent: no domain name for zone %d, check setup", nodebuf.addr.zone);
|
||||||
}
|
}
|
||||||
if (strlen(tbuf))
|
if (strlen(tbuf))
|
||||||
break;
|
break;
|
||||||
|
@ -164,12 +164,16 @@ search field8
|
|||||||
search defdomain
|
search defdomain
|
||||||
|
|
||||||
|
|
||||||
# The default searchdomain, will be prefixed with f1.n2.z3.fidonet.
|
# The default searchdomain, will be prefixed with f1.n2.z3.fidonet or
|
||||||
|
# f33.n44.z55.othernet. Add other networks here.
|
||||||
# Node 3:2/1 will look like: f1.n2.z3.fidonet.net
|
# Node 3:2/1 will look like: f1.n2.z3.fidonet.net
|
||||||
#
|
#
|
||||||
# Zone Suffix (without leading dot!)
|
# Zone Suffix (without leading dot!)
|
||||||
domsuffix 1 net
|
domsuffix 1 net
|
||||||
domsuffix 2 net
|
domsuffix 2 net
|
||||||
domsuffix 3 net
|
domsuffix 3 net
|
||||||
|
domsuffix 4 net
|
||||||
|
domsuffix 5 net
|
||||||
|
domsuffix 6 net
|
||||||
domsuffix 92 mbse.ym
|
domsuffix 92 mbse.ym
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user