struct ping *pings; /* Pings we're waiting for */
peerspec spec; /* Specifications for this peer */
tunnel *t; /* Tunnel for local packets */
+ char *ifname; /* Interface name for tunnel */
keyset *ks; /* List head for keysets */
buf b; /* Buffer for sending packets */
stats st; /* Statistics */
extern void a_quit(void);
+/* --- @a_preselect@ --- *
+ *
+ * Arguments: ---
+ *
+ * Returns: ---
+ *
+ * Use: Informs the admin module that we're about to select again,
+ * and that it should do cleanup things it has delayed until a
+ * `safe' time.
+ */
+
+extern void a_preselect(void);
+
/* --- @a_daemon@ --- *
*
* Arguments: ---
extern const char *p_ifname(peer */*p*/);
+/* --- @p_setifname@ --- *
+ *
+ * Arguments: @peer *p@ = pointer to a peer block
+ * @const char *name@ = pointer to the new name
+ *
+ * Returns: ---
+ *
+ * Use: Changes the name held for a peer's interface.
+ */
+
+extern void p_setifname(peer */*p*/, const char */*name*/);
+
/* --- @p_addr@ --- *
*
* Arguments: @peer *p@ = pointer to a peer block
extern int seq_check(seqwin */*s*/, uint32 /*q*/, const char */*service*/);
+/* --- @versioncmp@ --- *
+ *
+ * Arguments: @const char *va, *vb@ = two version strings
+ *
+ * Returns: Less than, equal to, or greater than zero, according to
+ * whether @va@ is less than, equal to, or greater than @vb@.
+ *
+ * Use: Compares version number strings.
+ *
+ * The algorithm is an extension of the Debian version
+ * comparison algorithm. A version number consists of three
+ * components:
+ *
+ * [EPOCH :] MAIN [- SUB]
+ *
+ * The MAIN part may contain colons or hyphens if there is an
+ * EPOCH or SUB, respectively. Version strings are compared
+ * componentwise: first epochs, then main parts, and finally
+ * subparts.
+ *
+ * The component comparison is done as follows. First, the
+ * initial subsequence of nondigit characters is extracted from
+ * each string, and these are compared lexicographically, using
+ * ASCII ordering, except that letters precede non-letters. If
+ * both are the same, an initial sequence of digits is extracted
+ * from the remaining parts of the version strings, and these
+ * are compared numerically (an empty sequence being considered
+ * to have the value zero). This process is repeated until we
+ * have a winner or until both strings are exhausted.
+ */
+
+extern int versioncmp(const char */*va*/, const char */*vb*/);
+
/*----- That's all, folks -------------------------------------------------*/
#ifdef __cplusplus