Wouldn't it be easier to do something like I did with BIND -- detect the "protocol not available" (ENOPROTOOPT?) and don't use the feature, instead of calling it an error...