ObjFW  Diff

Differences From Artifact [1bb1aecd92]:

To Artifact [f8a99adefe]:


466
467
468
469
470
471
472

473

474
475
476

477
478
479
480

481
482
483
484
485
486
487
466
467
468
469
470
471
472
473
474
475
476
477

478
479
480
481

482
483
484
485
486
487
488
489







+

+


-
+



-
+







	addrIn6->sin6_family = AF_INET6;
#else
	addrIn6->sin6_family = AF_UNSPEC;
#endif
	addrIn6->sin6_port = OFToBigEndian16(port);

	if ((percent = [IPv6 rangeOfString: @"%"].location) != OFNotFound) {
#if defined(HAVE_IF_NAMETOINDEX) || defined(OF_WINDOWS)
		OFString *interface = [IPv6 substringFromIndex: percent + 1];
#endif
		IPv6 = [IPv6 substringToIndex: percent];

#ifdef OF_WINDOWS
#if defined(OF_WINDOWS)
		if (if_nametoindexPtr != NULL)
			addrIn6->sin6_scope_id = if_nametoindexPtr([interface
			    cStringWithEncoding: [OFLocale encoding]]);
#else
#elif defined(HAVE_IF_NAMETOINDEX)
		addrIn6->sin6_scope_id = if_nametoindex(
		    [interface cStringWithEncoding: [OFLocale encoding]]);
#endif
	}

	doubleColon = [IPv6 rangeOfString: @"::"].location;
	if (doubleColon != OFNotFound) {
902
903
904
905
906
907
908

909
910

911
912
913
914
915

916
917
918
919

920
921
922
923

924
925
926
927
928
929
930
904
905
906
907
908
909
910
911
912

913
914
915
916
917

918
919
920
921

922
923
924
925
926
927
928
929
930
931
932
933
934







+

-
+




-
+



-
+




+







			    (first ? @"%x" : @":%x"),
			    (addrIn6->sin6_addr.s6_addr[i] << 8) |
			    addrIn6->sin6_addr.s6_addr[i + 1]];
			first = false;
		}
	}

#if defined(HAVE_IF_INDEXTONAME) || defined(OF_WINDOWS)
	if (addrIn6->sin6_scope_id != 0) {
#ifdef OF_WINDOWS
# ifdef OF_WINDOWS
		char interface[IF_MAX_STRING_SIZE];

		if (if_indextonamePtr != NULL && if_indextonamePtr(
		    addrIn6->sin6_scope_id, interface) != NULL)
#else
# else
		char interface[IF_NAMESIZE];

		if (if_indextoname(addrIn6->sin6_scope_id, interface) != NULL)
#endif
# endif
			[string appendFormat: @"%%%s", interface];
		else
			[string appendFormat: @"%%%u", addrIn6->sin6_scope_id];
	}
#endif

	[string makeImmutable];

	return string;
}

OFString *