OpenBSD Journal

n2k18 Hackathon report: Ken Westerback (krw@) on disklabel(8) work, dhclient(8) progress

Contributed by Peter N. M. Hansteen on from the hackers on a train dept.

Fresh from the just concluded n2k18 hackathon comes this report from Ken Westerback (krw@), who writes:

How to travel from Dresden to Usti nad Labem for free!

No drama flying to Dresden, from which a train would take me to n2k18's home in Usti nad Labem. Other than being puzzled that it costs less to fly YYZ -> FRA -> DRS than it costs to fly YYZ -> FRA.

While preparing for the trip phessler@ kindly asked me to join himself, stsp@, claudio@, and benno@ on the Berlin to Usti nad Labem hackathon express, in the compartment that stsp@ had reserved. Met benno@ at Dresden Hbf, train from Berlin came in on time and off we went! Unknown to me, reserving a compartment does not mean a ticket was purchased. As no ticket collector came by before the train got to Usti nad Labem I travelled for free in blissfull ignorance! On the return journey it was discovered I had no ticket. To the amazement of the Europeans in the compartment. I expressed shock that one could reserve a seat w/o having a ticket. EUR20 to the ticket collector and all was well. Who said hackathons weren't educational?

Once in Usti nad Labem we walked (uphill as all hackathons are) to the extremely nice hackroom. Sampled the bottomless free coffee and semi-bottomless pastry tray, and set up for some hacking!

After getting a small disklabel(8) fix committed I got down to the serious business of getting dhclient(8) working smoothly with the new 'join' feature of the 802.11 stack. In particular improving the handling of ever-changing SSIDs as networks are automatically joined. dhclient(8) currently checks for SSID once at startup and then uses pledge() to discard its ability to check again. This can result in incorrect SSIDs being recorded in the dhclient.leases(5) file, and thus a non-optimal REQUEST vs DISCOVER process on restarts.

The last time we were in .cz phessler@ had hacked together a diff to issue a new routing socket message when the SSID changed. As a first step I updated this diff to work on -current. For some loose definition of 'work'.

I then hacked a dhclient(8) diff to do the same thing without a new routing socket message, by adding the ability for the un-pledged privileged process to check the SSID.

And finally I hacked a diff to enhance an existing routing socket message, RTM_IFINFO, to provide the same service as phessler@'s new message.

I sent all three out and waited for feedback. And waited. And waited. And made pointed comments on icb and to the room at large. And waited. And eventually discovered that I had not been paying sufficient attention the "Following current" FAQ section. There had been a significant change to smtpd.conf syntax that broke my outgoing email! After fixing my smtpd.conf and reprocessing the mail queue, people starting getting my emails and providing feedback!

The consensus was that the phessler@ new routing socket message was the way to go and I finished out the hackathon polishing that diff but not achieving sufficient quality to commit (yet).

I did manage one last commit, eliminating an unused LIST() of ieee80211 interfaces, ieee80211com_head.

And then off to the train, the reservation vs ticket discovery and the soothing of the ticket collector.

Thanks to sashan@, Pavel and other friends at Univerzita Jana Evangelisty Purkyne for excellent organization, Oracle and the OpenBSD Foundation for their financial support, and my German friends for educating me on some finer points of European train travel!

(Comments are closed)


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]