DNS
Martin `MJ' Mares
mj na ucw.cz
Pondělí Duben 10 15:28:26 CEST 2000
Zdravim!
> Ano. Ovsem mluvim o tom, jak najdu, ze takovy zaznam mam.
> Takze jeste jednou: Jak mam prohledavat pamet, abych zjistit, ze
> mam a.b.c, kdyz misto toho muzu mit *.b.c?
>
> Reseni "nejdriv hledam to, pak to" trva zjevne dvakrat tak dlouho.
>
> Reseni "hledej b.c.a ci c.b.*" tento problem nemusi mit, ovsem to
> zase znamena, ze si pro kazdy rekord musim jeste pamatovat, jak
> je pozpatku (podstatne mnozstvi pameti navic) nebo musim string
> prevracet tam a zpet (opet zpomaleni, navic jeste s nutnosti
> dynamicke alokace).
>
> Dalsi moznosti?
Trivialni reseni: Domenova jmena si udrzuji jako strom (stejne to
potrebuji, abych mohl efektivne nalezt `x.y.z.a' jak v pripade, kdy
`x' je soucast domeny `y.z.a', tak tehdy, kdyz se jedna o record `x.y'
v domene `z.a'). Kazdy vrchol stromu obsahuje jednak hashovaci tabulku,
ktera prirazuje jmenum pointery do podstromu, jednak fallback pointer,
ktery reprezentuje `*' v dane domene. Listy stromu obsahuji mnoziny
recordu odpovidajici jednotlivym jmenum.
Vyhledavaci algoritmus: rozdelim jmeno na komponenty, pro kazdou
z nich vyhledam v hashovaci tabulce, paklize nalezeno, sestoupim do prislusneho
podstromu, paklize nenalezeno, pouziji fallback pointer a koncim.
Opravdu mi neni jasne, co Vam na wildcardovem hledani pripade
obtizneho ci pomaleho.
Have a nice fortnight
--
Martin `MJ' Mares <mj na ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"To understand a program you must become both the machine and the program."
Další informace o konferenci Linux