]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Some sockaddr_in to sockaddr_storage conversions. They were missed because they came
authorJohn Hay <hay@ntp.org>
Tue, 23 Oct 2001 12:38:35 +0000 (14:38 +0200)
committerJohn Hay <hay@ntp.org>
Tue, 23 Oct 2001 12:38:35 +0000 (14:38 +0200)
after the initial IPv6 port.

bk: 3bd564cbgyHamMYPJOeld9IOQzDfIA

include/ntpd.h
ntpd/ntp_crypto.c
ntpd/ntp_util.c

index 0e05666b23b580cf27a37d9626559e2031b6ffd5..35acc27bea776bfdee8b224a1dc97ab715451d32 100644 (file)
@@ -143,7 +143,7 @@ extern      void    resetmanycast   P((void));
 #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));
@@ -211,7 +211,7 @@ extern      void    record_peer_stats P((struct sockaddr_storage *, int, double, double,
 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 *));
 
 /*
index 462c4251028831cd9fbb657bb2973576554b0085..28b88bc800a2bba54874b62efc9a75c933b5b7a9 100644 (file)
@@ -143,8 +143,8 @@ static      int     crypto_encrypt  P((struct value *, struct value *,
  */
 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 */
@@ -160,8 +160,16 @@ session_key(
         * 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());
index be469a460427571cc4346545b9c77a1b221c1264..b45d76c832634321a84940caf31a1c2af098c0d4 100644 (file)
@@ -648,7 +648,7 @@ record_raw_stats(
  */
 void
 record_crypto_stats(
-       struct sockaddr_in *addr,
+       struct sockaddr_storage *addr,
        const char *text
        )
 {
@@ -678,7 +678,7 @@ record_crypto_stats(
                            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);
        }
 }