> > >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

Antwort per Email an