summaryrefslogtreecommitdiff
path: root/source4/smbd
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smbd')
-rw-r--r--source4/smbd/process_standard.c2
-rw-r--r--source4/smbd/server.c4
-rw-r--r--source4/smbd/service_stream.c4
-rw-r--r--source4/smbd/service_stream.h1
-rw-r--r--source4/smbd/service_task.c4
5 files changed, 10 insertions, 5 deletions
diff --git a/source4/smbd/process_standard.c b/source4/smbd/process_standard.c
index fdeaefc443..09d32d05aa 100644
--- a/source4/smbd/process_standard.c
+++ b/source4/smbd/process_standard.c
@@ -198,7 +198,7 @@ _NORETURN_ static void standard_terminate(struct event_context *ev, const char *
/* this reload_charcnv() has the effect of freeing the iconv context memory,
which makes leak checking easier */
- reload_charcnv();
+ reload_charcnv(global_loadparm);
/* the secrets db should really hang off the connection structure */
secrets_shutdown();
diff --git a/source4/smbd/server.c b/source4/smbd/server.c
index e7d7d1a7fc..3f1d3c35d8 100644
--- a/source4/smbd/server.c
+++ b/source4/smbd/server.c
@@ -226,7 +226,7 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
model = poptGetOptArg(pc);
break;
default:
- d_fprintf(stderr, "\nInvalid option %s: %s\n\n",
+ fprintf(stderr, "\nInvalid option %s: %s\n\n",
poptBadOption(pc, 0), poptStrerror(opt));
poptPrintUsage(pc, stderr, 0);
exit(1);
@@ -234,7 +234,7 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
}
if (opt_daemon && opt_interactive) {
- d_fprintf(stderr,"\nERROR: "
+ fprintf(stderr,"\nERROR: "
"Option -i|--interactive is not allowed together with -D|--daemon\n\n");
poptPrintUsage(pc, stderr, 0);
exit(1);
diff --git a/source4/smbd/service_stream.c b/source4/smbd/service_stream.c
index 8df8c474f5..6d2e95dc94 100644
--- a/source4/smbd/service_stream.c
+++ b/source4/smbd/service_stream.c
@@ -183,7 +183,9 @@ static void stream_new_connection(struct event_context *ev,
/* setup to receive internal messages on this connection */
srv_conn->msg_ctx = messaging_init(srv_conn,
lp_messaging_path(srv_conn, global_loadparm),
- srv_conn->server_id, ev);
+ srv_conn->server_id,
+ lp_iconv_convenience(global_loadparm),
+ ev);
if (!srv_conn->msg_ctx) {
stream_terminate_connection(srv_conn, "messaging_init() failed");
return;
diff --git a/source4/smbd/service_stream.h b/source4/smbd/service_stream.h
index 6eb26a4282..04d23a56f2 100644
--- a/source4/smbd/service_stream.h
+++ b/source4/smbd/service_stream.h
@@ -48,6 +48,7 @@ struct stream_connection {
struct socket_context *socket;
struct messaging_context *msg_ctx;
+ struct loadparm_context *lp_ctx;
bool processing;
const char *terminate;
diff --git a/source4/smbd/service_task.c b/source4/smbd/service_task.c
index dceda5a922..f286da5cf6 100644
--- a/source4/smbd/service_task.c
+++ b/source4/smbd/service_task.c
@@ -68,7 +68,9 @@ static void task_server_callback(struct event_context *event_ctx,
task->msg_ctx = messaging_init(task,
lp_messaging_path(task, task->lp_ctx),
- task->server_id, task->event_ctx);
+ task->server_id,
+ lp_iconv_convenience(task->lp_ctx),
+ task->event_ctx);
if (!task->msg_ctx) {
task_server_terminate(task, "messaging_init() failed");
return;