* mtcpnet.c - MacTCP interface
*/
+#if !TARGET_API_MAC_CARBON
+
#include <MacTypes.h>
#include <Devices.h>
#include <Endian.h>
typedef STACK_UPP_TYPE(AddrToStrProcPtr) AddrToStrUPP;
enum { uppAddrToStrProcInfo = kCStackBased
| RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(unsigned long)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(char *)))
+ | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(UInt32)))
+ | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned long)))
+ | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(char *)))
};
#define InvokeAddrToStrUPP(selector, addr, addrStr, userUPP) \
CALL_THREE_PARAMETER_UPP((userUPP), uppAddrToStrProcInfo, (selector),\
OSErr err;
volatile int done = FALSE;
char *realhost;
+ int realhostlen;
/* Clear the structure. */
memset(ret, 0, sizeof(struct SockAddr_tag));
continue;
ret->resolved = TRUE;
- if (ret->hostinfo.rtnCode == noErr)
+ if (ret->hostinfo.rtnCode == noErr) {
realhost = ret->hostinfo.cname;
- else
+ /* MacTCP puts trailing dots on canonical names. */
+ realhostlen = strlen(realhost);
+ if (realhost[realhostlen - 1] == '.')
+ realhost[realhostlen - 1] = '\0';
+ } else
realhost = "";
*canonicalname = smalloc(1+strlen(realhost));
strcpy(*canonicalname, realhost);
return noErr;
}
-/* MacTCP doesn't have a services database. */
-int net_service_lookup(char *service)
-{
-
- return 0;
-}
-
+#endif
/*
* Local Variables: