~ubuntu-branches/ubuntu/raring/maradns/raring

« back to all changes in this revision

Viewing changes to deadwood-3.0.02/doc/internals/Glueless.NS

  • Committer: Bazaar Package Importer
  • Author(s): Nicholas Bamber
  • Date: 2011-02-04 16:26:50 UTC
  • mfrom: (1.1.15 upstream) (10.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20110204162650-3gsrxedcsbp8vkeq
Tags: 1.4.06-1
* New maintainer (Closes: #610842)
* New upstream version
* Upped standards version to 3.9.1 - no changes
* Changed to '3.0 (quilt)' format
* Rewrote debian/rules and added patches to not change source code
* Resolved python dependencies
* Refreshed copyright to DEP-5 standard
* Put 'set -e' in maintainer scripts
* Added patch to fix spelling mistakes
* Tightened up installation of binaries, examples, docs and man pages
* Added patch to improve readability of man pages
* Registered tutorial HTML with doc-base
* TODO.Debian: Added plan for future versions 
* Added extract of bug report about binding to 0.0.0.0
  to doc-base. (Closes: #486497)
* Install resolvconf-script to examples, cf. #608946
* Install zoneserver.init to examples, cf. #582069

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Some overview of how Deadwood handles glueless NS queries
 
2
 
 
3
Functions which allocate memory for addr.glueless:
 
4
 
 
5
dwx_ns_getip_glueless(), which is called by dwx_ns_getip(), which is called
 
6
by get_upstream_ip(), which is called by make_remote_connection() and 
 
7
setup_tcp_server().
 
8
 
 
9
It is zapped in dwx_do_ns_glueless(), called from make_remote_connection(),
 
10
as well as setup_tcp_server().
 
11
 
 
12
---
 
13
 
 
14
Glueless NS referral procedure:
 
15
 
 
16
-> Increase the timeout so the query waiting for the glueless is less likely
 
17
   to expire.
 
18
 
 
19
-> Look for already existing query solving this name.
 
20
 
 
21
--> If there already is query...
 
22
 
 
23
---> See if its recurse_depth is under 32
 
24
 
 
25
----> If it is, set recurse_depth for both the parent and child queries to the
 
26
     the highest value in either + 1
 
27
 
 
28
---> -or-
 
29
 
 
30
----> If recurse_depth in the already existing query is too high, give up the
 
31
      resolution of this name. 
 
32
 
 
33
---> Connect to the query in question; add a local_T with glueless_type set to
 
34
     1 and glueless_conn set to the connection number that needs the glueless
 
35
     name solved.
 
36
 
 
37
--> OK, there isn't already a query. 
 
38
 
 
39
---> Create a new query with a recurse_depth which is the parent's 
 
40
     recurse_depth + 1   
 
41
 
 
42
find_inflight_query() looks for an already existing query; I need to
 
43
write a dwx_find_inflight() version of this for when we already have
 
44
the query as a dw_str object.
 
45
 
 
46
In addition to adding the query for solving the glueless NS referral,
 
47
we also have get_remote_udp_packet() call something to let
 
48
the parent know we now have an answer for their glueless NS referral,
 
49
as well as having the parent use said answer to connect to the correct NS 
 
50
server.
 
51
 
 
52
We may want to have it so server_fail_noreply() does the right thing,
 
53
such as allowing the parent to try again with another NS record; however,
 
54
for the time being, I have this critter ignore local connections
 
55
which are referrals to NS glueless resolution.
 
56