Browse Source

use SUN_LEN to calculate length of unix address @ FreeBSD.

v0.7.4-release
Vanilla Hsu 15 years ago
committed by Ryan Dahl
parent
commit
6c5c808569
  1. 18
      deps/evcom/evcom.c

18
deps/evcom/evcom.c

@ -849,21 +849,27 @@ static inline socklen_t
address_length (struct sockaddr *address)
{
struct sockaddr_un* unix_address = (struct sockaddr_un*)address;
int length = 0;
switch (address->sa_family) {
case AF_INET:
return sizeof(struct sockaddr_in);
length = sizeof(struct sockaddr_in);
break;
case AF_INET6:
return sizeof(struct sockaddr_in6);
length = sizeof(struct sockaddr_in6);
break;
case AF_UNIX:
return strlen(unix_address->sun_path) + sizeof(unix_address->sun_family);
#ifdef SUN_LEN
length = SUN_LEN(unix_address);
#else
length = strlen(unix_address->sun_path) + sizeof(unix_address->sun_family);
#endif
break;
default:
assert(0 && "Unsupported socket family");
}
return 0;
return length;
}
int

Loading…
Cancel
Save