Developers

Developers, Developers, Developers! (mirror)
(More info on this dance here).

Welcome!

This page lists general thoughts of (PowerDNS) developers. It is not intended to be pretty. It is also not documentation. This page is open for actual PowerDNS people but also for others browsing the source, and who notice things, or have grand architectural ideas.

Please note that the content of this page is brutally honest and intended for Open Source developers. It is routine for free software projects to be honest about their weaker areas, and this is a good thing. The problems listed below need work but don't mean that PowerDNS is a bad program!

Warts

Ok, while we all know PowerDNS is cool, it does have a number of real warts. Feel free to add anything you notice here:

DNSPacket

Is an abomination. You can really see that this was Bert's first C++ program! The big issue is that a 'DNSPacket' is a nice abstraction, but the semantics of a real DNSPacket object are complex. There are four things PowerDNS does wrt DNS packets:

  • Parsing
  • Generating
  • Modifying
  • Storing records that should end up in a generated DNS packet

Currently these four things are all within DNSPacket. Now, DNSPacket does not implement half of the methods it should to be a real encapsulation of DNS packets. This would include read/write access to a packet, which is currently not available. Also, you can 'wrapup' a packet, but sometimes not again etc etc.

What we should have is:

  • A DNSParser
  • A DNSPacketGenerator
  • Perhaps some freestanding functions to modify packets w/o completely parsing them
  • A 'staging' abstraction to which we can add records. This abstraction would allow randomisation, duplicate detection etc etc.
  • A separate file which has methods for each record to:
    • encode itself to DNS format
    • decode itself from DNS format
    • encode itself to 'zone format'
    • decode itself from 'zone format'

The good news is that we have the MOADNSParser - see here, which is almost there.

The code is too low-level

Look, this is the 21st century. We don't want to see code messing around with 'sendto' and struct inaddr casts, and special casing for IPV6 etc.

The recursor processes records too much

One of the rare cool things about DNS is that it can transport and cache record types unknown to the software. This is done by copying most of a record verbatim, w/o any interpretation. The PowerDNS recursor was built on top of the DNSPacket horrors mentioned above, and parses all records, unless it doesn't know about their type. Instead, it should only parse a very limited number of record types (A, AAAA and those records which can be transmitted in compressed form).

Mortgage Chicago, Payday Loan Online, Illinois Car Insurance Quote, Payday Loan Store, Low Cost Car Insurance, Interest Only Mortgage, Same Day No Fax Payday Loan, Second Mortgage Loan, Home Equity Loan Minnesota, Mortgage Insurance, Low Fee Payday Loan, Home Mortgage Refinance Loan, Fast Easy Payday Loan, Ohio Mortgage, Second Mortgage Bad Credit, California Reverse Mortgage, Buy Car Insurance Online, Affordable Car Insurance, California Home Loan, Ohio Car Insurance Quote, California Car Insurance Quote, Nj Car Insurance, Free Car Insurance Rate Quote, California Mortgage, Advance Cash Loan Payday Quick, Home Purchase Loan, Finance Mortgage, Pennsylvania Car Insurance Quote, Mortgage Lender, Low Cost Payday Loan, Mortgage Chicago, Payday Loan Company, Arizona Mortgage, Washington Car Insurance Quote, North Carolina Mortgage, Quick Payday Loan, Car Insurance For Woman, Finance Mortgage, Reverse Mortgage, Payday Cash Loan, Best Car Insurance Quote, Texas Mortgage Rate, Home Equity Loan, Pennsylvania Car Insurance Quote, Mortgage Quote, On Line Car Insurance Quote, Fast Cash Payday Loan, Commercial Mortgage, Texas Car Insurance, Cheap Florida Car Insurance, Progressive Car Insurance Quote, Reverse Mortgage For Senior, Best Car Insurance, Payday Advance Loan, Cash Advance Payday Loan, Florida Mortgage Loan, Performance Car Insurance Quote, Performance Car Insurance Quote, Cheap Payday Loan, Michigan Car Insurance Quote, Advance Cash Loan Online Payday, Mortgage Houston, Home Mortgage, Bad Credit Mortgage, Payday Advance Loan, Mortgage Loan, Mortgage Washington, Quick Payday Loan, New York Car Insurance Quote, Mortgage Company, Home Mortgage, On Line Car Insurance Quote, Bad Credit Loan Mortgage, 2nd Mortgage, Car Insurance Chicago, Cash Til Payday Loan, Car Insurance For Woman, Instant Payday Loan, Bad Credit Home Loan, Home Mortgage Refinance Loan, Progressive Car Insurance Quote, Car Insurance Los Angeles, Car Insurance Quot, Home Improvement Loan, Bad Credit Payday Loan, Fixed Mortgage, Second Mortgage, Bad Credit Mortgage Refinancing, California Car Insurance, Home Mortgage Lender, Florida Mortgage, Maryland Mortgage, No Fax Payday Loan, Classic Car Insurance, Quick Car Insurance Quote, Same Day No Fax Payday Loan, Nj Car Insurance, Reverse Mortgage For Senior, Fast Easy Payday Loan, Guaranteed Payday Loan, Quick Car Insurance Quote, No Faxing Payday Loan, Fixed Home Equity Loan, New Jersey Car Insurance, Bad Credit Home Mortgage Loan, Pennsylvania Car Insurance, Computer Quote Car Insurance, Car Insurance Houston, Va Home Loan, California Mortgage Loan, Equity Mortgage, Missouri Car Insurance Quote, Classic Car Insurance Quote, Missouri Car Insurance Quote, Nj Car Insurance Quote, Home Mortgage Online, First Mortgage, Louisiana Car Insurance Quote, North Carolina Mortgage Loan, Advance Cash Loan Payday Quick, Fixed Home Equity Loan, New York Car Insurance, Texas Reverse Mortgage, Car Insurance Philadelphia, Reverse Mortgage Lender, Direct Car Insurance, New Jersey Car Insurance, Texas Mortgage Loan, Discount Car Insurance, Fixed Rate Mortgage, Home Purchase Loan, Payday Cash Loan, Texas Car Insurance, North Carolina Mortgage, Ny Car Insurance Quote, Home Mortgage Refinance Loan, Florida Car Insurance, Refinance Mortgage Loan, Texas Reverse Mortgage, Easy Payday Loan, Cheap Online Car Insurance Quote, Michigan Car Insurance Quote, First Time Home Buyer Loan, Adjustable Rate Mortgage, Home Mortgage Refinance Loan, Car Insurance Ny, Refinance Mortgage Loan, Mortgage Quote, Online Mortgage, Discount Car Insurance