Lines Matching refs:address

24 /*!	Routing utility function: copies address \a from into a new address
27 address.
30 \return B_OK if the address could be copied
31 \return B_NO_MEMORY if the new address could not be allocated
33 address
34 \return B_MISMATCHED_VALUES if \a address does not match family AF_INET
71 /*! Routing utility function: applies \a mask to given \a address and puts
72 the resulting address into \a result.
74 \return B_BAD_VALUE if \a address is NULL or if any of \a address or \a mask
75 refers to an uninitialized address
78 ipv4_mask_address(const sockaddr *address, const sockaddr *mask,
81 if (address == NULL || address->sa_len == 0 || result == NULL
85 memcpy(result, address, sizeof(sockaddr_in));
95 /*! Checks if the given \a address is the empty address. By default, the port
97 \return true if \a address is NULL, uninitialized or the empty address,
101 ipv4_is_empty_address(const sockaddr *address, bool checkPort)
103 if (address == NULL || address->sa_len == 0
104 || address->sa_family == AF_UNSPEC)
107 return ((sockaddr_in *)address)->sin_addr.s_addr == 0
108 && (!checkPort || ((sockaddr_in *)address)->sin_port == 0);
112 /*! Checks if the given \a address is an IPv4 address.
113 \return false if \a address is NULL, or with family different from AF_INET
114 true if it has AF_INET address family
117 ipv4_is_same_family(const sockaddr *address)
119 if (address == NULL)
122 return address->sa_family == AF_INET;
126 /*! Compares the IP-addresses of the two given address structures \a a and \a b.
144 /*! Compares the ports of the two given address structures \a a and \a b.
156 /*! Compares the IP-addresses and ports of the two given address structures
261 /*! Creates a buffer for the given \a address and prints the address into
264 \return B_OK if the address could be printed, \a buffer will point to
273 const sockaddr_in *address = (const sockaddr_in *)_address;
278 if (address == NULL)
281 unsigned int addr = ntohl(address->sin_addr.s_addr);
286 addr & 0xff, ntohs(address->sin_port));
314 /*! Determines the port of the given \a address.
318 ipv4_get_port(const sockaddr *address)
320 if (address == NULL || address->sa_len == 0)
323 return ((sockaddr_in *)address)->sin_port;
327 /*! Sets the port of the given \a address to \a port.
329 \return B_BAD_VALUE if \a address is NULL or has not been initialized
332 ipv4_set_port(sockaddr *address, uint16 port)
334 if (address == NULL || address->sa_len == 0)
337 ((sockaddr_in *)address)->sin_port = port;
342 /*! Sets \a address to \a from.
343 \return B_OK if \a from has been copied into \a address
344 \return B_BAD_VALUE if either \a address or \a from is NULL or if the
345 address given in from has not been initialized
349 ipv4_set_to(sockaddr *address, const sockaddr *from)
351 if (address == NULL || from == NULL || from->sa_len == 0)
357 memcpy(address, from, sizeof(sockaddr_in));
358 address->sa_len = sizeof(sockaddr_in);
363 /*! Updates missing parts in \a address with the values in \a from.
364 \return B_OK if \a address has been updated from \a from
365 \return B_BAD_VALUE if either \a address or \a from is NULL or if the
366 address given in from has not been initialized
372 sockaddr_in *address = (sockaddr_in *)_address;
375 if (address == NULL || from == NULL || from->sin_len == 0)
381 address->sin_family = AF_INET;
382 address->sin_len = sizeof(sockaddr_in);
384 if (address->sin_port == 0)
385 address->sin_port = from->sin_port;
387 if (address->sin_addr.s_addr == INADDR_ANY)
388 address->sin_addr.s_addr = from->sin_addr.s_addr;
394 /*! Sets \a address to the empty address (0.0.0.0).
395 \return B_OK if \a address has been set
396 \return B_BAD_VALUE if \a address is NULL
399 ipv4_set_to_empty_address(sockaddr *address)
401 if (address == NULL)
404 memset(address, 0, sizeof(sockaddr_in));
405 address->sa_len = sizeof(sockaddr_in);
406 address->sa_family = AF_INET;
417 const sockaddr_in *address = (const sockaddr_in *)_address;
420 if (address == NULL || (defaultMask == NULL && defaultBroadcast == NULL))
425 // choose default netmask depending on the class of the address
426 net = ntohl(address->sin_addr.s_addr);
451 defaultBroadcast->sin_addr.s_addr = address->sin_addr.s_addr | ~net;
458 /*! Computes a hash value of the given \a address.
464 const sockaddr_in* address = (const sockaddr_in*)_address;
465 if (address == NULL || address->sin_len == 0)
469 return address->sin_port ^ address->sin_addr.s_addr;
471 return address->sin_addr.s_addr;
496 /*! Adds the given \a address to the IP-checksum \a checksum.
497 \return B_OK if \a address has been added to the checksum
498 \return B_BAD_VALUE if either \a address or \a checksum is NULL or if
499 the given address is not initialized
502 ipv4_checksum_address(Checksum *checksum, const sockaddr *address)
504 if (checksum == NULL || address == NULL || address->sa_len == 0)
507 (*checksum) << (uint32)((sockaddr_in *)address)->sin_addr.s_addr;
515 sockaddr_in *address = (sockaddr_in *)_address;
516 memset(address, 0, sizeof(sockaddr_in));
517 address->sin_len = sizeof(sockaddr_in);
518 address->sin_family = AF_INET;
519 address->sin_addr.s_addr = htonl(INADDR_LOOPBACK);