summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/client.h2
-rw-r--r--source3/libsmb/cliconnect.c3
-rw-r--r--source3/libsmb/clientgen.c8
3 files changed, 12 insertions, 1 deletions
diff --git a/source3/include/client.h b/source3/include/client.h
index 6566769eac..9eae222140 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -114,6 +114,7 @@ struct cli_state {
bool use_level_II_oplocks; /* should we use level II oplocks? */
bool force_dos_errors;
+ bool force_ascii;
bool case_sensitive; /* False by default. */
/* Where (if anywhere) this is mounted under DFS. */
@@ -194,5 +195,6 @@ struct file_info {
#define CLI_FULL_CONNECTION_LEVEL_II_OPLOCKS 0x0020
#define CLI_FULL_CONNECTION_USE_CCACHE 0x0040
#define CLI_FULL_CONNECTION_FORCE_DOS_ERRORS 0x0080
+#define CLI_FULL_CONNECTION_FORCE_ASCII 0x0100
#endif /* _CLIENT_H */
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index 2ae7cbbcde..fd0536cb6f 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -2723,8 +2723,9 @@ static void cli_negprot_done(struct tevent_req *subreq)
cli->max_xmit = MIN(cli->max_xmit, CLI_BUFFER_SIZE);
/* a way to force ascii SMB */
- if (getenv("CLI_FORCE_ASCII"))
+ if (cli->force_ascii) {
cli->capabilities &= ~CAP_UNICODE;
+ }
tevent_req_done(req);
}
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index ad4274a282..f274dc0b63 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -206,6 +206,14 @@ struct cli_state *cli_state_create(TALLOC_CTX *mem_ctx,
}
if (flags & CLI_FULL_CONNECTION_FORCE_DOS_ERRORS) {
cli->force_dos_errors = true;
+ }
+
+ if (getenv("CLI_FORCE_ASCII")) {
+ cli->force_ascii = true;
+ }
+ if (flags & CLI_FULL_CONNECTION_FORCE_ASCII) {
+ cli->force_ascii = true;
+ }
if (flags & CLI_FULL_CONNECTION_DONT_SPNEGO) {
cli->use_spnego = false;