[SCM] Samba Shared Repository - branch master updated
Andrew Bartlett
abartlet at samba.org
Mon Nov 30 23:28:05 MST 2009
The branch, master has been updated
via 2d1bd87... s4:torture/raw/lock - Fix "discard const" warnings by introducing "discard_const_p"s
via 262d26d... s4:torture/nbt/wins - Add more casts
via 58a5e76... s4:torture/nbench/nbench - Add a cast before "str_list_make_shell"
via 8b44999... s4:torture/ldap/ldap_sort - Add some casts to suppress warnings
via 7be99d3... s4:schema - Make some more (result) variables const and fix up warnings with "discard_const_p"
via 012494b... util/util_strlist - add a call "const_str_list" for making "unconst" lists "const"
via 9ce7e9a... s4:kdc - Merged kdc_tcp_accept() and kpasswdd_tcp_accept().
via 0c89a6f... s4:kdc - Merged kdc_add_kdc_socket() and kdc_add_kpasswd_socket().
via bd17df7... s4 - Create default modules directory.
via c93fc3a... s4:kdc - Disable KDC port when it's set to 0.
from 183ea82... Merge commit 'origin/master' into abartlet-devel
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 2d1bd87f732e37323bd382ac66f41bfc52a23dac
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Fri Nov 20 11:35:13 2009 +0100
s4:torture/raw/lock - Fix "discard const" warnings by introducing "discard_const_p"s
commit 262d26d05a6b1f6b074408ba8be352324d1b0d47
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Sat Oct 17 22:36:00 2009 +0200
s4:torture/nbt/wins - Add more casts
commit 58a5e764a9c96229cb4daa99d3d8ef18c188b4fe
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Sat Oct 17 22:35:21 2009 +0200
s4:torture/nbench/nbench - Add a cast before "str_list_make_shell"
commit 8b4499942eff7bc6ea1b64cdc6ab6958b8f5d1a8
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Sat Oct 17 22:34:00 2009 +0200
s4:torture/ldap/ldap_sort - Add some casts to suppress warnings
commit 7be99d373578f42ac47e67ef1b95a2409cecc184
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Sat Oct 17 22:25:12 2009 +0200
s4:schema - Make some more (result) variables const and fix up warnings with "discard_const_p"
commit 012494b8005b621642ec98d51d067378f8e10421
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Wed Nov 25 09:15:39 2009 +0100
util/util_strlist - add a call "const_str_list" for making "unconst" lists "const"
commit 9ce7e9ab8401e038b36d53e477fcb658d1c54f80
Author: Endi S. Dewata <edewata at redhat.com>
Date: Tue Nov 24 01:00:45 2009 -0600
s4:kdc - Merged kdc_tcp_accept() and kpasswdd_tcp_accept().
Signed-off-by: Andrew Bartlett <abartlet at samba.org>
commit 0c89a6f2aa433e54d7af99d9214ddc186784af97
Author: Endi S. Dewata <edewata at redhat.com>
Date: Mon Nov 23 22:28:11 2009 -0600
s4:kdc - Merged kdc_add_kdc_socket() and kdc_add_kpasswd_socket().
Signed-off-by: Andrew Bartlett <abartlet at samba.org>
commit bd17df71b59ba54c7845ddc000e8cb17b6a23928
Author: Endi S. Dewata <edewata at redhat.com>
Date: Fri Nov 20 14:57:11 2009 -0600
s4 - Create default modules directory.
Signed-off-by: Andrew Bartlett <abartlet at samba.org>
commit c93fc3a10a8839752eb4c1d1e91c1b455c974eef
Author: Endi S. Dewata <edewata at redhat.com>
Date: Fri Nov 20 08:47:40 2009 -0600
s4:kdc - Disable KDC port when it's set to 0.
Signed-off-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/util/util.h | 5 +
lib/util/util_strlist.c | 9 ++
source4/Makefile | 1 +
source4/dsdb/schema/schema.h | 8 +-
source4/dsdb/schema/schema_inferiors.c | 117 +++++++++++++++-----------
source4/kdc/kdc.c | 147 +++++++++++---------------------
source4/torture/ldap/ldap_sort.c | 14 ++--
source4/torture/nbench/nbench.c | 5 +-
source4/torture/nbt/wins.c | 18 +++--
source4/torture/raw/lock.c | 9 ++-
10 files changed, 165 insertions(+), 168 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/util/util.h b/lib/util/util.h
index e7ea0ba..729190a 100644
--- a/lib/util/util.h
+++ b/lib/util/util.h
@@ -535,6 +535,11 @@ _PUBLIC_ const char **str_list_add_const(const char **list, const char *s);
_PUBLIC_ const char **str_list_copy_const(TALLOC_CTX *mem_ctx,
const char **list);
+/**
+ * Needed for making an "unconst" list "const"
+ */
+_PUBLIC_ const char **const_str_list(char **list);
+
/* The following definitions come from lib/util/util_file.c */
diff --git a/lib/util/util_strlist.c b/lib/util/util_strlist.c
index 71998b9..6d1a695 100644
--- a/lib/util/util_strlist.c
+++ b/lib/util/util_strlist.c
@@ -486,3 +486,12 @@ _PUBLIC_ const char **str_list_copy_const(TALLOC_CTX *mem_ctx,
ret[i] = NULL;
return ret;
}
+
+/**
+ * Needed for making an "unconst" list "const"
+ */
+_PUBLIC_ const char **const_str_list(char **list)
+{
+ return (const char **)list;
+}
+
diff --git a/source4/Makefile b/source4/Makefile
index 8f23da5..8e4895b 100644
--- a/source4/Makefile
+++ b/source4/Makefile
@@ -213,6 +213,7 @@ installdirs::
$(DESTDIR)$(torturedir) \
$(DESTDIR)$(libdir) \
$(DESTDIR)$(modulesdir) \
+ $(DESTDIR)$(modulesdir)/ldb \
$(DESTDIR)$(mandir) \
$(DESTDIR)$(localstatedir) \
$(DESTDIR)$(localstatedir)/lib \
diff --git a/source4/dsdb/schema/schema.h b/source4/dsdb/schema/schema.h
index fa687d0..186f5d5 100644
--- a/source4/dsdb/schema/schema.h
+++ b/source4/dsdb/schema/schema.h
@@ -138,10 +138,10 @@ struct dsdb_class {
bool isDefunct;
bool systemOnly;
- char **supclasses;
- char **subclasses;
- char **subclasses_direct;
- char **posssuperiors;
+ const char **supclasses;
+ const char **subclasses;
+ const char **subclasses_direct;
+ const char **posssuperiors;
uint32_t subClassOf_id;
uint32_t *systemAuxiliaryClass_ids;
uint32_t *auxiliaryClass_ids;
diff --git a/source4/dsdb/schema/schema_inferiors.c b/source4/dsdb/schema/schema_inferiors.c
index 23cd43d..d6fc1cf 100644
--- a/source4/dsdb/schema/schema_inferiors.c
+++ b/source4/dsdb/schema/schema_inferiors.c
@@ -34,15 +34,16 @@
/*
create the SUPCLASSES() list
*/
-static char **schema_supclasses(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+static const char **schema_supclasses(const struct dsdb_schema *schema,
+ struct dsdb_class *schema_class)
{
- char **list;
+ const char **list;
if (schema_class->supclasses) {
return schema_class->supclasses;
}
- list = str_list_make_empty(schema_class);
+ list = const_str_list(str_list_make_empty(schema_class));
if (list == NULL) {
DEBUG(0,(__location__ " out of memory\n"));
return NULL;
@@ -56,13 +57,11 @@ static char **schema_supclasses(struct dsdb_schema *schema, struct dsdb_class *s
}
if (schema_class->subClassOf) {
+ const struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, schema_class->subClassOf);
const char **list2;
- list = str_list_add_const(list, schema_class->subClassOf);
+ list = str_list_add_const(list, schema_class->subClassOf);
- list2 = schema_supclasses(schema,
- discard_const_p(struct dsdb_class,
- dsdb_class_by_lDAPDisplayName(schema,
- schema_class->subClassOf)));
+ list2 = schema_supclasses(schema, discard_const_p(struct dsdb_class, schema_class2));
list = str_list_append_const(list, list2);
}
@@ -75,13 +74,15 @@ static char **schema_supclasses(struct dsdb_schema *schema, struct dsdb_class *s
this one is used internally
matches SUBCLASSES() python function
*/
-static char **schema_subclasses(struct dsdb_schema *schema, TALLOC_CTX *mem_ctx, char **oclist)
+static const char **schema_subclasses(const struct dsdb_schema *schema,
+ TALLOC_CTX *mem_ctx,
+ const char **oclist)
{
- char **list = str_list_make_empty(mem_ctx);
+ const char **list = const_str_list(str_list_make_empty(mem_ctx));
int i;
for (i=0; oclist && oclist[i]; i++) {
- struct dsdb_class *schema_class = dsdb_class_by_lDAPDisplayName(schema, oclist[i]);
+ const struct dsdb_class *schema_class = dsdb_class_by_lDAPDisplayName(schema, oclist[i]);
if (!schema_class) {
DEBUG(0, ("ERROR: Unable to locate subClass: '%s'\n", oclist[i]));
continue;
@@ -95,24 +96,25 @@ static char **schema_subclasses(struct dsdb_schema *schema, TALLOC_CTX *mem_ctx,
/*
equivalent of the POSSSUPERIORS() python function
*/
-static char **schema_posssuperiors(struct dsdb_schema *schema,
- struct dsdb_class *schema_class)
+static const char **schema_posssuperiors(const struct dsdb_schema *schema,
+ struct dsdb_class *schema_class)
{
if (schema_class->posssuperiors == NULL) {
- char **list2 = str_list_make_empty(schema_class);
- char **list3;
+ const char **list2 = const_str_list(str_list_make_empty(schema_class));
+ const char **list3;
int i;
list2 = str_list_append_const(list2, schema_class->systemPossSuperiors);
list2 = str_list_append_const(list2, schema_class->possSuperiors);
list3 = schema_supclasses(schema, schema_class);
for (i=0; list3 && list3[i]; i++) {
- struct dsdb_class *class2 = dsdb_class_by_lDAPDisplayName(schema, list3[i]);
+ const struct dsdb_class *class2 = dsdb_class_by_lDAPDisplayName(schema, list3[i]);
if (!class2) {
DEBUG(0, ("ERROR: Unable to locate supClass: '%s'\n", list3[i]));
continue;
}
- list2 = str_list_append_const(list2, schema_posssuperiors(schema, class2));
+ list2 = str_list_append_const(list2, schema_posssuperiors(schema,
+ discard_const_p(struct dsdb_class, class2)));
}
list2 = str_list_append_const(list2, schema_subclasses(schema, list2, list2));
@@ -122,14 +124,16 @@ static char **schema_posssuperiors(struct dsdb_schema *schema,
return schema_class->posssuperiors;
}
-static char **schema_subclasses_recurse(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+static const char **schema_subclasses_recurse(const struct dsdb_schema *schema,
+ struct dsdb_class *schema_class)
{
- char **list = str_list_copy_const(schema_class, schema_class->subclasses_direct);
+ const char **list = str_list_copy_const(schema_class, schema_class->subclasses_direct);
int i;
for (i=0;list && list[i]; i++) {
- struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, list[i]);
+ const struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, list[i]);
if (schema_class != schema_class2) {
- list = str_list_append_const(list, schema_subclasses_recurse(schema, schema_class2));
+ list = str_list_append_const(list, schema_subclasses_recurse(schema,
+ discard_const_p(struct dsdb_class, schema_class2)));
}
}
return list;
@@ -137,37 +141,40 @@ static char **schema_subclasses_recurse(struct dsdb_schema *schema, struct dsdb_
/* Walk down the subClass tree, setting a higher index as we go down
* each level. top is 1, subclasses of top are 2, etc */
-void schema_subclasses_order_recurse(struct dsdb_schema *schema, struct dsdb_class *schema_class, int order)
+void schema_subclasses_order_recurse(const struct dsdb_schema *schema,
+ struct dsdb_class *schema_class,
+ const int order)
{
const char **list = schema_class->subclasses_direct;
int i;
schema_class->subClass_order = order;
for (i=0;list && list[i]; i++) {
- struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, list[i]);
- schema_subclasses_order_recurse(schema, schema_class2, order+1);
+ const struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, list[i]);
+ schema_subclasses_order_recurse(schema, discard_const_p(struct dsdb_class, schema_class2), order+1);
}
return;
}
-static int schema_create_subclasses(struct dsdb_schema *schema)
+static int schema_create_subclasses(const struct dsdb_schema *schema)
{
struct dsdb_class *schema_class, *top;
for (schema_class=schema->classes; schema_class; schema_class=schema_class->next) {
- struct dsdb_class *schema_class2 = dsdb_class_by_lDAPDisplayName(schema, schema_class->subClassOf);
+ struct dsdb_class *schema_class2 = discard_const_p(struct dsdb_class,
+ dsdb_class_by_lDAPDisplayName(schema, schema_class->subClassOf));
if (schema_class2 == NULL) {
DEBUG(0,("ERROR: no subClassOf for '%s'\n", schema_class->lDAPDisplayName));
return LDB_ERR_OPERATIONS_ERROR;
}
if (schema_class2 && schema_class != schema_class2) {
if (schema_class2->subclasses_direct == NULL) {
- schema_class2->subclasses_direct = str_list_make_empty(schema_class2);
+ schema_class2->subclasses_direct = const_str_list(str_list_make_empty(schema_class2));
if (!schema_class2->subclasses_direct) {
return LDB_ERR_OPERATIONS_ERROR;
}
}
- schema_class2->subclasses_direct = str_list_add_const(schema_class2->subclasses_direct,
- schema_class->lDAPDisplayName);
+ schema_class2->subclasses_direct = str_list_add_const(schema_class2->subclasses_direct,
+ schema_class->lDAPDisplayName);
}
}
@@ -178,7 +185,7 @@ static int schema_create_subclasses(struct dsdb_schema *schema)
schema_class->subClass_order = 0;
}
- top = dsdb_class_by_lDAPDisplayName(schema, "top");
+ top = discard_const_p(struct dsdb_class, dsdb_class_by_lDAPDisplayName(schema, "top"));
if (!top) {
DEBUG(0,("ERROR: no 'top' class in loaded schema\n"));
return LDB_ERR_OPERATIONS_ERROR;
@@ -188,40 +195,42 @@ static int schema_create_subclasses(struct dsdb_schema *schema)
return LDB_SUCCESS;
}
-static void schema_fill_possible_inferiors(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+static void schema_fill_possible_inferiors(const struct dsdb_schema *schema,
+ struct dsdb_class *schema_class)
{
struct dsdb_class *c2;
for (c2=schema->classes; c2; c2=c2->next) {
- char **superiors = schema_posssuperiors(schema, c2);
+ const char **superiors = schema_posssuperiors(schema, c2);
if (c2->systemOnly == false
&& c2->objectClassCategory != 2
&& c2->objectClassCategory != 3
&& str_list_check(superiors, schema_class->lDAPDisplayName)) {
if (schema_class->possibleInferiors == NULL) {
- schema_class->possibleInferiors = str_list_make_empty(schema_class);
+ schema_class->possibleInferiors = const_str_list(str_list_make_empty(schema_class));
}
schema_class->possibleInferiors = str_list_add_const(schema_class->possibleInferiors,
- c2->lDAPDisplayName);
+ c2->lDAPDisplayName);
}
}
schema_class->possibleInferiors = str_list_unique(schema_class->possibleInferiors);
}
-static void schema_fill_system_possible_inferiors(struct dsdb_schema *schema, struct dsdb_class *schema_class)
+static void schema_fill_system_possible_inferiors(const struct dsdb_schema *schema,
+ struct dsdb_class *schema_class)
{
struct dsdb_class *c2;
for (c2=schema->classes; c2; c2=c2->next) {
- char **superiors = schema_posssuperiors(schema, c2);
+ const char **superiors = schema_posssuperiors(schema, c2);
if (c2->objectClassCategory != 2
&& c2->objectClassCategory != 3
&& str_list_check(superiors, schema_class->lDAPDisplayName)) {
if (schema_class->systemPossibleInferiors == NULL) {
- schema_class->systemPossibleInferiors = str_list_make_empty(schema_class);
+ schema_class->systemPossibleInferiors = const_str_list(str_list_make_empty(schema_class));
}
schema_class->systemPossibleInferiors = str_list_add_const(schema_class->systemPossibleInferiors,
- c2->lDAPDisplayName);
+ c2->lDAPDisplayName);
}
}
schema_class->systemPossibleInferiors = str_list_unique(schema_class->systemPossibleInferiors);
@@ -230,11 +239,14 @@ static void schema_fill_system_possible_inferiors(struct dsdb_schema *schema, st
/*
fill in a string class name from a governs_ID
*/
-static void schema_fill_from_class_one(struct dsdb_schema *schema, struct dsdb_class *c,
- const char **s, uint32_t id)
+static void schema_fill_from_class_one(const struct dsdb_schema *schema,
+ const struct dsdb_class *c,
+ const char **s,
+ const uint32_t id)
{
if (*s == NULL && id != 0) {
- struct dsdb_class *c2 = dsdb_class_by_governsID_id(schema, id);
+ const struct dsdb_class *c2 =
+ dsdb_class_by_governsID_id(schema, id);
if (c2) {
*s = c2->lDAPDisplayName;
}
@@ -244,15 +256,18 @@ static void schema_fill_from_class_one(struct dsdb_schema *schema, struct dsdb_c
/*
fill in a list of string class names from a governs_ID list
*/
-static void schema_fill_from_class_list(struct dsdb_schema *schema, struct dsdb_class *c,
- const char ***s, uint32_t *ids)
+static void schema_fill_from_class_list(const struct dsdb_schema *schema,
+ const struct dsdb_class *c,
+ const char ***s,
+ const uint32_t *ids)
{
if (*s == NULL && ids != NULL) {
int i;
for (i=0;ids[i];i++) ;
*s = talloc_array(c, const char *, i+1);
for (i=0;ids[i];i++) {
- struct dsdb_class *c2 = dsdb_class_by_governsID_id(schema, ids[i]);
+ const struct dsdb_class *c2 =
+ dsdb_class_by_governsID_id(schema, ids[i]);
if (c2) {
(*s)[i] = c2->lDAPDisplayName;
} else {
@@ -266,15 +281,18 @@ static void schema_fill_from_class_list(struct dsdb_schema *schema, struct dsdb_
/*
fill in a list of string attribute names from a attributeID list
*/
-static void schema_fill_from_attribute_list(struct dsdb_schema *schema, struct dsdb_class *c,
- const char ***s, uint32_t *ids)
+static void schema_fill_from_attribute_list(const struct dsdb_schema *schema,
+ const struct dsdb_class *c,
+ const char ***s,
+ const uint32_t *ids)
{
if (*s == NULL && ids != NULL) {
int i;
for (i=0;ids[i];i++) ;
*s = talloc_array(c, const char *, i+1);
for (i=0;ids[i];i++) {
- struct dsdb_attribute *a = dsdb_attribute_by_attributeID_id(schema, ids[i]);
+ const struct dsdb_attribute *a =
+ dsdb_attribute_by_attributeID_id(schema, ids[i]);
if (a) {
(*s)[i] = a->lDAPDisplayName;
} else {
@@ -288,7 +306,7 @@ static void schema_fill_from_attribute_list(struct dsdb_schema *schema, struct d
/*
if the schema came from DRS then some attributes will be setup as IDs
*/
-static void schema_fill_from_ids(struct dsdb_schema *schema)
+static void schema_fill_from_ids(const struct dsdb_schema *schema)
{
struct dsdb_class *c;
for (c=schema->classes; c; c=c->next) {
@@ -304,7 +322,7 @@ static void schema_fill_from_ids(struct dsdb_schema *schema)
}
}
-int schema_fill_constructed(struct dsdb_schema *schema)
+int schema_fill_constructed(const struct dsdb_schema *schema)
{
int ret;
struct dsdb_class *schema_class;
@@ -332,5 +350,6 @@ int schema_fill_constructed(struct dsdb_schema *schema)
schema_class->subclasses = NULL;
schema_class->posssuperiors = NULL;
}
+
return LDB_SUCCESS;
}
diff --git a/source4/kdc/kdc.c b/source4/kdc/kdc.c
index 1260e90..92dd5b6 100644
--- a/source4/kdc/kdc.c
+++ b/source4/kdc/kdc.c
@@ -355,9 +355,9 @@ static bool kdc_process(struct kdc_server *kdc,
/*
called when we get a new connection
*/
-static void kdc_tcp_generic_accept(struct stream_connection *conn, kdc_process_fn_t process_fn)
+static void kdc_tcp_accept(struct stream_connection *conn)
{
- struct kdc_server *kdc = talloc_get_type(conn->private_data, struct kdc_server);
+ struct kdc_socket *kdc_socket = talloc_get_type(conn->private_data, struct kdc_socket);
struct kdc_tcp_connection *kdcconn;
kdcconn = talloc_zero(conn, struct kdc_tcp_connection);
@@ -366,8 +366,8 @@ static void kdc_tcp_generic_accept(struct stream_connection *conn, kdc_process_f
return;
}
kdcconn->conn = conn;
- kdcconn->kdc = kdc;
- kdcconn->process = process_fn;
+ kdcconn->kdc = kdc_socket->kdc;
+ kdcconn->process = kdc_socket->process;
conn->private_data = kdcconn;
kdcconn->packet = packet_init(kdcconn);
@@ -385,11 +385,6 @@ static void kdc_tcp_generic_accept(struct stream_connection *conn, kdc_process_f
packet_set_serialise(kdcconn->packet);
}
-static void kdc_tcp_accept(struct stream_connection *conn)
-{
- kdc_tcp_generic_accept(conn, kdc_process);
-}
-
static const struct stream_server_ops kdc_tcp_stream_ops = {
.name = "kdc_tcp",
.accept_connection = kdc_tcp_accept,
@@ -397,112 +392,47 @@ static const struct stream_server_ops kdc_tcp_stream_ops = {
.send_handler = kdc_tcp_send
};
-static void kpasswdd_tcp_accept(struct stream_connection *conn)
-{
- kdc_tcp_generic_accept(conn, kpasswdd_process);
-}
-
-static const struct stream_server_ops kpasswdd_tcp_stream_ops = {
- .name = "kpasswdd_tcp",
- .accept_connection = kpasswdd_tcp_accept,
- .recv_handler = kdc_tcp_recv_handler,
- .send_handler = kdc_tcp_send
-};
-
/*
start listening on the given address
*/
-static NTSTATUS kdc_add_socket(struct kdc_server *kdc, const char *address,
- uint16_t kdc_port, uint16_t kpasswd_port)
+static NTSTATUS kdc_add_socket(struct kdc_server *kdc,
+ const struct model_ops *model_ops,
+ const char *name,
+ const char *address,
+ uint16_t port,
+ kdc_process_fn_t process)
{
- const struct model_ops *model_ops;
struct kdc_socket *kdc_socket;
- struct kdc_socket *kpasswd_socket;
- struct socket_address *kdc_address, *kpasswd_address;
+ struct socket_address *socket_address;
NTSTATUS status;
kdc_socket = talloc(kdc, struct kdc_socket);
NT_STATUS_HAVE_NO_MEMORY(kdc_socket);
- kpasswd_socket = talloc(kdc, struct kdc_socket);
- NT_STATUS_HAVE_NO_MEMORY(kpasswd_socket);
-
status = socket_create("ip", SOCKET_TYPE_DGRAM, &kdc_socket->sock, 0);
if (!NT_STATUS_IS_OK(status)) {
talloc_free(kdc_socket);
return status;
}
- status = socket_create("ip", SOCKET_TYPE_DGRAM, &kpasswd_socket->sock, 0);
- if (!NT_STATUS_IS_OK(status)) {
- talloc_free(kpasswd_socket);
- return status;
- }
-
kdc_socket->kdc = kdc;
kdc_socket->send_queue = NULL;
- kdc_socket->process = kdc_process;
+ kdc_socket->process = process;
talloc_steal(kdc_socket, kdc_socket->sock);
kdc_socket->fde = event_add_fd(kdc->task->event_ctx, kdc,
- socket_get_fd(kdc_socket->sock), EVENT_FD_READ,
- kdc_socket_handler, kdc_socket);
-
- kdc_address = socket_address_from_strings(kdc_socket, kdc_socket->sock->backend_name,
- address, kdc_port);
- NT_STATUS_HAVE_NO_MEMORY(kdc_address);
-
- status = socket_listen(kdc_socket->sock, kdc_address, 0, 0);
- if (!NT_STATUS_IS_OK(status)) {
- DEBUG(0,("Failed to bind to %s:%d UDP for kdc - %s\n",
- address, kdc_port, nt_errstr(status)));
- talloc_free(kdc_socket);
- return status;
- }
-
- kpasswd_socket->kdc = kdc;
- kpasswd_socket->send_queue = NULL;
- kpasswd_socket->process = kpasswdd_process;
-
- talloc_steal(kpasswd_socket, kpasswd_socket->sock);
-
- kpasswd_socket->fde = event_add_fd(kdc->task->event_ctx, kdc,
- socket_get_fd(kpasswd_socket->sock), EVENT_FD_READ,
- kdc_socket_handler, kpasswd_socket);
+ socket_get_fd(kdc_socket->sock), EVENT_FD_READ,
+ kdc_socket_handler, kdc_socket);
--
Samba Shared Repository
More information about the samba-cvs
mailing list