s3-epmapper: Shutdown the embedded epmapper cleanly.
authorAndreas Schneider <asn@samba.org>
Mon, 14 Mar 2011 16:14:19 +0000 (17:14 +0100)
committerSimo Sorce <idra@samba.org>
Wed, 23 Mar 2011 16:19:22 +0000 (17:19 +0100)
source3/rpc_server/rpc_ep_setup.c

index 3731915a60e55aedc10d1284eff8013b700c9083..19eba17ef589c5bd120f81acbb70fd9252007fb6 100644 (file)
@@ -45,6 +45,7 @@
 
 #include "rpc_server/rpc_ep_setup.h"
 #include "rpc_server/rpc_server.h"
+#include "rpc_server/epmapper/srv_epmapper.h"
 
 struct dcesrv_ep_context {
        struct tevent_context *ev_ctx;
@@ -285,6 +286,13 @@ static bool epmapper_init_cb(void *ptr)
        return false;
 }
 
+static bool epmapper_shutdown_cb(void *ptr)
+{
+       srv_epmapper_cleanup();
+
+       return true;
+}
+
 static bool winreg_init_cb(void *ptr)
 {
        struct dcesrv_ep_context *ep_ctx =
@@ -1202,7 +1210,7 @@ bool dcesrv_ep_setup(struct tevent_context *ev_ctx,
                                           "none");
        if (StrCaseCmp(rpcsrv_type, "embedded") == 0) {
                epmapper_cb.init         = epmapper_init_cb;
-               epmapper_cb.shutdown     = NULL;
+               epmapper_cb.shutdown     = epmapper_shutdown_cb;
                epmapper_cb.private_data = ep_ctx;
 
                if (!NT_STATUS_IS_OK(rpc_epmapper_init(&epmapper_cb))) {