dhcpcd added to DragonFlyBSD .... FreeBSD next?

So, dhcpcd was added to DragonFlyBSD almost a year ago. Recently I’ve become a DragonFlyBSD committer with the express purpose of easing dhcpcd into the role of the default DHCP client. All of the really needed kernel improvements are now in and dhcpcd doesn’t log any more compile warnings, but there is more work to be done such as RFC 5227 support, restarting DaD on link state up and denying the use of an address until validated.
Read full post

open_memstream

open_memstream is one of the more important functions added to POSIX libc of late. It’s so important because it makes the generation of strings really easy- you no longer need to care about allocating the right amount of memory as the library will do it for you. Now, there’s many functions that already help with this, such as asprintf but that’s not standard and if you want to create many strings in one area you still need to care about the size of the area.
Read full post

Red-Black Tree

Pretty much every piece of software I’ve seen uses a list of objects. When you need to easily grow and shrink this list easily you then need something like a Linked List. dhcpcd has used very popular and widely available BSD based queue(3), specifically a tailq. The main advantages of this type of list are: Very low extra memory needed for it’s implementation Fast at insertion and removal operation- both are O(1) However, it’s just a list.
Read full post

Each BSD is it's own special networking snowflake

So after maintaining dhcpcd (an automated network configuration tool) for quite a few years now on various BSD platforms I find myself constantly amazed by their little differences. For various reasons, my code talks directly to the kernel to manipulate addresses and routes in ways it’s simply not possible using ifconfig(8) or route(8). I’ve reported various bugs upstream, sometimes supplied patches. dhcpcd these days works pretty darned well on all BSD platforms out of the box, but there are still some caveats where dhcpcd has to work differently to do the same job.
Read full post

Hello Phabricator

After waving a fond farewell to Fossil I give a hearty hello to Phabricator! The Good Phabricator is written in PHP which means I don’t have to install Yet Another Framework. I use quite a few things that depend on PHP on this site already, such as Grav and RoundCube. So of course, it allows me to self host. Or you can rent a Phabricator VPS @ Phacility. The sign up process (to my Phabricator instance, not somewhere else) is very straight-forward, allowing email/password with ReCaptha or use a OAuth2 provider such as Google.
Read full post