> > >Wenn alle obigen Fragen mit "Ja" beantwortet werden, so h�tte ich schon
> > >noch ein paar konkrete Vorstellungen bez�glich der Schnittstelle, die
> > >will ich aber jetzt noch nicht in die Diskussion einwerfen.
> >
> > int getzone(int provider, const char* from, const char* to)
getZone() ist schlecht, das gibt es schon. Aber das kann ich umbenennen,
also bleibts bei getZone().
> IMHO geh�rt noch das Land (.de, .at, .ch, .nl ...) dazu. Michael hatte
> vor einigen Tagen hier ein sauberes Design gepostet ...
> Bitte mal nachsehen ...
Hatte ich? Ich glaube, das w��te ich..
Also gut, ich mache mir mal ein paar laute Gedanken:
* Orientiere dich am holiday.c und holiday.h (von wegen strip() und
warning() usw.
* Es gibt keine globalen Variablen in der Schnittstelle (sehr wohl aber
lokale statische Variablen)
* Schnittstelle: initZone(int provider, char *path, char**message)
exitZone(int provider)
getZone(int provider, char *from, char *to)
* wie du das intern machst, d.h. ob du die Tabellen in den Speicher
einliest oder die Dateien offenh�ltst ist mir egal.
* getZone liefert UNKNOWN, wenn keine Verzonung f�r diesen Provider
vorliegt.
* initZone() wird f�r jede Verzonungstabelle aufgerufen, wir haben dann
auch entsprechend viele Hinweise im syslog (die kommen vom **message)
* initZone() wird von initRate() f�r jeden Provider (der eine verzonung
hat) aufgerufen, damit �ndert sich an der Schnittstelle zur rate.c
nichts, d.h. zone.c bleibt komplett hinter rate.c verborgen.
* Wie verwalten wir den Fall, da� mehrere Provider dieselbe Verzonung
verwenden? Ich m�chte keine zus�tzliche Datei mehr haben, und ich m�chte
auch die einzelnen Verzonungstabellen nicht mischen. Eine bestimmte
Verzonung ist eine Datei. Vorschlag: Ein neues Tag in der rate-xx.dat,
das angibt, welche Verzonung zu verwenden ist (aber auf jeden Fall ohne
Pfad!). Dann wird �ber einen Eintrag "ZONEFILE" in der isdn.conf der
Pfad zur Datei ermittelt und initZone() aufgerufen. Dabei kann es
passieren, da� initZone() f�r eine Datei zweimal aufgerufen wird
(allerdings mit verschiedenen Providern). initZone k�nnte das ja
feststellen (indem es sich den Pfad f�r jede Verzonung merkt) und intern
nur einen Verweis speichern. Mit dieser Variante w�ren auch symbolische
Namen f�r Verzonungen m�glich:
ZONEFILE=/usr/lib/isdn/zone-at-%z.dat
P:01 Telekom Austria
X:pta
P:02 Junk
X:pta
P:03 Juhu
X:flat
dazu gibt es dann ein /usr/lib/isdn/zone-at-pta.dat und ein
zone-at-flat.dat
Fragen:
* wie nennen wir das X:-Tag? (Z: ist leider schon vergeben)
* bezieht sich das X:-Tag direkt auf den symbolischen Namen oder auf die
Providernummer (X:01 = verwende die Verzonung von Provider 01)
* sind mehrere Indirektionen m�glich? (P:03 verwendet die Verzonung von
P:02, welcher die Verzonung von P:01 verwendet)
comments?
--
netWorks Vox: +43 316 698260
Michael Reinelt Fax: +43 316 692343
Geisslergasse 4 GSM: +43 676 3079941
A-8045 Graz, Austria e-mail: [EMAIL PROTECTED]
_______________________________________________
Rates4linux-devel mailing list
[EMAIL PROTECTED]
http://lists.SourceForge.net/mailman/listinfo/rates4linux-devel