That is something I was worried about. I just checked, and OSX uses 104, while Ubuntu (don't know about other distributions) uses 108. I'll make this a platform dependent value.

BTW would it be a good idea to make sockaddr/sockaddr_in/sockaddr_un an enum named sockaddr_storage? That would remove a lot of casting which is remnant of that C API. IIRC, the enum uses the largest type's size, right?