@@ -1153,6 +1153,98 @@ void MCS_secure_socket(MCSocket *s, Boolean sslverify, MCNameRef end_hostname)
11531153
11541154bool MCS_hostaddress (MCStringRef &r_host_address)
11551155{
1156+ #if defined(_MACOSX)
1157+ bool t_success;
1158+ t_success = true ;
1159+
1160+ SCDynamicStoreRef t_store;
1161+ t_store = NULL ;
1162+ if (t_success)
1163+ {
1164+ t_store = SCDynamicStoreCreate (kCFAllocatorDefault , CFSTR (" JSEvaluator" ), NULL , NULL );
1165+ if (t_store == NULL )
1166+ t_success = false ;
1167+ }
1168+
1169+ CFStringRef t_network_key;
1170+ t_network_key = NULL ;
1171+ if (t_success)
1172+ {
1173+ t_network_key = SCDynamicStoreKeyCreateNetworkGlobalEntity (kCFAllocatorDefault , kSCDynamicStoreDomainState , kSCEntNetIPv4 );
1174+ if (t_network_key == NULL )
1175+ t_success = false ;
1176+ }
1177+
1178+ CFDictionaryRef t_network_value;
1179+ t_network_value = NULL ;
1180+ if (t_success)
1181+ {
1182+ t_network_value = (CFDictionaryRef)SCDynamicStoreCopyValue (t_store, t_network_key);
1183+ if (t_network_value == NULL )
1184+ t_success = false ;
1185+ }
1186+
1187+ CFStringRef t_interface;
1188+ t_interface = NULL ;
1189+ if (t_success)
1190+ {
1191+ t_interface = (CFStringRef)CFDictionaryGetValue (t_network_value, kSCDynamicStorePropNetPrimaryInterface );
1192+ if (t_interface == NULL )
1193+ t_success = false ;
1194+ }
1195+
1196+ CFStringRef t_interface_key;
1197+ t_interface_key = NULL ;
1198+ if (t_success)
1199+ {
1200+ t_interface_key = (CFStringRef)SCDynamicStoreKeyCreateNetworkInterfaceEntity (kCFAllocatorDefault , kSCDynamicStoreDomainState , t_interface, kSCEntNetIPv4 );
1201+ if (t_interface_key == NULL )
1202+ t_success = false ;
1203+ }
1204+
1205+ CFDictionaryRef t_interface_value;
1206+ t_interface_value = NULL ;
1207+ if (t_success)
1208+ {
1209+ t_interface_value = (CFDictionaryRef)SCDynamicStoreCopyValue (t_store, t_interface_key);
1210+ if (t_interface_value == NULL )
1211+ t_success = false ;
1212+ }
1213+
1214+ char *t_result;
1215+ t_result = NULL ;
1216+ if (t_success)
1217+ {
1218+ CFArrayRef t_addresses;
1219+ t_addresses = (CFArrayRef)CFDictionaryGetValue (t_interface_value, CFSTR (" Addresses" ));
1220+ if (t_addresses != NULL )
1221+ {
1222+ CFStringRef t_string;
1223+ t_string = (CFStringRef)CFArrayGetValueAtIndex (t_addresses, 0 );
1224+ if (t_string != NULL )
1225+ t_result = osx_cfstring_to_cstring (t_string, false , false );
1226+ }
1227+ }
1228+
1229+ if (t_interface_value != NULL )
1230+ CFRelease (t_interface_value);
1231+
1232+ if (t_interface_key != NULL )
1233+ CFRelease (t_interface_key);
1234+
1235+ if (t_network_value != NULL )
1236+ CFRelease (t_network_value);
1237+
1238+ if (t_network_key != NULL )
1239+ CFRelease (t_network_key);
1240+
1241+ if (t_store != NULL )
1242+ CFRelease (t_store);
1243+
1244+ return MCStringCreateWithCString (t_result, r_host_address);
1245+
1246+ #else
1247+
11561248#if defined(_WINDOWS)
11571249 if (!wsainit ())
11581250 return NULL ;
@@ -1174,102 +1266,13 @@ bool MCS_hostaddress(MCStringRef &r_host_address)
11741266 }
11751267 }
11761268 }
1177- #elif defined(_MACOSX)
1178- bool t_success;
1179- t_success = true ;
11801269
1181- SCDynamicStoreRef t_store;
1182- t_store = NULL ;
1183- if (t_success)
1184- {
1185- t_store = SCDynamicStoreCreate (kCFAllocatorDefault , CFSTR (" JSEvaluator" ), NULL , NULL );
1186- if (t_store == NULL )
1187- t_success = false ;
1188- }
1189-
1190- CFStringRef t_network_key;
1191- t_network_key = NULL ;
1192- if (t_success)
1193- {
1194- t_network_key = SCDynamicStoreKeyCreateNetworkGlobalEntity (kCFAllocatorDefault , kSCDynamicStoreDomainState , kSCEntNetIPv4 );
1195- if (t_network_key == NULL )
1196- t_success = false ;
1197- }
1198-
1199- CFDictionaryRef t_network_value;
1200- t_network_value = NULL ;
1201- if (t_success)
1202- {
1203- t_network_value = (CFDictionaryRef)SCDynamicStoreCopyValue (t_store, t_network_key);
1204- if (t_network_value == NULL )
1205- t_success = false ;
1206- }
1207-
1208- CFStringRef t_interface;
1209- t_interface = NULL ;
1210- if (t_success)
1211- {
1212- t_interface = (CFStringRef)CFDictionaryGetValue (t_network_value, kSCDynamicStorePropNetPrimaryInterface );
1213- if (t_interface == NULL )
1214- t_success = false ;
1215- }
1216-
1217- CFStringRef t_interface_key;
1218- t_interface_key = NULL ;
1219- if (t_success)
1220- {
1221- t_interface_key = (CFStringRef)SCDynamicStoreKeyCreateNetworkInterfaceEntity (kCFAllocatorDefault , kSCDynamicStoreDomainState , t_interface, kSCEntNetIPv4 );
1222- if (t_interface_key == NULL )
1223- t_success = false ;
1224- }
1225-
1226- CFDictionaryRef t_interface_value;
1227- t_interface_value = NULL ;
1228- if (t_success)
1229- {
1230- t_interface_value = (CFDictionaryRef)SCDynamicStoreCopyValue (t_store, t_interface_key);
1231- if (t_interface_value == NULL )
1232- t_success = false ;
1233- }
1234-
1235- char *t_result;
1236- t_result = NULL ;
1237- if (t_success)
1238- {
1239- CFArrayRef t_addresses;
1240- t_addresses = (CFArrayRef)CFDictionaryGetValue (t_interface_value, CFSTR (" Addresses" ));
1241- if (t_addresses != NULL )
1242- {
1243- CFStringRef t_string;
1244- t_string = (CFStringRef)CFArrayGetValueAtIndex (t_addresses, 0 );
1245- if (t_string != NULL )
1246- t_result = osx_cfstring_to_cstring (t_string, false , false );
1247- }
1248- }
1249-
1250- if (t_interface_value != NULL )
1251- CFRelease (t_interface_value);
1252-
1253- if (t_interface_key != NULL )
1254- CFRelease (t_interface_key);
1255-
1256- if (t_network_value != NULL )
1257- CFRelease (t_network_value);
1258-
1259- if (t_network_key != NULL )
1260- CFRelease (t_network_key);
1261-
1262- if (t_store != NULL )
1263- CFRelease (t_store);
1264-
1265- return MCStringCreateWithCString (t_result, r_host_address);
1266-
1267- #elif defined(_LINUX)
1268- #else
12691270#endif
12701271
12711272 r_host_address = MCValueRetain (kMCEmptyString );
12721273 return true ;
1274+
1275+ #endif
12731276}
12741277
12751278// //////////////////////////////////////////////////////////////////////////////
0 commit comments