diff options
Diffstat (limited to 'source/libsmb/libsmb_cache.c')
-rw-r--r-- | source/libsmb/libsmb_cache.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source/libsmb/libsmb_cache.c b/source/libsmb/libsmb_cache.c index 5d948ea5e25..fdde7acaf86 100644 --- a/source/libsmb/libsmb_cache.c +++ b/source/libsmb/libsmb_cache.c @@ -26,6 +26,9 @@ #include "include/libsmbclient.h" #include "../include/libsmb_internal.h" + +int smbc_default_cache_functions(SMBCCTX * context); + /* * Structure we use if internal caching mechanism is used * nothing fancy here. @@ -150,9 +153,10 @@ static SMBCSRV * smbc_get_cached_server(SMBCCTX * context, const char * server, * doesn't match the requested share, so * disconnect from the current share. */ - if (! cli_tdis(&srv->server->cli)) { + if (! cli_tdis(srv->server->cli)) { /* Sigh. Couldn't disconnect. */ - cli_shutdown(&srv->server->cli); + cli_shutdown(srv->server->cli); + srv->server->cli = NULL; context->callbacks.remove_cached_srv_fn(context, srv->server); continue; } @@ -166,7 +170,8 @@ static SMBCSRV * smbc_get_cached_server(SMBCCTX * context, const char * server, srv->share_name = SMB_STRDUP(share); if (!srv->share_name) { /* Out of memory. */ - cli_shutdown(&srv->server->cli); + cli_shutdown(srv->server->cli); + srv->server->cli = NULL; context->callbacks.remove_cached_srv_fn(context, srv->server); continue; } |