[SCM] Samba Shared Repository - branch master updated
Noel Power
npower at samba.org
Mon Sep 7 14:47:05 UTC 2020
The branch, master has been updated
via 7a3c368d787 s3: libsmb: Cleanup in get_dc_list()
via 170051d61eb s3: libsmb: Now we only have namecache_store_sa(), rename it back to namecache_store().
via 2989d736c4a s3: libsmb: Remove use of struct ip_service from the namecache code.
via 9da8d26fe06 s3: libsmb: Remove the last caller of namecache_store().
via 3dad456d8cb s3: libsmb: Add internal conversion function ip_service_to_samba_sockaddr().
via 4c81f39012c s3: winbindd: Use namecache_store_sa() inside dcip_check_name().
via 1593231e0ef s3: libsmb: Use namecache_store_sa() instead of namecache_store().
via 0e59fee2917 s3: libsmb: Add namecache_store_sa(). Doesn't store ports and takes a samba_sockaddr array.
via 7835e2cb480 s3: libsmb: Add internal ipstr_list_make_sa().
via 39ecff712f0 s3: libsmb: Cleanup - resolve_name() get names from internal_resolve_names() which is guaranteed not to return zero addresses.
via c6cc05f5976 s3: libsmb: Remove commented out wrapper for internal_resolve_name().
via f36a0be9a76 s3: libsmb: Comment out wrapper function internal_resolve_name(). Rename _internal_resolve_name() -> internal_resolve_name().
via 57349b65cc4 s3: libsmb: Remove now unused dup_ip_service_array().
via 68e12688f2b s3: libsmb: Finally change _internal_resolve_name() to return a talloc'ed ip_service array.
via 863ab1af625 s3: libsmb: Make _internal_resolve_name() return a size_t pointer for count.
via 31674946b77 s3: libsmb: _internal_resolve_name() code cleanup.
via 5e819231b3a s3: libsmb: _internal_resolve_name() code cleanup.
via e68e0402cce s3/libsmb: Cleanup coding in convert_ss2service()
via 6b0b726105e s3: libsmb: Cleanup coding in convert_ss2service().
via 9e4b5349f23 s3: libsmb: Change convert_ss2service() and it's one caller to take and return unsigned counts.
via cb01b5e433d s3: libsmb: Make namecache_store() take an unsigned count.
via f39ff1367a1 s3: libsmb: _internal_resolve_name(). Remove unused free(s).
via 4d4bf8eedbe s3: libsmb: Convert namecache_fetch() and it's only caller to return a talloc'ed array of struct samba_sockaddr.
via 9ffb18856bf s3: libsmb: Cleanup the code to do one address return given an IP address to _internal_resolve_name().
via aa20df217c4 s3: libsmb: Change remove_duplicate_addrs2() to take and return size_t, not int.
via e065fc8e284 s3: libsmb: Move talloc_stackframe() initialization to the front of _internal_resolve_name().
via f5bb322e66d s3: libsmb: Rename internal_resolve_name_talloc() -> internal_resolve_name().
via a68d329b407 s3: libsmb: Remove internal_resolve_name() externally. All callers now use internal_resolve_name_talloc().
via e5fd57d6e57 s3/libsmb: Cleanup, don't modify out params except on success
via a16d023c15a s3: libsmb: Make discover_dc_netbios() use internal_resolve_name_talloc().
via fed4b6341c9 s3: libsmb: Make get_dc_list() use internal_resolve_name_talloc().
via 37eaee03e0e s3: libsmb: Make get_pdc_ip() use internal_resolve_name_talloc().
via 55b589e9b04 s3: libsmb: Make find_master_ip() use internal_resolve_name_talloc().
via 12e346d9d80 s3/libsmb: resolve_name_list don't update out params except for success
via 505272a893d s3: libsmb: Make resolve_name_list() use internal_resolve_name_talloc().
via e18eb94f427 s3: libsmb: namequery - Make resolve_name() use internal_resolve_name_talloc().
via c6fc75a73bd s3: libsmb: namequery - Add internal_resolve_name_talloc().
via c0ccdd7038a s3: libsmb: Make get_dc_list() internal to namequery.c return talloc'ed ip_service array.
via 973ca8a5c01 s3: libsmb: Cleanup - use early return in get_dc_list().
via 46f7ab8f370 s3: libsmb: Change get_dc_list() to return a size_t count parameter.
via b9bc1e59bd8 s3: libsmb: Change to an early return in get_dc_list().
via 3b3f92a2fa7 s3: libsmb: Cleanup - rename ctx -> frame for a talloc_stackframe to match modern coding standards.
via 23fb64f35a6 s3: libsmb: Rename get_sorted_dc_list_talloc() -> get_sorted_dc_list()
via a0984e50642 s3: libsmb: Remove get_sorted_dc_list().
via e8b7162415d s3: winbindd: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
via 1d6c3c2dea2 s3: net lookup: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
via b4164093cfe s3: libsmb: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
via fbc2031800c s3: libads: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
via f305a140d10 s3: libsmb: Add get_sorted_dc_list_talloc().
via 6deb23c6187 s3: libads: Rename get_kdc_list_talloc() -> get_kdc_list().
via b7182c44176 s3: libsmb: Remove now unused get_kdc_list() (non-talloc version).
via 11226af33e1 s3: utils: net_lookup. Convert to use get_kdc_list_talloc().
via 5307b0e319a s3/libads: Cleanup() get_kdc_ip_string, free kdc_str on error
via 9d62c3e9819 s3/libads: Only set result to kdc_str on success
via 8e1b6602f51 s3: libads: Make get_kdc_ip_string() use get_kdc_list_talloc().
via e8a491691da s3: libsmb: Add get_kdc_list_talloc().
via 02016acb2d8 s3: libsmb: Add utility funtion dup_ip_service_array().
via 6bee431be3c s3: libsmb: Cleanup - Use helper variable for return from namecache_fetch() in internal_resolve_name().
via a4073ae55c3 s3: libsmb: Cleanup in resolve_name_list().
via 6c28d715116 s3: libsmb: Cleanup - correctly error on sockaddr_storage_to_samba_sockaddr() fail.
via b95eea6b292 s3: libsmb: Cleanup - ensure we initialize all stack variables to 'safe' values when calling resolve_name_list()
via 13acac25cb4 s3: libsmb: Cleanup - ensure we initialize all stack variables to 'safe' values when calling get_sorted_dc_list() that may not touch returns on error.
via c4c00d626cd s3: libsmb: Cleanup - ensure we initialize all stack variables to 'safe' values when calling get_kdc_list() that may not touch returns on error.
via f11dce99cc3 s3: libsmb: discover_dc_netbios(). Remember to free on error return.
from 0b742ec6a05 s4:smb_server: Use cli_credentials_init_server() for negprot
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 7a3c368d787b9a7e203d29de184dff5a4d241052
Author: Noel Power <noel.power at suse.com>
Date: Fri Sep 4 12:23:14 2020 +0100
s3: libsmb: Cleanup in get_dc_list()
Don't modify out params (unless successful result),
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Noel Power <npower at samba.org>
Autobuild-Date(master): Mon Sep 7 14:46:58 UTC 2020 on sn-devel-184
commit 170051d61eb17955d93db88ab729dc53a60604b1
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 12:17:07 2020 -0700
s3: libsmb: Now we only have namecache_store_sa(), rename it back to namecache_store().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 2989d736c4a95c73ccb6d828362425b30d580337
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 12:14:13 2020 -0700
s3: libsmb: Remove use of struct ip_service from the namecache code.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 9da8d26fe069189ca920b23ae541da9848515749
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 12:04:50 2020 -0700
s3: libsmb: Remove the last caller of namecache_store().
Convert to a struct samba_sockaddr array and use namecache_store_sa().
We can now remove the use of 'struct ip_list' from
the namecache code.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 3dad456d8cb4fa2b03396cce9c04c07d6c3c96c7
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:59:20 2020 -0700
s3: libsmb: Add internal conversion function ip_service_to_samba_sockaddr().
Compiles but commented out as not yet used. Next commit will
change that.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 4c81f39012c5a1858161ba8f9a61393eb2ab3c9f
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:52:57 2020 -0700
s3: winbindd: Use namecache_store_sa() inside dcip_check_name().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 1593231e0ef0d36fad7779f2f22b40a284706b9b
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:49:07 2020 -0700
s3: libsmb: Use namecache_store_sa() instead of namecache_store().
Removes one more struct ip_service usage.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 0e59fee2917f0fbd9c2c8fc04d0161af486beb64
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:45:17 2020 -0700
s3: libsmb: Add namecache_store_sa(). Doesn't store ports and takes a samba_sockaddr array.
Now uses ipstr_list_make_sa(). Now convert
the callers, remove namecache_store() and
then rename namecache_store_sa() back to namecache_store().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 7835e2cb480d3749a3ebbd4ab69188743df5277b
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:40:10 2020 -0700
s3: libsmb: Add internal ipstr_list_make_sa().
Duplicates ipstr_list_make() with samba_sockaddr, but doesn't store
ports. The duplication is temporary as the ipstr_list_make() function
will go away once namecache_store is converted to samba_sockaddr.
Compiles but commented out as not yet used.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 39ecff712f0aa6f8c86c3dcad12b068d7b8ccdb7
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:33:20 2020 -0700
s3: libsmb: Cleanup - resolve_name() get names from internal_resolve_names() which is guaranteed not to return zero addresses.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit c6cc05f5976913ab3c4f47396775769c7dc07902
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:23:08 2020 -0700
s3: libsmb: Remove commented out wrapper for internal_resolve_name().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit f36a0be9a7628e212c7bbad1889cfc50a32ba472
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:14:10 2020 -0700
s3: libsmb: Comment out wrapper function internal_resolve_name(). Rename _internal_resolve_name() -> internal_resolve_name().
We can now remove the wrapper.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 57349b65cc4323ae757a48b7a878bf9861728cd1
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 11:12:17 2020 -0700
s3: libsmb: Remove now unused dup_ip_service_array().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 68e12688f2b4986ad4b4e222ae4340d4e4e10a5b
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 19:05:28 2020 -0700
s3: libsmb: Finally change _internal_resolve_name() to return a talloc'ed ip_service array.
The wrapper internal_resolve_name() is now functionaly identical to _internal_resolve_name()
so we can remove it and rename _internal_resolve_name() back to internal_resolve_name().
dup_ip_service_array() is now no longer used, so comment it
out as it's a staic function.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 863ab1af625291d809d7e5e721145e46a18d863d
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 16:42:29 2020 -0700
s3: libsmb: Make _internal_resolve_name() return a size_t pointer for count.
Getting closer to being a idential to the wrapper function
internal_resolve_name() which we can then remove.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 31674946b777fbadaf892f4b2e988990053e0fd0
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 16:38:32 2020 -0700
s3: libsmb: _internal_resolve_name() code cleanup.
Only set *return_iplist just before success return.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 5e819231b3a7b518ef44c0477fcb01b152a7d842
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 16:34:57 2020 -0700
s3: libsmb: _internal_resolve_name() code cleanup.
Only set *return_count just before success return.
Preparing to move all counts to size_t.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit e68e0402cce7a370512dbbd1da5e4b3a7a828eb2
Author: Noel Power <noel.power at suse.com>
Date: Thu Sep 3 19:22:21 2020 -0700
s3/libsmb: Cleanup coding in convert_ss2service()
Don't update out params when unsuccessful
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6b0b726105e5a239c7c638d5e58f10c3f5f4678f
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:57:27 2020 -0700
s3: libsmb: Cleanup coding in convert_ss2service().
Will make it easier to return a talloc'ed array.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 9e4b5349f23464846da7b57fd36a5597b41e51c8
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:54:49 2020 -0700
s3: libsmb: Change convert_ss2service() and it's one caller to take and return unsigned counts.
Getting closer to making _internal_resolve_name() return a pointer to size_t
for a count.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit cb01b5e433dacec1217281e69041b322e37a18a3
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:45:35 2020 -0700
s3: libsmb: Make namecache_store() take an unsigned count.
Counts can never be negative.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit f39ff1367a191d71f54f6184e848537b7c309c10
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:43:46 2020 -0700
s3: libsmb: _internal_resolve_name(). Remove unused free(s).
*return_iplist is guaranteeded to be always NULL here.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 4d4bf8eedbefad4fa27a33e4b51b943e3d4acd08
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:42:15 2020 -0700
s3: libsmb: Convert namecache_fetch() and it's only caller to return a talloc'ed array of struct samba_sockaddr.
Eventually everything will be talloced arrays of samba_sockaddr.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 9ffb18856bf128de635af4d9dd1e1582295778c2
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:26:54 2020 -0700
s3: libsmb: Cleanup the code to do one address return given an IP address to _internal_resolve_name().
Will make easier to move to talloc later.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit aa20df217c4601ce8243f4d51eeed12c4d6cfb1d
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:16:48 2020 -0700
s3: libsmb: Change remove_duplicate_addrs2() to take and return size_t, not int.
Will make converting _internal_resolve_name() to return a size_t easier.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit e065fc8e2840ec7af07228641b89fb772f96ca9d
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:59:14 2020 -0700
s3: libsmb: Move talloc_stackframe() initialization to the front of _internal_resolve_name().
Ensure we free correctly on all exit paths.
This will allow us to move the internal calls to
talloc more easily.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit f5bb322e66d9d9475dda8ac6aef39b7912b6dbad
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:56:50 2020 -0700
s3: libsmb: Rename internal_resolve_name_talloc() -> internal_resolve_name().
No more non-talloc callers.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit a68d329b4079dadef0dd2ca27c3a5bb697a040db
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:53:35 2020 -0700
s3: libsmb: Remove internal_resolve_name() externally. All callers now use internal_resolve_name_talloc().
Make the wrapped internal_resolve_name() function static as _internal_resolve_name().
Now we can rename the callers back from internal_resolve_name_talloc() -> internal_resolve_name()
as all external callers are talloc-based.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit e5fd57d6e578c9b46088ebe548e4d24ee61fd2ac
Author: Noel Power <noel.power at suse.com>
Date: Thu Sep 3 19:11:08 2020 -0700
s3/libsmb: Cleanup, don't modify out params except on success
All callers don't use out params on failure.
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit a16d023c15aa00aa12a927f6a3c3b5876022c988
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:47:55 2020 -0700
s3: libsmb: Make discover_dc_netbios() use internal_resolve_name_talloc().
No more external users of internal_resolve_name().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit fed4b6341c96316251e5384fa96ad60ae7b28261
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:41:15 2020 -0700
s3: libsmb: Make get_dc_list() use internal_resolve_name_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 37eaee03e0e48ec5e7b5a4704cfa93e8ab95f78f
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:35:22 2020 -0700
s3: libsmb: Make get_pdc_ip() use internal_resolve_name_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 55b589e9b04a7db97c3d344c90da846f3b8509d1
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:32:15 2020 -0700
s3: libsmb: Make find_master_ip() use internal_resolve_name_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 12e346d9d8019a149c765ea92463919f91aca16a
Author: Noel Power <noel.power at suse.com>
Date: Thu Sep 3 19:07:08 2020 -0700
s3/libsmb: resolve_name_list don't update out params except for success
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 505272a893dc3bc3bf177b8a11cc2cd8be33bad0
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:30:02 2020 -0700
s3: libsmb: Make resolve_name_list() use internal_resolve_name_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit e18eb94f427de874c0b094189d8a3f0316b6430a
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:28:12 2020 -0700
s3: libsmb: namequery - Make resolve_name() use internal_resolve_name_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit c6fc75a73bd630f03842e9a39805d58c59422ce3
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:25:07 2020 -0700
s3: libsmb: namequery - Add internal_resolve_name_talloc().
This is a wrapper function for internal_resolve_name()
that converts the replies from malloc() -> talloc().
Now to move the callers, and I can move the talloc
code down one level again.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit c0ccdd7038ac85cdbad0a39bedcbee0a08c39896
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:31:53 2020 -0700
s3: libsmb: Make get_dc_list() internal to namequery.c return talloc'ed ip_service array.
Moving closer to the target of making internal_resolve_name()
use talloc.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 973ca8a5c01afef49a774cca49d4b0000b29f366
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:19:31 2020 -0700
s3: libsmb: Cleanup - use early return in get_dc_list().
No logic change. Makes later code changes clearer.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 46f7ab8f37046fadd86573b396b8c485255ab928
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:13:08 2020 -0700
s3: libsmb: Change get_dc_list() to return a size_t count parameter.
Remove paranoia checks and casts from callers, move internally.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit b9bc1e59bd84b35dcb98de73be2e13bb3254415b
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:07:18 2020 -0700
s3: libsmb: Change to an early return in get_dc_list().
No logic change. Will make later code changes clearer.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 3b3f92a2fa7bdf528009576cc8c1bf0905d9008a
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:05:06 2020 -0700
s3: libsmb: Cleanup - rename ctx -> frame for a talloc_stackframe to match modern coding standards.
We will be passing in a real TALLOC_CTX soon.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 23fb64f35a6a888538ebbfcff78ad8e30451f123
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:03:31 2020 -0700
s3: libsmb: Rename get_sorted_dc_list_talloc() -> get_sorted_dc_list()
There are no non-talloc callers.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit a0984e5064216edafe4b83011dc1042ca64d5194
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:01:18 2020 -0700
s3: libsmb: Remove get_sorted_dc_list().
No more callers.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit e8b7162415d0869eb302847cf4ce31e45438999f
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 12:00:00 2020 -0700
s3: winbindd: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 1d6c3c2dea223f22c3c3166de1a2d100376ee02a
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:56:00 2020 -0700
s3: net lookup: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit b4164093cfe8c2fd527e8c3e264025cc4e4790e3
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:53:07 2020 -0700
s3: libsmb: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit fbc2031800c1dafce5080ec527547345286f0c93
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:50:46 2020 -0700
s3: libads: Move callers of get_sorted_dc_list() -> get_sorted_dc_list_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit f305a140d103caea589f969d7cf087f53cd7e846
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:47:44 2020 -0700
s3: libsmb: Add get_sorted_dc_list_talloc().
Talloc version of get_sorted_dc_list_talloc().
Makes use of dup_ip_service_array().
Now to move the callers.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 6deb23c6187da770b03ebe313138506fb6cde0e7
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:43:32 2020 -0700
s3: libads: Rename get_kdc_list_talloc() -> get_kdc_list().
It's the only version now.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit b7182c4417675721a73fc543d88312cda60af988
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:39:54 2020 -0700
s3: libsmb: Remove now unused get_kdc_list() (non-talloc version).
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 11226af33e1570bc4a54a951981bba29c8a912a4
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:38:31 2020 -0700
s3: utils: net_lookup. Convert to use get_kdc_list_talloc().
No more users of get_kdc_list().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 5307b0e319a08220c02f6eacfdac45d4af2bb19a
Author: Noel Power <noel.power at suse.com>
Date: Fri Sep 4 12:02:58 2020 +0100
s3/libads: Cleanup() get_kdc_ip_string, free kdc_str on error
kdc_str will be cleaned up when the passed ctx is freed,
it just seems odd that we now return NULL without cleaning up allocated mem.
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 9d62c3e98197d0c73c26a10545c39026b38f0fb7
Author: Noel Power <noel.power at suse.com>
Date: Fri Sep 4 10:38:27 2020 +0100
s3/libads: Only set result to kdc_str on success
Prior to this change result was set even when any or all errors
occured in the function.
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 8e1b6602f51f9599a46ad62a9796ed7a2bfcdfc6
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:30:36 2020 -0700
s3: libads: Make get_kdc_ip_string() use get_kdc_list_talloc().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit e8a491691dad5c30228e90f5702115befbe3da00
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 11:26:33 2020 -0700
s3: libsmb: Add get_kdc_list_talloc().
Talloc version of get_kdc_list(). Makes use of dup_ip_service_array().
Now to move the callers.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 02016acb2d8b7b5432406942e49d229fe1d024b5
Author: Jeremy Allison <jra at samba.org>
Date: Tue Aug 25 10:22:10 2020 -0700
s3: libsmb: Add utility funtion dup_ip_service_array().
Preparing to return ip_service arrays as talloc, not
malloc. Commented out as not yet used.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit 6bee431be3ce005b5ae547ffb50e4bdfb5aca902
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 15:20:22 2020 -0700
s3: libsmb: Cleanup - Use helper variable for return from namecache_fetch() in internal_resolve_name().
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit a4073ae55c37e85891255073b4c162eb23c382f6
Author: Noel Power <npower at samba.org>
Date: Wed Sep 2 10:52:08 2020 -0700
s3: libsmb: Cleanup in resolve_name_list().
Don't modify out params (unless successful result).
Signed-off-by: Noel Power <npower at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6c28d7151160e64a3f449e4dc34ade4fcb3e1298
Author: Jeremy Allison <jra at samba.org>
Date: Thu Aug 27 09:49:05 2020 -0700
s3: libsmb: Cleanup - correctly error on sockaddr_storage_to_samba_sockaddr() fail.
Instead of jumping out and leaking the memory onto ctx,
skip bad conversions and error out if there are no addresses
to return (and cleanup the memory there).
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit b95eea6b292dd0c11feb7921af33329711918655
Author: Noel Power <noel.power at suse.com>
Date: Thu Sep 3 19:03:52 2020 -0700
s3: libsmb: Cleanup - ensure we initialize all stack variables to 'safe' values when calling resolve_name_list()
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 13acac25cb48ec39a0b35abb272de727f19bb236
Author: Jeremy Allison <jra at samba.org>
Date: Wed Sep 2 10:05:48 2020 -0700
s3: libsmb: Cleanup - ensure we initialize all stack variables to 'safe' values when calling get_sorted_dc_list() that may not touch returns on error.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit c4c00d626cd9ebe118e6f9c16ef1b0575d29f39b
Author: Jeremy Allison <jra at samba.org>
Date: Wed Sep 2 09:58:30 2020 -0700
s3: libsmb: Cleanup - ensure we initialize all stack variables to 'safe' values when calling get_kdc_list() that may not touch returns on error.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
commit f11dce99cc3a3e0b13fcb0d41d2db5cce07240db
Author: Jeremy Allison <jra at samba.org>
Date: Wed Aug 26 13:45:43 2020 -0700
s3: libsmb: discover_dc_netbios(). Remember to free on error return.
Signed-off-by: Jeremy Allison <jra at samba.org>
Reviewed-by: Noel Power <npower at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/include/proto.h | 11 +-
source3/libads/kerberos.c | 61 ++++-
source3/libads/ldap.c | 29 +-
source3/libsmb/cliconnect.c | 5 +-
source3/libsmb/dsgetdcname.c | 50 ++--
source3/libsmb/namecache.c | 127 +++++----
source3/libsmb/namequery.c | 599 +++++++++++++++++++++++++++--------------
source3/libsmb/namequery.h | 26 +-
source3/libsmb/namequery_dc.c | 16 +-
source3/torture/torture.c | 6 +-
source3/utils/net_lookup.c | 32 ++-
source3/winbindd/winbindd_cm.c | 66 +++--
12 files changed, 674 insertions(+), 354 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 506e2e80fa1..3641849fbe1 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -678,12 +678,13 @@ NTSTATUS dos_to_ntstatus(uint8_t eclass, uint32_t ecode);
bool namecache_store(const char *name,
int name_type,
- int num_names,
- struct ip_service *ip_list);
-bool namecache_fetch(const char *name,
+ size_t num_names,
+ struct samba_sockaddr *sa_list);
+bool namecache_fetch(TALLOC_CTX *ctx,
+ const char *name,
int name_type,
- struct ip_service **ip_list,
- int *num_names);
+ struct samba_sockaddr **sa_list,
+ size_t *num_names);
bool namecache_delete(const char *name, int name_type);
void namecache_flush(void);
bool namecache_status_store(const char *keyname, int keyname_type,
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
index 1db285cd29a..d02d4d881e7 100644
--- a/source3/libads/kerberos.c
+++ b/source3/libads/kerberos.c
@@ -424,10 +424,10 @@ static char *get_kdc_ip_string(char *mem_ctx,
struct ip_service *ip_srv_site = NULL;
struct ip_service *ip_srv_nonsite = NULL;
struct samba_sockaddr sa = {0};
- int count_site = 0;
- int count_nonsite;
+ size_t count_site = 0;
+ size_t count_nonsite;
size_t num_dcs;
- struct sockaddr_storage *dc_addrs;
+ struct sockaddr_storage *dc_addrs = NULL;
struct tsocket_address **dc_addrs2 = NULL;
const struct tsocket_address * const *dc_addrs3 = NULL;
char *result = NULL;
@@ -444,6 +444,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
ok = sockaddr_storage_to_samba_sockaddr(&sa, pss);
if (!ok) {
+ TALLOC_FREE(kdc_str);
goto out;
}
@@ -453,19 +454,49 @@ static char *get_kdc_ip_string(char *mem_ctx,
*/
if (sitename) {
- get_kdc_list(realm, sitename, &ip_srv_site, &count_site);
- DEBUG(10, ("got %d addresses from site %s search\n", count_site,
- sitename));
+ status = get_kdc_list(talloc_tos(),
+ realm,
+ sitename,
+ &ip_srv_site,
+ &count_site);
+ if (!NT_STATUS_IS_OK(status)) {
+ DBG_ERR("get_kdc_list fail %s\n",
+ nt_errstr(status));
+ TALLOC_FREE(kdc_str);
+ goto out;
+ }
+ DBG_DEBUG("got %zu addresses from site %s search\n",
+ count_site,
+ sitename);
}
/* Get all KDC's. */
- get_kdc_list(realm, NULL, &ip_srv_nonsite, &count_nonsite);
- DEBUG(10, ("got %d addresses from site-less search\n", count_nonsite));
+ status = get_kdc_list(talloc_tos(),
+ realm,
+ NULL,
+ &ip_srv_nonsite,
+ &count_nonsite);
+ if (!NT_STATUS_IS_OK(status)) {
+ DBG_ERR("get_kdc_list (site-less) fail %s\n",
+ nt_errstr(status));
+ TALLOC_FREE(kdc_str);
+ goto out;
+ }
+ DBG_DEBUG("got %zu addresses from site-less search\n", count_nonsite);
+
+ if (count_site + count_nonsite < count_site) {
+ /* Wrap check. */
+ DBG_ERR("get_kdc_list_talloc (site-less) fail wrap error\n");
+ TALLOC_FREE(kdc_str);
+ goto out;
+ }
+
dc_addrs = talloc_array(talloc_tos(), struct sockaddr_storage,
count_site + count_nonsite);
if (dc_addrs == NULL) {
+ TALLOC_FREE(kdc_str);
goto out;
}
@@ -477,6 +508,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
ok = sockaddr_storage_to_samba_sockaddr(&ip_sa,
&ip_srv_site[i].ss);
if (!ok) {
+ TALLOC_FREE(kdc_str);
goto out;
}
@@ -492,6 +524,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
ok = sockaddr_storage_to_samba_sockaddr(&ip_sa,
&ip_srv_nonsite[i].ss);
if (!ok) {
+ TALLOC_FREE(kdc_str);
goto out;
}
@@ -507,9 +540,11 @@ static char *get_kdc_ip_string(char *mem_ctx,
DBG_DEBUG("%zu additional KDCs to test\n", num_dcs);
if (num_dcs == 0) {
+ TALLOC_FREE(kdc_str);
goto out;
}
if (dc_addrs2 == NULL) {
+ TALLOC_FREE(kdc_str);
goto out;
}
@@ -526,6 +561,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
status = map_nt_error_from_unix(errno);
DEBUG(2,("Failed to create tsocket_address for %s - %s\n",
addr, nt_errstr(status)));
+ TALLOC_FREE(kdc_str);
goto out;
}
}
@@ -543,6 +579,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10,("get_kdc_ip_string: cldap_multi_netlogon failed: "
"%s\n", nt_errstr(status)));
+ TALLOC_FREE(kdc_str);
goto out;
}
@@ -557,19 +594,19 @@ static char *get_kdc_ip_string(char *mem_ctx,
new_kdc_str = talloc_asprintf(mem_ctx, "%s\t\tkdc = %s\n",
kdc_str,
print_canonical_sockaddr_with_port(mem_ctx, &dc_addrs[i]));
+ TALLOC_FREE(kdc_str);
if (new_kdc_str == NULL) {
goto out;
}
- TALLOC_FREE(kdc_str);
kdc_str = new_kdc_str;
}
+ result = kdc_str;
out:
DEBUG(10, ("get_kdc_ip_string: Returning %s\n", kdc_str));
- result = kdc_str;
- SAFE_FREE(ip_srv_site);
- SAFE_FREE(ip_srv_nonsite);
+ TALLOC_FREE(ip_srv_site);
+ TALLOC_FREE(ip_srv_nonsite);
TALLOC_FREE(frame);
return result;
}
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index 2fc9b2009b6..8fbe34a20b7 100755
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -383,15 +383,20 @@ static NTSTATUS cldap_ping_list(ADS_STRUCT *ads,const char *domain,
static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
const char *domain, const char *realm)
{
- int count, i;
- struct ip_service *ip_list;
+ size_t i;
+ size_t count = 0;
+ struct ip_service *ip_list = NULL;
NTSTATUS status;
DEBUG(6, ("resolve_and_ping_netbios: (cldap) looking for domain '%s'\n",
domain));
- status = get_sorted_dc_list(domain, NULL, &ip_list, &count,
- false);
+ status = get_sorted_dc_list(talloc_tos(),
+ domain,
+ NULL,
+ &ip_list,
+ &count,
+ false);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
@@ -417,7 +422,7 @@ static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
status = cldap_ping_list(ads, domain, ip_list, count);
- SAFE_FREE(ip_list);
+ TALLOC_FREE(ip_list);
return status;
}
@@ -430,23 +435,27 @@ static NTSTATUS resolve_and_ping_netbios(ADS_STRUCT *ads,
static NTSTATUS resolve_and_ping_dns(ADS_STRUCT *ads, const char *sitename,
const char *realm)
{
- int count;
+ size_t count = 0;
struct ip_service *ip_list = NULL;
NTSTATUS status;
DEBUG(6, ("resolve_and_ping_dns: (cldap) looking for realm '%s'\n",
realm));
- status = get_sorted_dc_list(realm, sitename, &ip_list, &count,
- true);
+ status = get_sorted_dc_list(talloc_tos(),
+ realm,
+ sitename,
+ &ip_list,
+ &count,
+ true);
if (!NT_STATUS_IS_OK(status)) {
- SAFE_FREE(ip_list);
+ TALLOC_FREE(ip_list);
return status;
}
status = cldap_ping_list(ads, realm, ip_list, count);
- SAFE_FREE(ip_list);
+ TALLOC_FREE(ip_list);
return status;
}
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index abfd18bfaf1..bdc709f3e01 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -2535,8 +2535,9 @@ static struct tevent_req *cli_connect_sock_send(
{
struct tevent_req *req, *subreq;
struct cli_connect_sock_state *state;
- struct sockaddr_storage *addrs;
- unsigned i, num_addrs;
+ struct sockaddr_storage *addrs = NULL;
+ unsigned i;
+ unsigned num_addrs = 0;
NTSTATUS status;
req = tevent_req_create(mem_ctx, &state,
diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c
index 128004a0f6a..01e7a42cd77 100644
--- a/source3/libsmb/dsgetdcname.c
+++ b/source3/libsmb/dsgetdcname.c
@@ -443,22 +443,23 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
{
NTSTATUS status;
enum nbt_name_type name_type = NBT_NAME_LOGON;
- struct ip_service *iplist;
- int i;
+ struct ip_service *iplist = NULL;
+ size_t i;
struct ip_service_name *dclist = NULL;
- int count;
+ size_t count;
static const char *resolve_order[] = { "lmhosts", "wins", "bcast", NULL };
- *returned_dclist = NULL;
- *returned_count = 0;
-
if (flags & DS_PDC_REQUIRED) {
name_type = NBT_NAME_PDC;
}
- status = internal_resolve_name(domain_name, name_type, NULL,
- &iplist, &count,
- resolve_order);
+ status = internal_resolve_name(mem_ctx,
+ domain_name,
+ name_type,
+ NULL,
+ &iplist,
+ &count,
+ resolve_order);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10,("discover_dc_netbios: failed to find DC\n"));
return status;
@@ -466,7 +467,7 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
dclist = talloc_zero_array(mem_ctx, struct ip_service_name, count);
if (!dclist) {
- SAFE_FREE(iplist);
+ TALLOC_FREE(iplist);
return NT_STATUS_NO_MEMORY;
}
@@ -480,20 +481,29 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
ok = sockaddr_storage_to_samba_sockaddr(&r->sa, &iplist[i].ss);
if (!ok) {
- SAFE_FREE(iplist);
+ TALLOC_FREE(iplist);
+ TALLOC_FREE(dclist);
return NT_STATUS_INVALID_PARAMETER;
}
r->hostname = talloc_strdup(mem_ctx, addr);
if (!r->hostname) {
- SAFE_FREE(iplist);
+ TALLOC_FREE(iplist);
+ TALLOC_FREE(dclist);
return NT_STATUS_NO_MEMORY;
}
}
+ TALLOC_FREE(iplist);
+
+ /* Paranoia in casting size_t -> int. */
+ if ((int)count < 0) {
+ TALLOC_FREE(dclist);
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
*returned_dclist = dclist;
*returned_count = count;
- SAFE_FREE(iplist);
return NT_STATUS_OK;
}
@@ -1054,7 +1064,6 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
int num_dcs,
struct netr_DsRGetDCNameInfo **info)
{
- struct ip_service ip_list;
enum nbt_name_type name_type = NBT_NAME_LOGON;
NTSTATUS status;
int i;
@@ -1090,15 +1099,15 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
generate_random_buffer((uint8_t *)&val, 2);
- ip_list.ss = dclist[i].sa.u.ss;
- ip_list.port = 0;
-
status = nbt_getdc(msg_ctx, 10, &dclist[i].sa.u.ss, domain_name,
NULL, my_acct_name, ACB_WSTRUST, nt_version,
mem_ctx, &nt_version, &dc_name, &r);
if (NT_STATUS_IS_OK(status)) {
store_cache = true;
- namecache_store(dc_name, NBT_NAME_SERVER, 1, &ip_list);
+ namecache_store(dc_name,
+ NBT_NAME_SERVER,
+ 1,
+ &dclist[i].sa);
goto make_reply;
}
@@ -1127,7 +1136,10 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
map_netlogon_samlogon_response(r);
- namecache_store(tmp_dc_name, NBT_NAME_SERVER, 1, &ip_list);
+ namecache_store(tmp_dc_name,
+ NBT_NAME_SERVER,
+ 1,
+ &dclist[i].sa);
goto make_reply;
}
diff --git a/source3/libsmb/namecache.c b/source3/libsmb/namecache.c
index fb4a4aac8c8..66147bab7f2 100644
--- a/source3/libsmb/namecache.c
+++ b/source3/libsmb/namecache.c
@@ -23,12 +23,13 @@
#include "includes.h"
#include "lib/gencache.h"
+#include "libsmb/namequery.h"
#define IPSTR_LIST_SEP ","
#define IPSTR_LIST_CHAR ','
/**
- * Allocate and initialise an ipstr list using ip adresses
+ * Allocate and initialise an ipstr list using samba_sockaddr ip adresses
* passed as arguments.
*
* @param ctx TALLOC_CTX to use
@@ -37,15 +38,15 @@
* @return pointer to allocated ip string
**/
-static char *ipstr_list_make(TALLOC_CTX *ctx,
- const struct ip_service *ip_list,
- int ip_count)
+static char *ipstr_list_make_sa(TALLOC_CTX *ctx,
+ const struct samba_sockaddr *sa_list,
+ size_t ip_count)
{
char *ipstr_list = NULL;
- int i;
+ size_t i;
/* arguments checking */
- if (ip_list == NULL) {
+ if (sa_list == NULL) {
return NULL;
}
@@ -55,21 +56,21 @@ static char *ipstr_list_make(TALLOC_CTX *ctx,
char *new_str = NULL;
print_sockaddr(addr_buf,
- sizeof(addr_buf),
- &ip_list[i].ss);
+ sizeof(addr_buf),
+ &sa_list[i].u.ss);
- if (ip_list[i].ss.ss_family == AF_INET) {
- /* IPv4 */
+ if (sa_list[i].u.ss.ss_family == AF_INET) {
+ /* IPv4 - port no longer used, store 0 */
new_str = talloc_asprintf(ctx,
- "%s:%d",
- addr_buf,
- ip_list[i].port);
+ "%s:%d",
+ addr_buf,
+ 0);
} else {
- /* IPv6 */
+ /* IPv6 - port no longer used, store 0 */
new_str = talloc_asprintf(ctx,
- "[%s]:%d",
- addr_buf,
- ip_list[i].port);
+ "[%s]:%d",
+ addr_buf,
+ 0);
}
if (new_str == NULL) {
TALLOC_FREE(ipstr_list);
@@ -89,10 +90,10 @@ static char *ipstr_list_make(TALLOC_CTX *ctx,
* live with it.
*/
char *tmp = talloc_asprintf(ctx,
- "%s%s%s",
- ipstr_list,
- IPSTR_LIST_SEP,
- new_str);
+ "%s%s%s",
+ ipstr_list,
+ IPSTR_LIST_SEP,
+ new_str);
if (tmp == NULL) {
TALLOC_FREE(new_str);
TALLOC_FREE(ipstr_list);
@@ -114,35 +115,47 @@ static char *ipstr_list_make(TALLOC_CTX *ctx,
*
* @param ipstr ip string list to be parsed
* @param ip_list pointer to array of ip addresses which is
- * allocated by this function and must be freed by caller
+ * talloced by this function and must be freed by caller
* @return number of successfully parsed addresses
**/
-static int ipstr_list_parse(const char *ipstr_list, struct ip_service **ip_list)
+static int ipstr_list_parse(TALLOC_CTX *ctx,
+ const char *ipstr_list,
+ struct samba_sockaddr **sa_list_out)
{
- TALLOC_CTX *frame;
+ TALLOC_CTX *frame = talloc_stackframe();
+ struct samba_sockaddr *sa_list = NULL;
char *token_str = NULL;
size_t i, count;
+ size_t array_size;
- if (!ipstr_list || !ip_list)
- return 0;
+ *sa_list_out = NULL;
- count = count_chars(ipstr_list, IPSTR_LIST_CHAR) + 1;
- if ( (*ip_list = SMB_MALLOC_ARRAY(struct ip_service, count)) == NULL ) {
- DBG_ERR("malloc failed for %lu entries\n",
- (unsigned long)count);
+ array_size = count_chars(ipstr_list, IPSTR_LIST_CHAR) + 1;
+ sa_list = talloc_zero_array(frame,
+ struct samba_sockaddr,
+ array_size);
+ if (sa_list == NULL) {
--
Samba Shared Repository
More information about the samba-cvs
mailing list