int name_type,
bool prefer_ipv4)
{
- struct ip_service *ss_list = NULL;
+ struct samba_sockaddr *sa_list = NULL;
char *sitename = NULL;
size_t count = 0;
NTSTATUS status;
sitename = sitename_fetch(frame, lp_realm()); /* wild guess */
- status = _internal_resolve_name(frame,
+ status = internal_resolve_name(frame,
name,
name_type,
sitename,
- &ss_list,
+ &sa_list,
&count,
lp_name_resolve_order());
if (NT_STATUS_IS_OK(status)) {
if (prefer_ipv4) {
for (i=0; i<count; i++) {
- struct samba_sockaddr sa = {0};
- bool ok;
-
- ok = sockaddr_storage_to_samba_sockaddr(&sa,
- &ss_list[i].ss);
- if (!ok) {
- TALLOC_FREE(ss_list);
- TALLOC_FREE(frame);
- return false;
- }
- if (!is_broadcast_addr(&sa.u.sa) &&
- (sa.u.ss.ss_family == AF_INET)) {
- *return_ss = ss_list[i].ss;
- TALLOC_FREE(ss_list);
+ if (!is_broadcast_addr(&sa_list[i].u.sa) &&
+ (sa_list[i].u.ss.ss_family == AF_INET)) {
+ *return_ss = sa_list[i].u.ss;
+ TALLOC_FREE(sa_list);
TALLOC_FREE(frame);
return True;
}
/* only return valid addresses for TCP connections */
for (i=0; i<count; i++) {
- struct samba_sockaddr sa = {0};
- bool ok;
-
- ok = sockaddr_storage_to_samba_sockaddr(&sa,
- &ss_list[i].ss);
- if (!ok) {
- TALLOC_FREE(ss_list);
- TALLOC_FREE(frame);
- return false;
- }
- if (!is_broadcast_addr(&sa.u.sa)) {
- *return_ss = ss_list[i].ss;
- TALLOC_FREE(ss_list);
+ if (!is_broadcast_addr(&sa_list[i].u.sa)) {
+ *return_ss = sa_list[i].u.ss;
+ TALLOC_FREE(sa_list);
TALLOC_FREE(frame);
return True;
}
}
}
- TALLOC_FREE(ss_list);
+ TALLOC_FREE(sa_list);
TALLOC_FREE(frame);
return False;
}