Storks, epoll, kqueue
Posted by bert hubert Mon, 17 Apr 2006 08:23:00 GMT
We visited my father on holiday last Saturday, hoping to get his wireless internet up and running. Sadly it turns out there are around 3 different antenna connectors and I think around 3 on the computer side of things. The antenna is very spiffy though. Will investigate this week how to best provide wireless - the non plus ultra solution would be a repeater, which would save heaps of cables.
While there, I was tasked with getting some eggs from the chicken coop. Being a city person, I wondered if the chickens would be ok with that and it took some convincing to get me into the cage :-) It suddenly hit me that eggs do not come out of a box but out of the back of a chicken!!! Gross! Oh well.
Then we saw a stork, which is rare enough in The Netherlands. And then another one, until there were four. Impressive birds.
PowerDNS
As mentioned previously, I implemented a lot of anti-spoofing technology in PowerDNS recently. This did come at some operating system cost - listening on so many sockets at the same time exposes shortcomings in the traditional unix select
function. Luckily, modern Unixes like FreeBSD, Linux and Solaris all come with replacements, called kqueue
, epoll
and ports
respectively. I wrote a simple multiplexer and implemented support for select
, kqueue
and epoll
, and it all appears to work. I’ll do Solaris once I have a chance.
This also moved all different packet handlers to separate functions, everything previously was within one big loop in main()
.
With the major exception being the ability to serve from IPv6 (AAAA etcetera works of course), the PowerDNS recursor is now feature complete for 3.0, so I released version 3.0-pre2 (freshmeat).