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