+/* --- @p_pingsend@ --- *
+ *
+ * Arguments: @peer *p@ = destination peer
+ * @ping *pg@ = structure to fill in
+ * @unsigned type@ = message type
+ * @unsigned long timeout@ = how long to wait before giving up
+ * @void (*func)(int, void *)@ = callback function
+ * @void *arg@ = argument for callback
+ *
+ * Returns: Zero if successful, nonzero if it failed.
+ *
+ * Use: Sends a ping to a peer. Call @func@ with a nonzero argument
+ * if we get an answer within the timeout, or zero if no answer.
+ */
+
+extern int p_pingsend(peer */*p*/, ping */*pg*/, unsigned /*type*/,
+ unsigned long /*timeout*/,
+ void (*/*func*/)(int, void *), void */*arg*/);
+
+/* --- @p_pingdone@ --- *
+ *
+ * Arguments: @ping *p@ = ping structure
+ * @int rc@ = return code to pass on
+ *
+ * Returns: ---
+ *
+ * Use: Disposes of a ping structure, maybe sending a notification.
+ */
+
+extern void p_pingdone(ping */*p*/, int /*rc*/);
+