diff options
Diffstat (limited to 'src/lib/asiodns/README')
-rw-r--r-- | src/lib/asiodns/README | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/asiodns/README b/src/lib/asiodns/README index e47b166638..e785845342 100644 --- a/src/lib/asiodns/README +++ b/src/lib/asiodns/README @@ -5,11 +5,11 @@ These DNS server and client routines are written using the "stackless coroutine" pattern invented by Chris Kohlhoff and described at http://blog.think-async.com/2010/03/potted-guide-to-stackless-coroutines.html. This is intended to simplify development a bit, since it allows the -routines to be written in a straightfowrard step-step-step fashion rather +routines to be written in a straightforward step-step-step fashion rather than as a complex chain of separate handler functions. Coroutine objects (i.e., UDPServer, TCPServer and IOFetch) are objects -with reenterable operator() members. When an instance of one of these +with reentrant operator() members. When an instance of one of these classes is called as a function, it resumes at the position where it left off. Thus, a UDPServer can issue an asynchronous I/O call and specify itself as the handler object; when the call completes, the UDPServer @@ -47,7 +47,7 @@ In an authoritative server, the DNSLookup implementation would examine the query, look up the answer, then call "resume". (See the diagram in doc/auth_process.jpg.) -In a recursive server, the DNSLookup impelemtation would initiate a +In a recursive server, the DNSLookup implementation would initiate a DNSQuery, which in turn would be responsible for calling the server's "resume" method. (See the diagram in doc/recursive_process.jpg.) @@ -89,7 +89,7 @@ fetch logic: | IOAsioSocket | - +-----+-----+ + +-----+-----+ | | UDPSocket TCPSocket @@ -122,7 +122,7 @@ protocol to use. The sequence is: if (! synchronous) { YIELD; } - YIELD asyncSend(query) // Send query + YIELD asyncSend(query) // Send query do { YIELD asyncReceive(response) // Read response } while (! complete(response)) |