The Corporate Overlords of The Corporation have spoken, and lo, they said “Worry not, for you do not have to deal with the stupidity—we shall deal.” So great, we don't have to drink the REST/HTTPS über alles Kool-Aid™, but instead query our Corporate Overlords for the data, who have drunk the REST/HTTPS über alles Kool-Aid™ (or were forced to by the company we query for the data—the end effect is the same though).
So for now, we still make our queries via UDP, only now in CBOR—the legacy format of DNS is apparently too arcane to support any more.
I have a Lua module but we also need one in C. There are some existing ones, but they have their issues (either an alien build system or missing some critical CBOR feature) so I've been working on a C library I started a few years ago and never finished.
It's working now,
and to test it,
I've been using
valgrind to ensure memory safety,
in addition to using
/dev/urandom to generate random garbage:
GenericUnixPrompt% dd if=/dev/urandom count=2 | tee bad-data | valgrind ./testdecoder
dd is one of those relatively arcane Unix programs that I find useful on occasion
(like here to generate some random data).
tee I use to record the data so I can play it back when
valgrind finds an issue.
This is a reasonable way to fuzz a program.
It did find several issues that could have lead to a crash,
and I don't leak any memory so the code should be good to go.
I've pretty much finished the Lua TLS module and before releasing it,
I thought it might be nice to ensure it compiles with previous versions of
The main header file contains the defined value
which I assume is updated whenever the API is updated.
So I began the arduous procedure of downloading previous versions of
libtls to ensure I can compile against any version.
I started with LibreSSL version 2.7.4
(current when I started—they are now up to 2.8.0 as I write this).
The defined value
TLS_API had a value of “20180210”.
I checked version 2.7.0 and no change in
It wasn't until I got into the pre-2.7 versions that things started going south.
The previous version of
was first defined in 2.5.1,
and last used in 2.6.5.
But the API changed quite a bit between versions 2.5.1 and 2.6.5.
Five functions were added:
What's the point of having a defined value like
TLS_API if it doesn't change when you add new functions?
the defined value
LIBRESSL_VERSION_NUMBER is updated per version,
so at least I can use that.
When I first started working with
I thought that
TLS_API designated a change in API so that one could work with different versions of the library
without breaking the compilation process.
that wasn't the case,
so I switched to using
as that seemed to regularly change with each version.
I was doing this so that my Lua wrapper could be compiled with any version of
Why break things unnecessarily?
And things were going fine until I hit version 2.2.1,
and well …
I'm not asking for much. I'm not asking for slavish adherance to semantic versioning. I'm just asking for a consistent way to check an API to I can support earlier versions of a library.
Don't get me wrong,
I'm glad that
and as an API,
it's much nicer than the eldritch horror of OpenSSL.
I just wish they had updated
why have them in the first place?
I get quite a bit of spam asking to add links to old entries. It's clear that they do a search for something like “Lost Wages” and spam the XXXX out of people who link to any page dealing with their search term. But the one I received yesterday …
- Adam Conrad <firstname.lastname@example.org>
- Article Contribution on Boston.Conman.Org
- Mon, 6 Aug 2018 23:38:14 -0700
I really like the post on your site at
I’ve also, been writing about Shih Tzu and other small, toy or medium breed dogs and related issues like health, food etc at
The Shih Tzu Expert
I would love the chance to write a unique and an interesting guest post for your blog.
I can write about any topic related to pets.
Our articles are 700+ words, written by native English speakers/writers.
Our content is unique, fresh, detailed, and thoroughly researched.
If it covers medical issues or advice, we always require our in house veterinarian to check accuracy of facts before publication.
A selection of titles we are proposing
- What to look for when buying dog food for Shih Tzu and other toy breeds
- Grooming advice, How to groom, best hair cuts, best grooming products.
- Veterinary approved articles about Health issues, Distemper, Parvo, Obesity, Lack of appetite etc
If there is any topic you want us to cover, please feel free to let us know.
Please feel free to contact me if you have any questions.
Seriously … WTF?
The page Adam linked to?
Nothing to do with dogs!
But nooo! Adam choose one sans dogs.
“Classical? That's modern jazz.”
“It's Gershwin. He's white, and he's dead. Therefore, it's classical.”
“So is Kurt Cobain, but I don't consider his music classical.”
I'm checking the work email and lo, there's email from our Vice President of Product Management requesting us, unironically, to wear our Corporate flair.