I want to write a C++ wrapper for the Linux Socket API. In the socket() ctor the adress family (AF) is requested. I dont want to require the AF in the connect() signature ag
POSIX-standard getsockname will help:
int getsockname(int socket, struct sockaddr *restrict address,
socklen_t *restrict address_len);
it will fill in given struct sockaddr (upon success):
struct sockaddr {
unsigned short sa_family; // <- that's what you looking for
char sa_data[14];
}
Damn. Searched about half an hour. Now after posting this question I found immiediately the answer.
getsockopt([...]) with option SO_DOMAIN (see socket options)