Contributed by Paul 'WEiRD' de Weerd on from the shire lease dept.
Ken Westerback (krw@) writes in with his report from a2k19, the hackathon in New Zealand:
Due to an earlier (pre-737Max) airplane problem on the flight back from n2k18 in Usti nad Labem, a loosely worded compensation coupon and the cooperation of beck@ in exploiting said wording, I was able to fly Business Class over the Pacific and thus arrived well rested in BNE. Could have been even more rested if I hadn't had to rouse myself to raise a(nother) glass of champagne as we crossed the date line and it became someone's birthday. First world problems.
The alert reader will have noted that BNE is not where a2k19 was. But beck@ and I had decided to personally drag various Australians onto the flight to Wellington the next day.
All went well, we arrived at WLG at five minutes past midnight (!) and met up with a few more a2k19 attendees. The resulting car convoy took us to Te Puni Village. And dropped us off at the wrong door. Intrepid night reconnaissance by guenther@ and myself discovered the front desk and people checked in. Our first taste of the major elevation changes one encounters between any two points in Wellington, no matter how close they might be from a crow's perspective.
Next morning my phone took me to the cafe recommended by procter@. I must warn people that regular consumption of coffee in Wellington, and particularly at Caffe (sic) Mode can reset your taste buds and make the coffee back home taste like crap. FWP.
I finally wandered into the hackroom around 10am and joined in the frenzied development underway!
I had already spent some airport lounge and Edmonton time cleaning up dhclient's startup logic with a view to ease the transformation of dhclient into a longer lived beast that did not continually restart itself. This included some code shuffling to improve function locality and abstracting resolv.conf handling.
Continuing that work I excised HUP signal handling. i.e. re-reading the dhclient.conf file is no longer supported. Implementing dhclient.conf changes now means manually restarting dhclient. Related documentation was cleaned up and missing bits added.
Getting rid of HUP/re-reading support meant that dhclient no longer needed to re-exec() itself when SSID or LLADDR changes were detected. The state engine merely had to return to an initial state and proceed normally to acquire a new lease.
Getting rid of exec()'ing led to more simplifications and the end result was much better responsiveness for wifi 'join'.
The dhclient momentum continued with fixes to SIGPIPE handling so that early failures are more reliably detected, resulting in fewer worrying log messages about PIPE failures. The message passing between the privileged and non-privileged processes was simplified. The monitoring of link status was more completely abstracted into one function, ensuring all the checks were done at all the appropriate times. Translation of 'egress' into an interface name was simplified.
Finally, a new statement was added to the dhclient.conf syntax -- 'uselease'. Details are in the man page of course, but TL;DR, this allows you to force the use of information in the obtained lease. i.e. to override built-in or previously specified defaults.
Moving on from dhclient, I cleaned up the SCSI layer's handling of the B_ERROR field during command completion, making sure it was in sync with the b_error value. I finally committed a very old diff to add file #'s and block #'s to the mt(1)status output, nuked an unused variable in ifconfig.c and tweaked route(8) output to display all the flags that ifconfig(8) displays. Some amusement was derived from dtucker@'s USB issues on his ARM device. So many developers gazing at such a small machine.
Many thanks to Ken for the excellent write-up and his work on OpenBSD.
(Comments are closed)