History log of /haiku/src/kits/network/libnetapi/NetworkAddressResolver.cpp
Revision Date Author Comments
# b140a1c3 21-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

NetworkAddressResolver: cache needs to be locked

It is not a good idea to have a thread get an address from the request
cache, while another thread is deleting said address as the cache has
grown too large. Add a lock around the cache access to make it safe.


# a73795ff 30-Jun-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

Revert "BNetworkAddressResolver: fix setting AI_ADDRCONFIG flag"

B_UNCONFIGURED_ADDRESS_FAMILIES is not a mapping to AI_ADDRCONFIG,
it's the opposite...

This reverts commit a8962b392a7cc9783596c1ed88babe3d864e6759.


# a8962b39 30-Jun-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BNetworkAddressResolver: fix setting AI_ADDRCONFIG flag

* Condition was the wrong way


# 0fc8084a 28-Jun-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BNetworkAddressResolver: fix getting address of given family

* Fix wrong nesting of loops which are supposed to skip the first
(*cookie) number of elements and those with the wrong address
family

* With a start value of first = 0 (the usual case), the old code
would always just return the first element of the addrinfo list, no
matter which address family was actually requested


# f972422c 14-Jun-2015 Adrien Destugues <pulkomandy@gmail.com>

Add a simple DNS caching system to BNetworkAddress

netresolv (and libbind) won't cache DNS requests, which can result in a
lot of DNS requests being made for the same host. Implement a simple
cache in RAM (local to each application) which will keep the most
recently requested addresses cached. This can speed up loading of an
HTTP page a lot, by saving a DNS request for each resource stored on the
same server as the main page.


# 754bbf48 26-Nov-2013 Jérôme Duval <jerome.duval@gmail.com>

libnetapi: second pass of style cleanup

* remarks from Axel


# 3cb2e2a3 11-Feb-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed retrieving the port from IPv6 addresses; ie. we now support the
"[addr]:port" notation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40449 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b85c513e 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* B_NO_ADDRESS_RESOLUTION now implies not setting AI_ADDRCONFIG, as that flag
doesn't really make sense in this case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38056 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd8ca1e5 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Improved error reporting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38040 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 836c43f2 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Factored out a BNetworkAddressResolver from BNetworkAddress, that also allows
to iterate over all possible addresses, as suggested privately by Rene.
* Added flags to the resolving methods that allow more control over the
addresses returned.
* Added setters to BNetworkAddress that accept a service name instead of port
number, renamed PortName() to ServiceName().
* Made the sockaddr* cast operators return a const sockaddr as it was supposed
to be, although I should probably add non-const ones as well.
* This also simplified the code somewhat.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a73795ff613a3d14e14668ffa3669c9d175bbaa7 30-Jun-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

Revert "BNetworkAddressResolver: fix setting AI_ADDRCONFIG flag"

B_UNCONFIGURED_ADDRESS_FAMILIES is not a mapping to AI_ADDRCONFIG,
it's the opposite...

This reverts commit a8962b392a7cc9783596c1ed88babe3d864e6759.


# a8962b392a7cc9783596c1ed88babe3d864e6759 30-Jun-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BNetworkAddressResolver: fix setting AI_ADDRCONFIG flag

* Condition was the wrong way


# 0fc8084a13985027af73d1433fc7441fc4cc09d6 28-Jun-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BNetworkAddressResolver: fix getting address of given family

* Fix wrong nesting of loops which are supposed to skip the first
(*cookie) number of elements and those with the wrong address
family

* With a start value of first = 0 (the usual case), the old code
would always just return the first element of the addrinfo list, no
matter which address family was actually requested


# f972422c66af92a5c6abf9852c904b92ea9255ea 14-Jun-2015 Adrien Destugues <pulkomandy@gmail.com>

Add a simple DNS caching system to BNetworkAddress

netresolv (and libbind) won't cache DNS requests, which can result in a
lot of DNS requests being made for the same host. Implement a simple
cache in RAM (local to each application) which will keep the most
recently requested addresses cached. This can speed up loading of an
HTTP page a lot, by saving a DNS request for each resource stored on the
same server as the main page.


# 754bbf4866278ecd2da2c517560bc90c67a3a6f5 26-Nov-2013 Jérôme Duval <jerome.duval@gmail.com>

libnetapi: second pass of style cleanup

* remarks from Axel


# 3cb2e2a3d2428d8a28824da8cce3880822861bb9 11-Feb-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed retrieving the port from IPv6 addresses; ie. we now support the
"[addr]:port" notation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40449 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b85c513ee70b56d6ae5dac29bb0a0566e18e0b58 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* B_NO_ADDRESS_RESOLUTION now implies not setting AI_ADDRCONFIG, as that flag
doesn't really make sense in this case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38056 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cd8ca1e595e696753eb980fb30982082c0a5eade 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Improved error reporting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38040 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 836c43f2b8f7519aeccdc30ec2804d0c66d56df4 12-Aug-2010 Axel Dörfler <axeld@pinc-software.de>

* Factored out a BNetworkAddressResolver from BNetworkAddress, that also allows
to iterate over all possible addresses, as suggested privately by Rene.
* Added flags to the resolving methods that allow more control over the
addresses returned.
* Added setters to BNetworkAddress that accept a service name instead of port
number, renamed PortName() to ServiceName().
* Made the sockaddr* cast operators return a const sockaddr as it was supposed
to be, although I should probably add non-const ones as well.
* This also simplified the code somewhat.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38039 a95241bf-73f2-0310-859d-f6bbb57e9c96