|
MD2SAW > BBS 26.12.20 17:00l 214 Lines 7083 Bytes #999 (0) @ EU
BID : 185_MD2BBS
Read: GUEST
Subj: F6FBB 7.0.10 fuer CB Calls/disable buildin Callfitering on F
Path: FU0BOX<CB0ESN<BLM274<DBX320<MD2BBS
Sent: 201226/1534Z @:MD2BBS.SAW.SAA.DEU.EU #:185 [Salzwedel] $:185_MD2BBS
From: MD2SAW@MD2BBS.SAW.SAA.DEU.EU
To : BBS@EU
Moin moin und frohe Weichnachten...
Ich beschäftige mich schon seit ein paar Wochen mit diversen Versionen von
F6FBB
mit dem Ziel, eine eigene BBS aufzusetzen.
Anfangs habe ich das Problem mit dem Callfilter ( ich meine nicht die
C-Filter )
nicht wirklich realisiert da meine verwendeten Calls (MD2BBS, MD2SAW, CB0SAW)
nicht vom Callfiter geblockt wurden.
Das erstemal stiess ich dann auf das Problem, als ich bei der Einrichtung von
FBB
nach meiner Heimat BBS gefragt wurde und erstmal meine damalige Heimat BBS
(DBX320)
eingetragen habe, der Call aber nicht angenommen wurde.
Ich habe mir damals noch nicht wirklich was bei gedacht und es noch nicht als
Problem
angenommen.
Das Problem wirklich erkannt habe ich erst als mein Kollege (DAC527) versucht
hat
auf meine Box zu connecten und ohne Rueckmeldung einfach nenn Disco von
meiner Box
erhalten hat.
Die Gruende dafuer waren nicht ersichtlich, weder Eintraege in den Logs noch
irgendeine
andere Ausgabe seitens FBB war zu finden.
Nach ein paar Versuchen mit seinem alten Call S69SAW der wiederum
funktionierte, sind
wir zu dem Schluss gekommen, dass FBB hier eine Filterung der Calls vornimmt.
Anfangs dachte ich ein einfaches Problem mit den Einstellungen von FBB.
Nach tagelangen lesen, suchen und auch googeln ( was mal garnichts gebracht
hat )
ohne Ergebnisse, kam nach und nach der Verdacht auf, dass der Filter im
Quellcode
stecken muss.
Alledings habe ich mich an den nicht wirklich ran getraut, da ich 1. keine
Anahltspunke
( Logausgabe oder andere Ausgaben ) hatte, wonach ich suchen muss und 2. der
Code
mit vielen Franzoesischen Woertern ( Variablen- u. Funktionsnamen ) arbeitet
und ich
kein Baguette lesen kann ;-).
Nach weiteren Tagen rumprobieren und testen hab ich endlich fuer mich den
Einstieg in den
Code gefunden, anhand einer Ausgabe ueber Telnet. "Invalid Call" oder so
aehnlich.
Endlich hatte ich den Frosch bei den ... Naja, lassen wir das .. grins..
Jetzt konnte ich das Problem zurueck verfolgen auf die Funktion find().
Und siehe da, dort fiel mir recht schnell die Zeile
"if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 2) || dernier)"
auf.
Nach dieser Zeile werden alle Calls geblockt, die weniger als 3 oder mehr als
6 Zeichen
beinhalten.
Desweiteren werden alle Calls ausgeschlossen die weniger als eine Zahl, mehr
als 2 Zahlen
oder mit einer Zahl enden.
Z.B.: DAC000, DBX000, FRA000, ENG000 ...
Also hab ich Nqq (N++) mal genau nach dieser Zeile suchen lassen und wurde in
mehreren Dateien fuendig.
Zum testen waehlte ich die "Quick and Dirty" Variante und aenderte die
gefunden Zeilen
zu
"if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 3))" .
Und voir la monsieur, das Baguette war gelutscht.. :D .
Ich stelle hier 2 Varianten vor, wie Ihr selbst das Problem loesen koennt.
Einmal die "Quick and Dirty" Variante die bereits von mir getestet wurde
und dann och die "saubere" Variante, die ich bisher nicht getestet habe aber
auch
Funktionieren sollte, wenn ich nichts uebersehen hab.
Der unterschied zwischen den beiden besteht nur darin, den Code so sauber wie
moeglich
zu halten und nicht mit ungenutzen Variablen zuzumuellen.
Die Funktion (das Ergebniss) ist das selbe.
Ich gehe von der Version 7.0.10 aus die hier erhaeltlich ist:
https://sourceforge.net/projects/linfbb/files/fbb-7.0.10.tar.gz/download
Weiter Informationen zu dieser Version sowie C-Filter und andere
Zusatzprogramme
fuer FBB sind hier zu finden:
https://packet-radio.net/category/fbb/
HOWTO:
Variante 1 "Quick and Dirty" (getestet / tested):
Aendert / change
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 2) || dernier)
zu / to
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 3))
in folgenden Dateien (Zeilen) im Ordner "src"/ in the following files (lines)
in folder "src".
maintinf.c (482)
serv.c (1039)
epurwp.c (733)
epurmess.c (966)
Variante 2 "sauber / clean" (ungetestet / untested):
maintinf.c:
###############################################
Aendert Zeile 439 / change line 439 von / from:
int dernier = 0, chiffre = 0, lettre = 0;
zu / to:
int chiffre = 0, lettre = 0;
Loescht oder kommentiert aus Zeile 447 / Delete or commend out Line 447:
dernier = (isdigit (*t));
zu / to
//dernier = (isdigit (*t));
oder einfach loeschen. / or just delete it.
Aendert Zeile 482 / change line 482 von / from:
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 2) || dernier)
zu / to
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 3))
###############################################
serv.c:
###############################################
Aendert Zeile 990 / change line 990 von / from:
int dernier = 0, chiffre = 0, lettre = 0;
zu / to:
int chiffre = 0, lettre = 0;
Loescht oder kommentiert aus Zeile 1003 / Delete or commend out Line 1003:
dernier = (isdigit (*t));
zu / to
//dernier = (isdigit (*t));
oder einfach loeschen. / or just delete it.
Aendert Zeile 1039 / change line 1039 von / from:
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 2) || dernier)
zu / to
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 3))
###############################################
epurwp.c:
###############################################
Aendert Zeile 698 / change line 698 von / from:
int dernier = 0, chiffre = 0, lettre = 0;
zu / to:
int chiffre = 0, lettre = 0;
Loescht oder kommentiert aus Zeile 703 / Delete or commend out Line 703:
dernier = (isdigit (*t));
zu / to
//dernier = (isdigit (*t));
oder einfach loeschen. / or just delete it.
Aendert Zeile 733 / change line 733 von / from:
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 2) || dernier)
zu / to
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 3))
###############################################
epurmess.c:
###############################################
Aendert Zeile 929 / change line 929 von / from:
int dernier = 0, chiffre = 0, lettre = 0;
zu / to:
int chiffre = 0, lettre = 0;
Loescht oder kommentiert aus Zeile 937 / Delete or commend out Line 937:
dernier = (isdigit (*t));
zu / to
//dernier = (isdigit (*t));
oder einfach loeschen. / or just delete it.
Aendert Zeile 966 / change line 966 von / from:
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 2) || dernier)
zu / to
if ((n < 3) || (n > 6) || (chiffre < 1) || (chiffre > 3))
###############################################
Das wars schon. / That's it.
Wenn Ihr den Code bereits auf den Rechner kompiliert habt vergesst nicht
backups von Euren configs zu machen und
"sudo make uninstall" und
"sudo make clean"
bevor Ihr den Code neu kompiliert.
Also:
"sudo ./configure"
"sudo make"
"sudo make install"
Don't forget to make backups from your config files before u recompile it on
your machine.
Also don't forget to make
"sudo make uninstall" and
"sudo make clean"
before u compile it again.
In that way:
"sudo ./configure"
"sudo make"
"sudo make install"
Viel Spass und noch schoene Feiertage.
Gruesse und 73 aus Salzwedel (JO52NU),
Manuel **** MD2SAW/CB0SAW/MD2BBS ****
Team PR Salzwedel ( packetradio-salzwedel.de )
Lese vorherige Mail | Lese naechste Mail
| |