server/keymgmt.c, server/tripe.c: Add `km_clear' to shut down keyrings.
[tripe] / server / tripe.h
index bd70bb8..b062b36 100644 (file)
@@ -859,6 +859,20 @@ extern void km_init(const char */*privkr*/, const char */*pubkr*/,
 
 extern int km_reload(void);
 
+/* --- @km_clear@ --- *
+ *
+ * Arguments:  ---
+ *
+ * Returns:    ---
+ *
+ * Use:                Forget the currently loaded keyrings.  The @master@ key will
+ *             be cleared, but other keys already loaded will continue to
+ *             exist until their reference count drops to zero.  Call
+ *             @km_init@ to make everything work again.
+ */
+
+extern void km_clear(void);
+
 /* --- @km_findpub@, @km_findpriv@ --- *
  *
  * Arguments:  @const char *tag@ = key tag to load
@@ -1307,17 +1321,6 @@ extern void EXECL_LIKE(0) a_notify(const char */*fmt*/, ...);
 
 extern void a_create(int /*fd_in*/, int /*fd_out*/, unsigned /*f*/);
 
-/* --- @a_quit@ --- *
- *
- * Arguments:  ---
- *
- * Returns:    ---
- *
- * Use:                Shuts things down nicely.
- */
-
-extern void a_quit(void);
-
 /* --- @a_preselect@ --- *
  *
  * Arguments:  ---
@@ -1357,6 +1360,17 @@ extern void a_daemon(void);
 extern void a_listen(const char */*sock*/,
                     uid_t /*u*/, gid_t /*g*/, mode_t /*m*/);
 
+/* --- @a_unlisten@ --- *
+ *
+ * Arguments:  ---
+ *
+ * Returns:    ---
+ *
+ * Use:                Stops listening to the administration socket and removes it.
+ */
+
+extern void a_unlisten(void);
+
 /* --- @a_switcherr@ --- *
  *
  * Arguments:  ---
@@ -1698,6 +1712,18 @@ extern const addr *p_addr(peer */*p*/);
 
 extern void p_bind(struct addrinfo */*ailist*/);
 
+/* --- @p_unbind@ --- *
+ *
+ * Arguments:  ---
+ *
+ * Returns:    ---
+ *
+ * Use:                Unbinds the UDP sockets.  There must not be any active peers,
+ *             and none can be created until the sockets are rebound.
+ */
+
+extern void p_unbind(void);
+
 /* --- @p_init@ --- *
  *
  * Arguments:  ---
@@ -1793,6 +1819,17 @@ extern peer *p_find(const char */*name*/);
 
 extern void p_destroy(peer */*p*/, int /*bye*/);
 
+/* --- @p_destroyall@ --- *
+ *
+ * Arguments:  ---
+ *
+ * Returns:    ---
+ *
+ * Use:                Destroys all of the peers, saying goodbye.
+ */
+
+extern void p_destroyall(void);
+
 /* --- @FOREACH_PEER@ --- *
  *
  * Arguments:  @p@ = name to bind to each peer
@@ -1869,6 +1906,17 @@ extern void iv_rmreason(void);
 
 extern void lp_init(void);
 
+/* --- @lp_end@ --- *
+ *
+ * Arguments:  ---
+ *
+ * Returns:    ---
+ *
+ * Use:                Requests an exit from the main loop.
+ */
+
+extern void lp_end(void);
+
 /* --- @lp_run@ --- *
  *
  * Arguments:  ---