예제 #1
0
파일: IoSocket.c 프로젝트: BMeph/io
IoObject *IoMessage_locals_addressArgAt_(IoMessage *self, IoObject *locals, int n)
{
	IoObject *v = IoMessage_locals_valueArgAt_(self, locals, n);

	if(ISIPADDRESS(v))
	{
		return v;
	}
#if !defined(_WIN32) || defined(__CYGWIN__)
	else if(ISUNIXPATH(v))
	{
		return v;
	}
#endif
	else
	{
#if !defined(_WIN32) || defined(__CYGWIN__)
		char *type = "IPAddress or UnixPath";
#else
		char *type = "IPAddress";
#endif
		IoMessage_locals_numberArgAt_errorForType_(self, locals, n, type);
	}
	
	return IONIL(self);
}
예제 #2
0
파일: IoIPAddress.c 프로젝트: cdcarter/io
IoIPAddress *IoMessage_locals_addressArgAt_(IoMessage *self, IoObject *locals, int n)
{
	IoObject *v = IoMessage_locals_valueArgAt_(self, locals, n);

	if (!ISIPADDRESS(v))
	{
		IoMessage_locals_numberArgAt_errorForType_(self, locals, n, "IPAddress");
	}

	return v;
}
예제 #3
0
파일: IoSocket.c 프로젝트: BMeph/io
Address *IoSocket_rawAddressFrom_(IoObject *addr)
{
	Address *self = NULL;
	
	if(ISIPADDRESS(addr)) {
		IPAddress *ipAddr = (IPAddress *)IoObject_dataPointer(addr);
		self = ipAddr->addr;
	}
#if !defined(_WIN32) || defined(__CYGWIN__)
	else if(ISUNIXPATH(addr)) {
		UnixPath *unixPath = (UnixPath *)IoObject_dataPointer(addr);
		self = unixPath->addr;
	}
#endif

	return self;
}