summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-06-18 00:02:36 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:18:23 -0500
commitee57c76a687c72ac7e8dc7c135ab53baa7a42776 (patch)
tree7374b0dd40265004c6dbf35131a8fa12bcb8364f
parent82dfe0b29b4d090a20e0bc07a22ee47a5f38330a (diff)
downloadsamba-ee57c76a687c72ac7e8dc7c135ab53baa7a42776.tar.gz
samba-ee57c76a687c72ac7e8dc7c135ab53baa7a42776.tar.bz2
samba-ee57c76a687c72ac7e8dc7c135ab53baa7a42776.zip
r7704: - fixed open_nbt_connection() to return NULL when the connection failed
- got rid of smbcli_shutdown() and use talloc_free() instead. (This used to be commit 1011b1bf51d420d6702ef448c894ea8ebeafa284)
-rw-r--r--source4/auth/auth_server.c16
-rw-r--r--source4/client/client.c10
-rw-r--r--source4/client/smbmount.c12
-rw-r--r--source4/client/smbspool.c2
-rw-r--r--source4/libcli/cliconnect.c8
-rw-r--r--source4/torture/gentest.c2
-rw-r--r--source4/torture/locktest.c2
-rw-r--r--source4/torture/locktest2.c2
-rw-r--r--source4/torture/torture.c17
9 files changed, 33 insertions, 38 deletions
diff --git a/source4/auth/auth_server.c b/source4/auth/auth_server.c
index 8e1c712f5e..fc87cd91f6 100644
--- a/source4/auth/auth_server.c
+++ b/source4/auth/auth_server.c
@@ -78,7 +78,7 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
if (!connected_ok) {
release_server_mutex();
DEBUG(0,("password server not available\n"));
- smbcli_shutdown(cli);
+ talloc_free(cli);
return NULL;
}
@@ -86,7 +86,7 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
desthost, &dest_ip)) {
release_server_mutex();
DEBUG(1,("password server fails session request\n"));
- smbcli_shutdown(cli);
+ talloc_free(cli);
return NULL;
}
@@ -99,7 +99,7 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
if (!smbcli_negprot(cli)) {
DEBUG(1,("%s rejected the negprot\n",desthost));
release_server_mutex();
- smbcli_shutdown(cli);
+ talloc_free(cli);
return NULL;
}
@@ -107,7 +107,7 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
!(cli->sec_mode & NEGOTIATE_SECURITY_USER_LEVEL)) {
DEBUG(1,("%s isn't in user level security mode\n",desthost));
release_server_mutex();
- smbcli_shutdown(cli);
+ talloc_free(cli);
return NULL;
}
@@ -121,7 +121,7 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
DEBUG(0,("%s rejected the initial session setup (%s)\n",
desthost, smbcli_errstr(cli)));
release_server_mutex();
- smbcli_shutdown(cli);
+ talloc_free(cli);
return NULL;
}
@@ -140,7 +140,7 @@ static void free_server_private_data(void **private_data_pointer)
{
struct smbcli_state **cli = (struct smbcli_state **)private_data_pointer;
if (*cli && (*cli)->initialised) {
- smbcli_shutdown(*cli);
+ talloc_free(*cli);
}
}
@@ -170,7 +170,7 @@ static DATA_BLOB auth_get_challenge_server(const struct auth_context *auth_conte
} else if (cli->secblob.length < 8) {
/* We can't do much if we don't get a full challenge */
DEBUG(2,("make_auth_info_server: Didn't receive a full challenge from server\n"));
- smbcli_shutdown(cli);
+ talloc_free(cli);
return data_blob(NULL, 0);
}
@@ -361,7 +361,7 @@ use this machine as the password server.\n"));
}
if (locally_made_cli) {
- smbcli_shutdown(cli);
+ talloc_free(cli);
}
return(nt_status);
diff --git a/source4/client/client.c b/source4/client/client.c
index a24fd7bfd3..5e5d7e5dcd 100644
--- a/source4/client/client.c
+++ b/source4/client/client.c
@@ -1069,7 +1069,7 @@ static BOOL do_altname(char *name)
****************************************************************************/
static int cmd_quit(const char **cmd_ptr)
{
- smbcli_shutdown(cli);
+ talloc_free(cli);
exit(0);
/* NOTREACHED */
return 0;
@@ -1263,7 +1263,7 @@ static int do_put(char *rname, char *lname, BOOL reput)
}
if (f == x_stdin) {
- smbcli_shutdown(cli);
+ talloc_free(cli);
exit(0);
}
@@ -3251,7 +3251,7 @@ static int process(char *base_directory)
process_stdin();
}
- smbcli_shutdown(cli);
+ talloc_free(cli);
return rc;
}
@@ -3287,12 +3287,12 @@ static int do_message_op(void)
if (!smbcli_transport_establish(cli, &calling, &called)) {
d_printf("session request failed\n");
- smbcli_shutdown(cli);
+ talloc_free(cli);
return 1;
}
send_message();
- smbcli_shutdown(cli);
+ talloc_free(cli);
return 0;
}
diff --git a/source4/client/smbmount.c b/source4/client/smbmount.c
index 45c5f703ce..5c541a7e4f 100644
--- a/source4/client/smbmount.c
+++ b/source4/client/smbmount.c
@@ -151,7 +151,7 @@ static struct smbcli_state *do_connection(char *the_service)
!smbcli_connect(c, server_n, &ip)) {
DEBUG(0,("%d: Connection to %s failed\n", sys_getpid(), server_n));
if (c) {
- smbcli_shutdown(c);
+ talloc_free(c);
}
return NULL;
}
@@ -170,7 +170,7 @@ static struct smbcli_state *do_connection(char *the_service)
char *p;
DEBUG(0,("%d: session request to %s failed (%s)\n",
sys_getpid(), called.name, smbcli_errstr(c)));
- smbcli_shutdown(c);
+ talloc_free(c);
if ((p=strchr_m(called.name, '.'))) {
*p = 0;
goto again;
@@ -186,7 +186,7 @@ static struct smbcli_state *do_connection(char *the_service)
if (!smbcli_negprot(c)) {
DEBUG(0,("%d: protocol negotiation failed\n", sys_getpid()));
- smbcli_shutdown(c);
+ talloc_free(c);
return NULL;
}
@@ -220,7 +220,7 @@ static struct smbcli_state *do_connection(char *the_service)
!smbcli_session_setup(c, "", "", 0, "", 0, workgroup)) {
DEBUG(0,("%d: session setup failed: %s\n",
sys_getpid(), smbcli_errstr(c)));
- smbcli_shutdown(c);
+ talloc_free(c);
return NULL;
}
DEBUG(0,("Anonymous login successful\n"));
@@ -231,7 +231,7 @@ static struct smbcli_state *do_connection(char *the_service)
if (!smbcli_tconX(c, share, "?????", password, strlen(password)+1)) {
DEBUG(0,("%d: tree connect failed: %s\n",
sys_getpid(), smbcli_errstr(c)));
- smbcli_shutdown(c);
+ talloc_free(c);
return NULL;
}
@@ -379,7 +379,7 @@ static void send_fs_socket(char *the_service, char *mount_point, struct smbcli_s
If we don't do this we will "leak" sockets and memory on
each reconnection we have to make. */
- smbcli_shutdown(c);
+ talloc_free(c);
c = NULL;
if (!closed) {
diff --git a/source4/client/smbspool.c b/source4/client/smbspool.c
index 2e7afc5ec4..c975e04771 100644
--- a/source4/client/smbspool.c
+++ b/source4/client/smbspool.c
@@ -233,7 +233,7 @@ static int smb_print(struct smbcli_state *, char *, FILE *);
if ((status = smb_print(cli, argv[3] /* title */, fp)) != 0)
break;
- smbcli_shutdown(cli);
+ talloc_free(cli);
/*
* Return the queue status...
diff --git a/source4/libcli/cliconnect.c b/source4/libcli/cliconnect.c
index 0009151429..489aea82dd 100644
--- a/source4/libcli/cliconnect.c
+++ b/source4/libcli/cliconnect.c
@@ -183,14 +183,6 @@ struct smbcli_state *smbcli_state_init(TALLOC_CTX *mem_ctx)
return cli;
}
-/****************************************************************************
- Shutdown a client structure.
-****************************************************************************/
-void smbcli_shutdown(struct smbcli_state *cli)
-{
- talloc_free(cli);
-}
-
/*
parse a //server/share type UNC name
*/
diff --git a/source4/torture/gentest.c b/source4/torture/gentest.c
index a9d162b540..d6f5046820 100644
--- a/source4/torture/gentest.c
+++ b/source4/torture/gentest.c
@@ -164,7 +164,7 @@ static BOOL connect_servers(void)
for (j=0;j<NINSTANCES;j++) {
if (servers[i].cli[j]) {
smbcli_tdis(servers[i].cli[j]);
- smbcli_shutdown(servers[i].cli[j]);
+ talloc_free(servers[i].cli[j]);
servers[i].cli[j] = NULL;
}
}
diff --git a/source4/torture/locktest.c b/source4/torture/locktest.c
index 4b4e9d3bd3..62eabeb688 100644
--- a/source4/torture/locktest.c
+++ b/source4/torture/locktest.c
@@ -150,7 +150,7 @@ static void reconnect(struct smbcli_state *cli[NSERVERS][NCONNECTIONS], int fnum
fnum[server][conn][f] = -1;
}
}
- smbcli_shutdown(cli[server][conn]);
+ talloc_free(cli[server][conn]);
}
cli[server][conn] = connect_one(share[server], server);
if (!cli[server][conn]) {
diff --git a/source4/torture/locktest2.c b/source4/torture/locktest2.c
index 4bd99cd5d0..e5cd8a60af 100644
--- a/source4/torture/locktest2.c
+++ b/source4/torture/locktest2.c
@@ -196,7 +196,7 @@ static void reconnect(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
smbcli_close(cli[server][conn], fnum[server][fstype][conn][f]);
}
smbcli_ulogoff(cli[server][conn]);
- smbcli_shutdown(cli[server][conn]);
+ talloc_free(cli[server][conn]);
}
cli[server][conn] = connect_one(share[server]);
if (!cli[server][conn]) {
diff --git a/source4/torture/torture.c b/source4/torture/torture.c
index 5036822aa4..1ca4046a49 100644
--- a/source4/torture/torture.c
+++ b/source4/torture/torture.c
@@ -56,21 +56,24 @@ static struct smbcli_state *open_nbt_connection(void)
cli = smbcli_state_init(NULL);
if (!cli) {
printf("Failed initialize smbcli_struct to connect with %s\n", host);
- return NULL;
+ goto failed;
}
if (!smbcli_socket_connect(cli, host)) {
printf("Failed to connect with %s\n", host);
- return cli;
+ goto failed;
}
if (!smbcli_transport_establish(cli, &calling, &called)) {
printf("%s rejected the session\n",host);
- smbcli_shutdown(cli);
- return NULL;
+ goto failed;
}
return cli;
+
+failed:
+ talloc_free(cli);
+ return NULL;
}
BOOL torture_open_connection_share(struct smbcli_state **c,
@@ -112,7 +115,7 @@ BOOL torture_close_connection(struct smbcli_state *c)
printf("tdis failed (%s)\n", smbcli_errstr(c->tree));
ret = False;
}
- smbcli_shutdown(c);
+ talloc_free(c);
return ret;
}
@@ -489,7 +492,7 @@ static BOOL run_tcon_test(void)
if (NT_STATUS_IS_ERR(smbcli_tconX(cli, share, "?????", password))) {
printf("%s refused 2nd tree connect (%s)\n", host,
smbcli_errstr(cli->tree));
- smbcli_shutdown(cli);
+ talloc_free(cli);
return False;
}
@@ -649,7 +652,7 @@ static BOOL run_tcon_devtype_test(void)
if (!tcon_devtest(cli1, share, "FOOBA", NT_STATUS_BAD_DEVICE_TYPE))
ret = False;
- smbcli_shutdown(cli1);
+ talloc_free(cli1);
if (ret)
printf("Passed tcondevtest\n");