summaryrefslogtreecommitdiff
path: root/source3/client/smbspool.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/client/smbspool.c')
-rw-r--r--source3/client/smbspool.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c
index 10e89c7bf21..49241c73bf1 100644
--- a/source3/client/smbspool.c
+++ b/source3/client/smbspool.c
@@ -58,7 +58,7 @@
* Local functions...
*/
-static int get_exit_code(struct cli_state * cli, NTSTATUS nt_status);
+static int get_exit_code(struct cli_state * cli, NTSTATUS nt_status, bool use_kerberos);
static void list_devices(void);
static struct cli_state *smb_complete_connection(const char *, const char *,
int, const char *, const char *, const char *, const char *, int, bool *need_auth);
@@ -328,7 +328,8 @@ done:
static int
get_exit_code(struct cli_state * cli,
- NTSTATUS nt_status)
+ NTSTATUS nt_status,
+ bool use_kerberos)
{
int i;
@@ -355,7 +356,7 @@ get_exit_code(struct cli_state * cli,
}
if (cli) {
- if (cli->use_kerberos && cli->got_kerberos_mechanism)
+ if (use_kerberos)
fputs("ATTR: auth-info-required=negotiate\n", stderr);
else
fputs("ATTR: auth-info-required=username,password\n", stderr);
@@ -449,7 +450,7 @@ smb_complete_connection(const char *myname,
if (!NT_STATUS_IS_OK(nt_status)) {
fprintf(stderr, "ERROR: Session setup failed: %s\n", nt_errstr(nt_status));
- if (get_exit_code(cli, nt_status) == 2) {
+ if (get_exit_code(cli, nt_status, use_kerberos) == 2) {
*need_auth = true;
}
@@ -463,7 +464,7 @@ smb_complete_connection(const char *myname,
fprintf(stderr, "ERROR: Tree connect failed (%s)\n",
nt_errstr(nt_status));
- if (get_exit_code(cli, nt_status) == 2) {
+ if (get_exit_code(cli, nt_status, use_kerberos) == 2) {
*need_auth = true;
}
@@ -601,7 +602,7 @@ smb_print(struct cli_state * cli, /* I - SMB connection */
if (!NT_STATUS_IS_OK(nt_status)) {
fprintf(stderr, "ERROR: %s opening remote spool %s\n",
nt_errstr(nt_status), title);
- return get_exit_code(cli, nt_status);
+ return get_exit_code(cli, nt_status, false);
}
/*
@@ -619,7 +620,7 @@ smb_print(struct cli_state * cli, /* I - SMB connection */
status = cli_writeall(cli, fnum, 0, (uint8_t *)buffer,
tbytes, nbytes, NULL);
if (!NT_STATUS_IS_OK(status)) {
- int ret = get_exit_code(cli, status);
+ int ret = get_exit_code(cli, status, false);
fprintf(stderr, "ERROR: Error writing spool: %s\n",
nt_errstr(status));
fprintf(stderr, "DEBUG: Returning status %d...\n",
@@ -635,7 +636,7 @@ smb_print(struct cli_state * cli, /* I - SMB connection */
if (!NT_STATUS_IS_OK(nt_status)) {
fprintf(stderr, "ERROR: %s closing remote spool %s\n",
nt_errstr(nt_status), title);
- return get_exit_code(cli, nt_status);
+ return get_exit_code(cli, nt_status, false);
} else {
return (0);
}