}
sock->backend_name = "ipv4";
+ sock->family = AF_INET;
return NT_STATUS_OK;
}
struct sockaddr_in *from_addr;
socklen_t from_len = sizeof(*from_addr);
struct socket_address *src;
- const char *addr;
+ char addrstring[INET_ADDRSTRLEN];
src = talloc(addr_ctx, struct socket_address);
if (!src) {
src->sockaddrlen = from_len;
- addr = inet_ntoa(from_addr->sin_addr);
- if (addr == NULL) {
+ if (inet_ntop(AF_INET, &from_addr->sin_addr, addrstring,
+ sizeof(addrstring)) == NULL) {
talloc_free(src);
return NT_STATUS_INTERNAL_ERROR;
}
- src->addr = talloc_strdup(src, addr);
+ src->addr = talloc_strdup(src, addrstring);
if (src->addr == NULL) {
talloc_free(src);
return NT_STATUS_NO_MEMORY;
{
struct sockaddr_in *peer_addr;
socklen_t len = sizeof(*peer_addr);
- const char *addr;
struct socket_address *peer;
+ char addrstring[INET_ADDRSTRLEN];
int ret;
peer = talloc(mem_ctx, struct socket_address);
peer->sockaddrlen = len;
- addr = inet_ntoa(peer_addr->sin_addr);
- if (addr == NULL) {
+ if (inet_ntop(AF_INET, &peer_addr->sin_addr, addrstring,
+ sizeof(addrstring)) == NULL) {
talloc_free(peer);
return NULL;
}
- peer->addr = talloc_strdup(peer, addr);
+ peer->addr = talloc_strdup(peer, addrstring);
if (!peer->addr) {
talloc_free(peer);
return NULL;
{
struct sockaddr_in *local_addr;
socklen_t len = sizeof(*local_addr);
- const char *addr;
struct socket_address *local;
+ char addrstring[INET_ADDRSTRLEN];
int ret;
local = talloc(mem_ctx, struct socket_address);
local->sockaddrlen = len;
- addr = inet_ntoa(local_addr->sin_addr);
- if (addr == NULL) {
+ if (inet_ntop(AF_INET, &local_addr->sin_addr, addrstring,
+ sizeof(addrstring)) == NULL) {
talloc_free(local);
return NULL;
}
- local->addr = talloc_strdup(local, addr);
+ local->addr = talloc_strdup(local, addrstring);
if (!local->addr) {
talloc_free(local);
return NULL;
}
sock->backend_name = "ipv6";
+ sock->family = AF_INET6;
return NT_STATUS_OK;
}