s4:kdc - Merged kdc_tcp_accept() and kpasswdd_tcp_accept().
authorEndi S. Dewata <edewata@redhat.com>
Tue, 24 Nov 2009 07:00:45 +0000 (01:00 -0600)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 1 Dec 2009 05:41:02 +0000 (16:41 +1100)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/kdc.c

index 5700e5bbe8c21fc7bd02e85ce7c7bc6975b203b2..92dd5b69248782f02ddb3bdc3bfcb07cac30cd49 100644 (file)
@@ -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,18 +392,6 @@ 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
 */
@@ -417,7 +400,6 @@ static NTSTATUS kdc_add_socket(struct kdc_server *kdc,
                               const char *name,
                               const char *address,
                               uint16_t port,
-                              const struct stream_server_ops *tcp_stream_ops,
                               kdc_process_fn_t process)
 {
        struct kdc_socket *kdc_socket;
@@ -458,10 +440,10 @@ static NTSTATUS kdc_add_socket(struct kdc_server *kdc,
        status = stream_setup_socket(kdc->task->event_ctx, 
                                     kdc->task->lp_ctx,
                                     model_ops, 
-                                    tcp_stream_ops, 
+                                    &kdc_tcp_stream_ops, 
                                     "ip", address, &port, 
                                     lp_socket_options(kdc->task->lp_ctx), 
-                                    kdc);
+                                    kdc_socket);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("Failed to bind to %s:%u TCP - %s\n",
                         address, port, nt_errstr(status)));
@@ -504,7 +486,6 @@ static NTSTATUS kdc_startup_interfaces(struct kdc_server *kdc, struct loadparm_c
                if (kdc_port) {
                        status = kdc_add_socket(kdc, model_ops,
                                        "kdc", address, kdc_port,
-                                       &kdc_tcp_stream_ops, 
                                        kdc_process);
                        NT_STATUS_NOT_OK_RETURN(status);
                }
@@ -512,7 +493,6 @@ static NTSTATUS kdc_startup_interfaces(struct kdc_server *kdc, struct loadparm_c
                if (kpasswd_port) {
                        status = kdc_add_socket(kdc, model_ops,
                                        "kpasswd", address, kpasswd_port,
-                                       &kpasswdd_tcp_stream_ops,
                                        kpasswdd_process);
                        NT_STATUS_NOT_OK_RETURN(status);
                }