示例#1
0
TEST(SocketAddress, SetFromStrings) {
  TSocketAddress addr;

  // Set from a numeric port string
  addr.setFromLocalPort("1234");
  EXPECT_EQ(addr.getPort(), 1234);

  // setFromLocalPort() should not accept service names
  EXPECT_THROW(addr.setFromLocalPort("http"), TTransportException);

  // Call setFromLocalIpPort() with just a port, no IP
  addr.setFromLocalIpPort("80");
  EXPECT_EQ(addr.getPort(), 80);

  // Call setFromLocalIpPort() with an IP and port.
  addr.setFromLocalIpPort("127.0.0.1:4321");
  EXPECT_EQ(addr.getAddressStr(), "127.0.0.1");
  EXPECT_EQ(addr.getPort(), 4321);

  // setFromIpPort() without an address should fail
  EXPECT_THROW(addr.setFromIpPort("4321"), TTransportException);

  // Call setFromIpPort() with an IPv6 address and port
  addr.setFromIpPort("2620:0:1cfe:face:b00c::3:65535");
  EXPECT_EQ(addr.getFamily(), AF_INET6);
  EXPECT_EQ(addr.getAddressStr(), "2620:0:1cfe:face:b00c::3");
  EXPECT_EQ(addr.getPort(), 65535);

  // Call setFromIpPort() with an IPv4 address and port
  addr.setFromIpPort("1.2.3.4:9999");
  EXPECT_EQ(addr.getFamily(), AF_INET);
  EXPECT_EQ(addr.getAddressStr(), "1.2.3.4");
  EXPECT_EQ(addr.getPort(), 9999);
}
示例#2
0
TEST(SSLUtilsTest, ValidatePeerCertNamesIPSanityTest) {
  X509Cert cert("thrift/lib/cpp/test/ssl/tests-cert.pem");
  TSocketAddress addr;

  addr.setFromIpPort("127.0.0.1", 1);
  EXPECT_TRUE(OpenSSLUtils::validatePeerCertNames(
                  cert.getX509(), addr.getAddress(), addr.getActualSize()));
  addr.setFromIpPort("::1", 1);
  EXPECT_TRUE(OpenSSLUtils::validatePeerCertNames(
                  cert.getX509(), addr.getAddress(), addr.getActualSize()));
  addr.setFromIpPort("127.0.0.2", 1);
  EXPECT_FALSE(OpenSSLUtils::validatePeerCertNames(
                   cert.getX509(), addr.getAddress(), addr.getActualSize()));
  addr.setFromIpPort("::2", 1);
  EXPECT_FALSE(OpenSSLUtils::validatePeerCertNames(
                   cert.getX509(), addr.getAddress(), addr.getActualSize()));
}
示例#3
0
TEST(SocketAddress, SetFromIpv4) {
  TSocketAddress addr;
  addr.setFromIpPort("255.254.253.252", 8888);
  EXPECT_EQ(addr.getFamily(), AF_INET);
  EXPECT_EQ(addr.getAddressStr(), "255.254.253.252");
  EXPECT_EQ(addr.getPort(), 8888);
  sockaddr_storage addrStorage;
  addr.getAddress(&addrStorage);
  const sockaddr_in* inaddr = reinterpret_cast<sockaddr_in*>(&addrStorage);
  EXPECT_EQ(inaddr->sin_addr.s_addr, htonl(0xfffefdfc));
  EXPECT_EQ(inaddr->sin_port, htons(8888));
}
示例#4
0
TEST(SocketAddress, IPv4ToStringConversion) {
  // testing addresses *.5.5.5, 5.*.5.5, 5.5.*.5, 5.5.5.*
  TSocketAddress addr;
  for (int pos = 0; pos < 4; ++pos) {
    for (int i = 0; i < 256; ++i) {
      int fragments[] = {5,5,5,5};
      fragments[pos] = i;
      std::ostringstream ss;
      ss << fragments[0] << "." << fragments[1] << "."
         << fragments[2] << "." << fragments[3];
      string ipString = ss.str();
      addr.setFromIpPort(ipString, 1234);
      EXPECT_EQ(addr.getAddressStr(), ipString);
    }
  }
}