after the initial IPv6 port.
bk: 3bd564cbgyHamMYPJOeld9IOQzDfIA
#ifdef OPENSSL
extern void crypto_recv P((struct peer *, struct recvbuf *, int));
extern int crypto_xmit P((struct pkt *, int, u_int32 *, keyid_t, u_int));
-extern keyid_t session_key P((struct sockaddr_in *, struct sockaddr_in *, keyid_t, keyid_t, u_long));
+extern keyid_t session_key P((struct sockaddr_storage *, struct sockaddr_storage *, keyid_t, keyid_t, u_long));
extern void make_keylist P((struct peer *, struct interface *));
extern void key_expire P((struct peer *));
extern void crypto_sign P((void));
extern void record_loop_stats P((double, double, double, double, int));
extern void record_clock_stats P((struct sockaddr_storage *, const char *));
extern void record_raw_stats P((struct sockaddr_storage *, struct sockaddr_storage *, l_fp *, l_fp *, l_fp *, l_fp *));
-extern void record_crypto_stats P((struct sockaddr_in *, const char *));
+extern void record_crypto_stats P((struct sockaddr_storage *, const char *));
extern int sock_hash P((struct sockaddr_storage *));
/*
*/
keyid_t /* returns next key ID */
session_key(
- struct sockaddr_in *srcadr, /* source address */
- struct sockaddr_in *dstadr, /* destination address */
+ struct sockaddr_storage *srcadr, /* source address */
+ struct sockaddr_storage *dstadr, /* destination address */
keyid_t keyno, /* key ID */
keyid_t private, /* private value */
u_long lifetime /* key lifetime */
* Generate the session key and key ID. If the lifetime is
* greater than zero, install the key and call it trusted.
*/
- header[0] = srcadr->sin_addr.s_addr;
- header[1] = dstadr->sin_addr.s_addr;
+ switch(srcadr->ss_family) {
+ case AF_INET:
+ header[0] = ((struct sockaddr_in *)srcadr)->sin_addr.s_addr;
+ header[1] = ((struct sockaddr_in *)dstadr)->sin_addr.s_addr;
+ break;
+ case AF_INET6:
+ /* XXX we need some IPv6 code here! */
+ msyslog(LOG_ERR, "IPv6 crypto code missing");
+ break;
+ }
header[2] = htonl(keyno);
header[3] = htonl(private);
EVP_DigestInit(&ctx, EVP_md5());
*/
void
record_crypto_stats(
- struct sockaddr_in *addr,
+ struct sockaddr_storage *addr,
const char *text
)
{
day, sec, msec, text);
else
fprintf(cryptostats.fp, "%lu %lu.%03lu %s %s\n",
- day, sec, msec, ntoa(addr), text);
+ day, sec, msec, stoa(addr), text);
fflush(cryptostats.fp);
}
}