Lines Matching refs:address

89 deBool deSocketAddress_setFamily (deSocketAddress* address, deSocketFamily family)
91 address->family = family;
95 deSocketFamily deSocketAddress_getFamily (const deSocketAddress* address)
97 return address->family;
100 void deSocketAddress_destroy (deSocketAddress* address)
102 deFree(address->host);
103 deFree(address);
106 deBool deSocketAddress_setPort (deSocketAddress* address, int port)
108 address->port = port;
112 int deSocketAddress_getPort (const deSocketAddress* address)
114 return address->port;
117 deBool deSocketAddress_setHost (deSocketAddress* address, const char* host)
119 if (address->host)
121 deFree(address->host);
122 address->host = DE_NULL;
125 address->host = deStrdup(host);
126 return address->host != DE_NULL;
129 const char* deSocketAddress_getHost (const deSocketAddress* address)
131 return address->host;
135 deBool deSocketAddress_setType (deSocketAddress* address, deSocketType type)
137 address->type = type;
141 deSocketType deSocketAddress_getType (const deSocketAddress* address)
143 return address->type;
146 deBool deSocketAddress_setProtocol (deSocketAddress* address, deSocketProtocol protocol)
148 address->protocol = protocol;
152 deSocketProtocol deSocketAddress_getProtocol (const deSocketAddress* address)
154 return address->protocol;
280 static deBool deSocketAddressToBsdAddress (const deSocketAddress* address, size_t bsdAddrBufSize, struct sockaddr* bsdAddr, NativeSocklen* bsdAddrLen)
285 if (address->host != DE_NULL)
291 hints.ai_family = deSocketFamilyToBsdFamily(address->family);
292 hints.ai_socktype = deSocketTypeToBsdType(address->type);
293 hints.ai_protocol = deSocketProtocolToBsdProtocol(address->protocol);
295 if (getaddrinfo(address->host, DE_NULL, &hints, &result) != 0 || !result)
302 /* \note Always uses first address. */
321 ((struct sockaddr_in*)bsdAddr)->sin_port = deHostToNetworkOrder16((deUint16)address->port);
327 ((struct sockaddr_in6*)bsdAddr)->sin6_port = deHostToNetworkOrder16((deUint16)address->port);
334 else if (address->family == DE_SOCKETFAMILY_INET4)
344 addr4->sin_port = deHostToNetworkOrder16((deUint16)address->port);
352 else if (address->family == DE_SOCKETFAMILY_INET6)
362 addr6->sin6_port = deHostToNetworkOrder16((deUint16)address->port);
373 void deBsdAddressToSocketAddress (deSocketAddress* address, const struct sockaddr* bsdAddr, int addrLen)
375 /* Decode client address info. */
382 deSocketAddress_setFamily(address, DE_SOCKETFAMILY_INET4);
383 deSocketAddress_setPort(address, (int)deNetworkToHostOrder16((deUint16)addr4->sin_port));
386 char buf[16]; /* Max valid address takes 3*4 + 3 = 15 chars */
388 deSocketAddress_setHost(address, buf);
397 deSocketAddress_setFamily(address, DE_SOCKETFAMILY_INET6);
398 deSocketAddress_setPort(address, (int)deNetworkToHostOrder16((deUint16)addr6->sin6_port));
401 char buf[40]; /* Max valid address takes 8*4 + 7 = 39 chars */
403 deSocketAddress_setHost(address, buf);
496 deBool deSocket_listen (deSocket* sock, const deSocketAddress* address)
506 /* Resolve address. */
507 if (!deSocketAddressToBsdAddress(address, sizeof(bsdAddrBuf), bsdAddr, &bsdAddrLen))
511 sock->handle = socket(bsdAddr->sa_family, deSocketTypeToBsdType(address->type), deSocketProtocolToBsdProtocol(address->protocol));
517 /* Allow re-using address. */
523 /* Bind to address. */
578 deBool deSocket_connect (deSocket* sock, const deSocketAddress* address)
584 /* Resolve address. */
585 if (!deSocketAddressToBsdAddress(address, sizeof(bsdAddrBuf), bsdAddr, &bsdAddrLen))
589 sock->handle = socket(bsdAddr->sa_family, deSocketTypeToBsdType(address->type), deSocketProtocolToBsdProtocol(address->protocol));