Hi,
Not to sound entitled but it's a big omission that  you can get_client_hello_ext(42) to get  the 42nd extension but can't check what extensions are even present, before you do it. The only way to do this currently is to iterate on get_client_hello_ext() and hope that you didn't miss something.
OPENSSL does provide a clean way to this though:
SSL_client_hello_get1_extensions_present().
I'm working to implement this myself. But if anyone wants to pitch in bless you, thx