conn->connection = c;
conn->service = ldapsrv_service;
conn->sockets.raw = c->socket;
- conn->lp_ctx = global_loadparm;
+ conn->lp_ctx = ldapsrv_service->task->lp_ctx;
c->private = conn;
ldap_service = talloc_zero(task, struct ldapsrv_service);
if (ldap_service == NULL) goto failed;
+ ldap_service->task = task;
+
ldap_service->tls_params = tls_initialise(ldap_service, task->lp_ctx);
if (ldap_service->tls_params == NULL) goto failed;
struct ldapsrv_service {
struct tls_params *tls_params;
+ struct task_server *task;
};
#include "ldap_server/proto.h"
{
#if _SAMBA_BUILD_
init_module_fn static_init[] = { STATIC_LIBEVENTS_MODULES };
- init_module_fn *shared_init;
if (event_backends) return;
- shared_init = load_samba_modules(NULL, global_loadparm, "events");
run_init_functions(static_init);
- run_init_functions(shared_init);
#else
bool events_standard_init(void);
bool events_select_init(void);
ctx = socket_connect_multi_send(state, host_addr,
state->num_ports, state->ports,
- lp_resolve_context(global_loadparm),
+ resolve_ctx,
state->ctx->event_ctx);
if (ctx == NULL) goto failed;
ctx->async.fn = smbcli_sock_connect_recv_conn;
nt.out.data.length = IVAL(nt.out.params.data, 0);
- ndr = ndr_pull_init_blob(&nt.out.data, mem_ctx,
- lp_iconv_convenience(global_loadparm));
+ ndr = ndr_pull_init_blob(&nt.out.data, mem_ctx, NULL);
if (!ndr) {
return NT_STATUS_INVALID_PARAMETER;
}
nt.in.params.data = params;
nt.in.params.length = 8;
- ndr = ndr_push_init_ctx(NULL, lp_iconv_convenience(global_loadparm));
+ ndr = ndr_push_init_ctx(NULL, NULL);
if (!ndr) return NULL;
ndr_err = ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, io->set_secdesc.in.sd);
}
/* a way to force ascii SMB */
- if (!lp_unicode(global_loadparm)) {
+ if (!transport->options.unicode) {
transport->negotiate.capabilities &= ~CAP_UNICODE;
}
- if (!lp_nt_status_support(global_loadparm)) {
+ if (!transport->options.ntstatus_support) {
transport->negotiate.capabilities &= ~CAP_STATUS32;
}
v[0].sid = s->zero_sid;
v[0].dn = s->forest.schema_dn_str;
- ndr_err = ndr_push_struct_blob(&vd[0], vd, lp_iconv_convenience(global_loadparm), &v[0],
+ ndr_err = ndr_push_struct_blob(&vd[0], vd, NULL, &v[0],
(ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
c->status = ndr_map_error2ntstatus(ndr_err);
v[0].sid = s->zero_sid;
v[0].dn = s->domain.dn_str;
- ndr_err = ndr_push_struct_blob(&vd[0], vd, lp_iconv_convenience(global_loadparm), &v[0],
+ ndr_err = ndr_push_struct_blob(&vd[0], vd, NULL, &v[0],
(ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
c->status = ndr_map_error2ntstatus(ndr_err);
v[0].sid = s->zero_sid;
v[0].dn = s->dest_dsa.computer_dn_str;
- ndr_err = ndr_push_struct_blob(&vd[0], vd, lp_iconv_convenience(global_loadparm), &v[0],
+ ndr_err = ndr_push_struct_blob(&vd[0], vd, NULL, &v[0],
(ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
c->status = ndr_map_error2ntstatus(ndr_err);
user->user_private_info.SensitiveData = data.data;
user->user_private_info.DataLength = data.length;
- ndr_err = ndr_pull_struct_blob(&data, mem_ctx, lp_iconv_convenience(global_loadparm), &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
+ ndr_err = ndr_pull_struct_blob(&data, mem_ctx, NULL, &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
*error_string = talloc_asprintf(mem_ctx, "Failed to parse Sensitive Data for %s:", username);
dump_data(10, data.data, data.length);
packet_in_blob.length = blob.length - 4;
ndr_err = ndr_pull_struct_blob(&packet_in_blob, call,
- lp_iconv_convenience(global_loadparm),
+ lp_iconv_convenience(wreplconn->service->task->lp_ctx),
&call->req_packet,
(ndr_pull_flags_fn_t)ndr_pull_wrepl_packet);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
/* and now encode the reply */
packet_out_wrap.packet = call->rep_packet;
ndr_err = ndr_push_struct_blob(&packet_out_blob, call,
- lp_iconv_convenience(global_loadparm),
+ lp_iconv_convenience(wreplconn->service->task->lp_ctx),
&packet_out_wrap,
(ndr_push_flags_fn_t)ndr_push_wrepl_wrap);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {