r13761: r13221@cabra: derrell | 2006-02-28 20:40:56 -0500
authorDerrell Lipman <derrell@samba.org>
Wed, 1 Mar 2006 01:41:52 +0000 (01:41 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:10:52 +0000 (11:10 -0500)
 When only allowing one connection per server, the cache needs to track which
 share is currently connected, or we never know whether a tdis()/tcon() for the
 new share is required.
(This used to be commit ad0a725ef5f68db442b3b217c5a852086eff9297)

source3/libsmb/libsmb_cache.c

index e6033faf50f8b3af5af76e1dc439b6c31aa09616..14577146fda66140fbffaaf37b8f369747a94498 100644 (file)
@@ -156,6 +156,17 @@ static SMBCSRV * smbc_get_cached_server(SMBCCTX * context, const char * server,
                                         continue;
                                 }
 
+
+                                SAFE_FREE(srv->share_name);
+                                srv->share_name = SMB_STRDUP(share);
+                                if (!srv->share_name) {
+                                        /* Out of memory. */
+                                        cli_shutdown(&srv->server->cli);
+                                        context->callbacks.remove_cached_srv_fn(context, srv->server);
+                                        continue;
+                                }
+
+
                                 return srv->server;
                         }
                 }