Navigation


Changeset 1414:f6f12521c2aa in freeDiameter for tests


Ignore:
Timestamp:
Feb 18, 2020, 5:01:49 PM (4 years ago)
Author:
Luke Mewburn <luke@mewburn.net>
Branch:
default
Phase:
public
committer:
Luke Mewburn <luke@mewburn.net> 1582020002 -39600
Message:

Fix strict-aliasing warnings with gcc 4.8

Rewrite IN6_ADDR_V4MAP() to not rely upon aliasing rules.
Add test for IN6_ADDR_V4MAP() and IN6_ADDR_V4UNMAP().

Rewrite MD5Final() to not rely upon aliasing rules. (Not tested)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/testmesg.c

    r1300 r1414  
    14491449                }
    14501450        }
     1451
     1452        /* Check IPv4 -> IPv6 and IPv6->IPv4 mapping */
     1453        {
     1454                struct in_addr i4;
     1455                memset(&i4, 0xff, sizeof(i4));
     1456                CHECK( 1, inet_pton( AF_INET, TEST_IP4, &i4 ) );
     1457
     1458                #define TEST_IP6MAP "::ffff:" TEST_IP4
     1459
     1460                struct in6_addr i6;
     1461                memset(&i6, 0xff, sizeof(i6));
     1462                IN6_ADDR_V4MAP(&i6.s6_addr, i4.s_addr);
     1463                char buf6[INET6_ADDRSTRLEN];
     1464                CHECK( 0, (inet_ntop( AF_INET6, &i6, buf6, sizeof(buf6) ) == NULL) ? errno : 0 );
     1465                LOG_D("buf6='%s'", buf6);
     1466                CHECK( 0, strcasecmp( buf6, TEST_IP6MAP ) );
     1467
     1468                struct in_addr o4;
     1469                o4.s_addr = IN6_ADDR_V4UNMAP(&i6);
     1470                char buf4[INET_ADDRSTRLEN];
     1471                CHECK( 0, (inet_ntop( AF_INET, &o4.s_addr, buf4, sizeof(buf4) ) == NULL) ? errno : 0 );
     1472                CHECK( 0, strcmp( buf4, TEST_IP4 ) );
     1473        }
    14511474       
    14521475        /* That's all for the tests yet */
Note: See TracChangeset for help on using the changeset viewer.