Index: src/OFSocket.h ================================================================== --- src/OFSocket.h +++ src/OFSocket.h @@ -288,11 +288,11 @@ /** * @brief Converts the specified @ref OFSocketAddress to a string. * * @param address The address to convert to a string - * @return The address as an IP string + * @return The address as an IP string, without the port */ extern OFString *_Nonnull OFSocketAddressString( const OFSocketAddress *_Nonnull address); /** Index: src/OFSocket.m ================================================================== --- src/OFSocket.m +++ src/OFSocket.m @@ -906,19 +906,30 @@ [string makeImmutable]; return string; } + +static OFString * +appleTalkString(const OFSocketAddress *address) +{ + const struct sockaddr_at *addrAT = &address->sockaddr.at; + + return [OFString stringWithFormat: @"%d.%d", + OFFromBigEndian16(addrAT->sat_net), addrAT->sat_node]; +} OFString * OFSocketAddressString(const OFSocketAddress *address) { switch (address->family) { case OFSocketAddressFamilyIPv4: return IPv4String(address); case OFSocketAddressFamilyIPv6: return IPv6String(address); + case OFSocketAddressFamilyAppleTalk: + return appleTalkString(address); default: @throw [OFInvalidArgumentException exception]; } } Index: tests/OFSystemInfoTests.m ================================================================== --- tests/OFSystemInfoTests.m +++ tests/OFSystemInfoTests.m @@ -128,13 +128,14 @@ [OFStdOut writeFormat: @"%@(", name]; if (etherAddr.itemSize == 1 && etherAddr.count == 6) { const unsigned char *addr = etherAddr.items; - [OFStdOut writeFormat: @"%02X:%02X:%02X:%02X:%02X:%02X", - addr[0], addr[1], addr[2], - addr[3], addr[4], addr[5]]; + [OFStdOut writeFormat: + @"MAC=%02X:%02X:%02X:%02X:%02X:%02X", + addr[0], addr[1], addr[2], addr[3], addr[4], + addr[5]]; firstAddress = false; } addrs = [interface objectForKey: OFNetworkInterfaceAddresses]; for (size_t i = 0; i < addrs.count; i++) { @@ -148,10 +149,27 @@ } if (!firstAddress) [OFStdOut writeString: @", "]; firstAddress = nil; + + switch (addr->family) { + case OFSocketAddressFamilyIPv4: + [OFStdOut writeString: @"IPv4="]; + break; + case OFSocketAddressFamilyIPv6: + [OFStdOut writeString: @"IPv6="]; + break; + case OFSocketAddressFamilyIPX: + [OFStdOut writeString: @"IPX="]; + break; + case OFSocketAddressFamilyAppleTalk: + [OFStdOut writeString: @"AppleTalk="]; + break; + default: + [OFStdOut writeString: @"unknown="]; + } [OFStdOut writeString: string]; } [OFStdOut writeString: @")"];