/* -*-c-*-
*
- * $Id: tripe.h,v 1.12 2003/04/06 10:25:17 mdw Exp $
+ * $Id: tripe.h,v 1.15 2003/05/16 12:09:03 mdw Exp $
*
* Main header file for TrIPE
*
/*----- Revision history --------------------------------------------------*
*
* $Log: tripe.h,v $
+ * Revision 1.15 2003/05/16 12:09:03 mdw
+ * Allow binding to a chosen address.
+ *
+ * Revision 1.14 2003/04/06 10:36:33 mdw
+ * Rearrange so as not to include Linux headers unless we need to.
+ *
+ * Revision 1.13 2003/04/06 10:26:35 mdw
+ * Report peer name on decrypt errors.
+ *
* Revision 1.12 2003/04/06 10:25:17 mdw
* Support Linux TUN/TAP device. Fix some bugs.
*
#include <arpa/inet.h>
#include <netdb.h>
-#if TUN_TYPE == TUN_LINUX
-# include <linux/if.h>
-# include <linux/if_tun.h>
-#endif
-
#include <pwd.h>
#include <grp.h>
typedef struct keyset {
struct keyset *next; /* Next active keyset in the list */
unsigned ref; /* Reference count for keyset */
+ struct peer *p; /* Pointer to peer structure */
time_t t_exp; /* Expiry time for this keyset */
unsigned long sz_exp; /* Data limit for the keyset */
T( unsigned seq; ) /* Sequence number for tracing */
* Used to maintain system-specific information about the tunnel interface.
*/
+#if TUN_TYPE == TUN_LINUX
+# include <linux/if.h>
+# include <linux/if_tun.h>
+#endif
+
typedef struct tunnel {
#if TUN_TYPE == TUN_UNET
sel_file f; /* Selector for Usernet device */
*
* Arguments: @const void *k@ = pointer to key material
* @size_t x, y, z@ = offsets into key material (see below)
+ * @peer *p@ = pointer to peer information
*
* Returns: A pointer to the new keyset.
*
*/
extern keyset *ks_gen(const void */*k*/,
- size_t /*x*/, size_t /*y*/, size_t /*z*/);
+ size_t /*x*/, size_t /*y*/, size_t /*z*/,
+ peer */*p*/);
/* --- @ks_tregen@ --- *
*
/* --- @p_init@ --- *
*
- * Arguments: @unsigned port@ = port number to listen to
+ * Arguments: @struct in_addr addr@ = address to bind to
+ * @unsigned port@ = port number to listen to
*
* Returns: ---
*
* Use: Initializes the peer system; creates the socket.
*/
-extern void p_init(unsigned /*port*/);
+extern void p_init(struct in_addr /*addr*/, unsigned /*port*/);
/* --- @p_port@ --- *
*