示例#1
0
TEST(AsyncSocketTest, v4v6samePort) {
  EventBase base;
  auto serverSocket = AsyncServerSocket::newSocket(&base);
  serverSocket->bind(0);
  auto addrs = serverSocket->getAddresses();
  ASSERT_GT(addrs.size(), 0);
  uint16_t port = addrs[0].getPort();
  for (const auto& addr : addrs) {
    EXPECT_EQ(port, addr.getPort());
  }
}
示例#2
0
文件: Utils.cpp 项目: HengWang/fboss
IPAddressV6 getSwitchVlanIPv6(const std::shared_ptr<SwitchState>& state,
                              VlanID vlan) {
  IPAddressV6 switchIp;
  auto vlanInterface = state->getInterfaces()->getInterfaceInVlanIf(vlan);
  auto& addresses = vlanInterface->getAddresses();
  for (const auto& address: addresses) {
    if (address.first.isV6()) {
      switchIp = address.first.asV6();
      return switchIp;
    }
  }
  throw FbossError("Cannot find IPv6 address for vlan ", vlan);
}
示例#3
0
LRESULT ProtocolPage::onInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
    SettingTab::translate((HWND)(*this), texts);

    cAutoDetect.Attach(GetDlgItem(IDC_CONNECTION_DETECTION));
    SetDlgItemText(IDC_PROTOCOL_ENABLED, CTSTRING_F(ENABLE_CONNECTIVITY, (v6 ? "IPv6" : "IPv4")));

    auto mode = v6 ? SETTING(INCOMING_CONNECTIONS6) : SETTING(INCOMING_CONNECTIONS);
    if (mode == SettingsManager::INCOMING_DISABLED) {
        CheckDlgButton(IDC_PROTOCOL_ENABLED, BST_UNCHECKED);
        CheckDlgButton(IDC_ACTIVE, BST_CHECKED);
    } else {
        CheckDlgButton(IDC_PROTOCOL_ENABLED, BST_CHECKED);
        switch(mode) {
        case SettingsManager::INCOMING_ACTIVE:
            CheckDlgButton(IDC_ACTIVE, BST_CHECKED);
            break;
        case SettingsManager::INCOMING_ACTIVE_UPNP:
            CheckDlgButton(IDC_ACTIVE_UPNP, BST_CHECKED);
            break;
        case SettingsManager::INCOMING_PASSIVE:
            CheckDlgButton(IDC_PASSIVE, BST_CHECKED);
            break;
        default:
            CheckDlgButton(IDC_ACTIVE, BST_CHECKED);
            break;
        }
    }

    SettingTab::read((HWND)(*this), v6 ? items6 : items4);

    fixControls();

    // Bind address
    BindCombo.Attach(GetDlgItem(IDC_BIND_ADDRESS));
    getAddresses();

    return TRUE;
}
示例#4
0
bool Interface::canReachAddress(const folly::IPAddress& dest) const {
  return getAddressToReach(dest) != getAddresses().end();
}