jcs
/subtext
/amendments
/488
dnr: Don't require a pointer to a pointer for DNSResolveName
Also provide a default yielder if none provided
    jcs made amendment 488 over 2 years ago
--- dnr.c	Wed Apr 19 09:12:18 2023
+++ dnr.c	Sat Apr 22 16:16:18 2023
@@ -309,7 +309,7 @@ MXInfo(char *hostName, struct returnRec *returnRecPtr,
 #endif
 
 OSErr
-DNSResolveName(char **name, unsigned long *ipAddress, void (*yielder)(void))
+DNSResolveName(char *name, unsigned long *ipAddress, void (*yielder)(void))
 {
 	OSErr osErr;
 	struct hostInfo aHostInfo;
@@ -319,14 +319,16 @@ DNSResolveName(char **name, unsigned long *ipAddress, 
 	if (osErr)
 		return osErr;
 	
-	osErr = StrToAddr(*name, &aHostInfo, (ResultProcPtr)StrToAddrMarkDone,
+	osErr = StrToAddr(name, &aHostInfo, (ResultProcPtr)StrToAddrMarkDone,
 	  (char *)&done);
 	
 	if (osErr == cacheFault) {
 		/* StrToAddrMarkDone will set done when DNS resolution finishes */
 		while (!done) {
-			if (yielder != NULL)
+			if (yielder)
 				yielder();
+			else
+				SystemTask();
 		}
 	}
 	
--- tcp.h	Wed Mar  8 10:07:09 2023
+++ tcp.h	Sat Apr 22 16:15:40 2023
@@ -59,7 +59,7 @@ OSErr _UDPSend(UDPiopb *pb, StreamPtr stream, wdsEntry
 OSErr _UDPRelease(UDPiopb *pb, StreamPtr stream, Ptr userData,
   UDPIOCompletionProc ioCompletion, Boolean async);
 
-OSErr DNSResolveName(char **name, unsigned long *ipAddress,
+OSErr DNSResolveName(char *name, unsigned long *ipAddress,
   void (*yielder)(void));
 pascal void StrToAddrMarkDone(struct hostInfo *hi, char *data);