676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
|
OF_HASH_FINALIZE(hash);
return hash;
}
static OFString *
IPv4AddressString(const OFSocketAddress *address)
{
const struct sockaddr_in *addrIn = &address->sockaddr.in;
uint32_t addr = OF_BSWAP32_IF_LE(addrIn->sin_addr.s_addr);
OFString *string;
string = [OFString stringWithFormat: @"%u.%u.%u.%u",
(addr & 0xFF000000) >> 24, (addr & 0x00FF0000) >> 16,
(addr & 0x0000FF00) >> 8, addr & 0x000000FF];
return string;
}
static OFString *
IPv6AddressString(const OFSocketAddress *address)
{
OFMutableString *string = [OFMutableString string];
const struct sockaddr_in6 *addrIn6 = &address->sockaddr.in6;
int_fast8_t zerosStart = -1, maxZerosStart = -1;
uint_fast8_t zerosCount = 0, maxZerosCount = 0;
bool first = true;
|
|
|
|
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
|
OF_HASH_FINALIZE(hash);
return hash;
}
static OFString *
IPv4String(const OFSocketAddress *address)
{
const struct sockaddr_in *addrIn = &address->sockaddr.in;
uint32_t addr = OF_BSWAP32_IF_LE(addrIn->sin_addr.s_addr);
OFString *string;
string = [OFString stringWithFormat: @"%u.%u.%u.%u",
(addr & 0xFF000000) >> 24, (addr & 0x00FF0000) >> 16,
(addr & 0x0000FF00) >> 8, addr & 0x000000FF];
return string;
}
static OFString *
IPv6String(const OFSocketAddress *address)
{
OFMutableString *string = [OFMutableString string];
const struct sockaddr_in6 *addrIn6 = &address->sockaddr.in6;
int_fast8_t zerosStart = -1, maxZerosStart = -1;
uint_fast8_t zerosCount = 0, maxZerosCount = 0;
bool first = true;
|
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
|
}
OFString *
OFSocketAddressString(const OFSocketAddress *address)
{
switch (address->family) {
case OFSocketAddressFamilyIPv4:
return IPv4AddressString(address);
case OFSocketAddressFamilyIPv6:
return IPv6AddressString(address);
default:
@throw [OFInvalidArgumentException exception];
}
}
void
OFSocketAddressSetPort(OFSocketAddress *address, uint16_t port)
|
|
|
|
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
|
}
OFString *
OFSocketAddressString(const OFSocketAddress *address)
{
switch (address->family) {
case OFSocketAddressFamilyIPv4:
return IPv4String(address);
case OFSocketAddressFamilyIPv6:
return IPv6String(address);
default:
@throw [OFInvalidArgumentException exception];
}
}
void
OFSocketAddressSetPort(OFSocketAddress *address, uint16_t port)
|