Sophie

Sophie

distrib > Mandriva > 2008.0 > x86_64 > media > main-backports-src > by-pkgid > 43742945d611736e6e3dda2185b2f9fe > files > 6

proftpd-1.3.1-3mdv2008.0.src.rpm

--- mod_gss-1.3.0/mod_gss.c.in	2006-01-31 20:45:41.000000000 +0100
+++ mod_gss-1.3.0/mod_gss.c.in.oden	2006-10-26 14:08:37.000000000 +0200
@@ -2231,6 +2231,18 @@
 /* Event handlers
  */
 
+#if defined(PR_SHARED_MODULE)
+static void gss_mod_unload_ev(const void *event_data, void *user_data) {
+  if (strcmp("mod_gss.c", (const char *) event_data) == 0) {
+    /* Unregister ourselves from all events. */
+    pr_event_unregister(&gss_module, NULL, NULL);
+
+    /* Unregister our NetIO handler for the control channel. */
+    pr_unregister_netio(PR_NETIO_STRM_CTRL);
+  }
+}
+#endif /* PR_SHARED_MODULE */
+
 static void gss_postparse_ev(const void *event_data, void *user_data) {
     server_rec *s = NULL;
     int           res = 0;
@@ -2338,6 +2350,10 @@
     pr_feat_add("CONF");
     pr_feat_add("CCC");
 
+#if defined(PR_SHARED_MODULE)
+    pr_event_register(&gss_module, "core.module-unload", gss_mod_unload_ev, NULL);
+#endif /* PR_SHARED_MODULE */
+
     pr_event_register(&gss_module, "core.postparse", gss_postparse_ev, NULL);
     pr_event_register(&gss_module, "core.restart", gss_restart_ev, NULL);