summaryrefslogtreecommitdiff
path: root/source3/libsmb/namequery.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-06-03 15:49:55 +0200
committerVolker Lendecke <vl@samba.org>2011-06-12 17:07:47 +0200
commitebf04d79abdf0a15248a266162c8ec8906ce3c5f (patch)
treef4b3f8a9cf3510c75a96e225893201a4d849c7d6 /source3/libsmb/namequery.c
parenteb16915e283879aaf0797896fc9bd96b095ff550 (diff)
downloadsamba-ebf04d79abdf0a15248a266162c8ec8906ce3c5f.tar.gz
samba-ebf04d79abdf0a15248a266162c8ec8906ce3c5f.tar.bz2
samba-ebf04d79abdf0a15248a266162c8ec8906ce3c5f.zip
s3: Remove "struct ip_service" from resolve_wins
Diffstat (limited to 'source3/libsmb/namequery.c')
-rw-r--r--source3/libsmb/namequery.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index 511eba4cbf..5969f656c1 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -1799,12 +1799,13 @@ NTSTATUS name_resolve_bcast(const char *name,
NTSTATUS resolve_wins(const char *name,
int name_type,
- struct ip_service **return_iplist,
+ TALLOC_CTX *mem_ctx,
+ struct sockaddr_storage **return_iplist,
int *return_count)
{
int t, i;
char **wins_tags;
- struct sockaddr_storage src_ss, *ss_list = NULL;
+ struct sockaddr_storage src_ss;
struct in_addr src_ip;
NTSTATUS status;
@@ -1882,8 +1883,8 @@ NTSTATUS resolve_wins(const char *name,
false,
true,
&wins_ss,
- talloc_tos(),
- &ss_list,
+ mem_ctx,
+ return_iplist,
return_count,
NULL);
@@ -1914,10 +1915,6 @@ NTSTATUS resolve_wins(const char *name,
success:
status = NT_STATUS_OK;
- if (!convert_ss2service(return_iplist, ss_list, *return_count))
- status = NT_STATUS_INVALID_PARAMETER;
-
- TALLOC_FREE(ss_list);
wins_srv_tags_free(wins_tags);
return status;
@@ -2314,11 +2311,18 @@ NTSTATUS internal_resolve_name(const char *name,
}
} else if(strequal( tok, "wins")) {
/* don't resolve 1D via WINS */
+ struct sockaddr_storage *ss_list;
if (name_type != 0x1D) {
status = resolve_wins(name, name_type,
- return_iplist,
+ talloc_tos(),
+ &ss_list,
return_count);
if (NT_STATUS_IS_OK(status)) {
+ if (!convert_ss2service(return_iplist,
+ ss_list,
+ *return_count)) {
+ status = NT_STATUS_NO_MEMORY;
+ }
goto done;
}
}