Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | libhydra: Move all kernel plugins to libcharon | Tobias Brunner | 2016-03-03 | 5 | -2086/+0 |
| | |||||
* | kernel-pfroute: Don't install virtual IPs if charon.install_virtual_ip is ↵ | Tobias Brunner | 2015-08-13 | 1 | -0/+17 |
| | | | | disabled | ||||
* | kernel-pfroute: If a new interface appears, slightly delay address enumeration | Martin Willi | 2014-12-16 | 1 | -0/+9 |
| | | | | | | | On OS X 10.10, when installing a virtual IP on a tun device, there is a chance that a RTM_IFANNOUNCE is sent before the IP is ready on that link when calling getifaddrs(). As we don't get an RTM_NEWADDR event either, that race lets us miss the virtual IP install event, failing the add_ip() call. | ||||
* | kernel-pfroute: Check for RTM_IFANNOUNCE availability | Martin Willi | 2014-10-14 | 1 | -0/+10 |
| | | | | This message is not available on OS X. | ||||
* | kernel-pfroute: Delete interfaces on RTM_IFANNOUNCE/IFAN_DEPARTURE events | Tobias Brunner | 2014-09-09 | 1 | -0/+38 |
| | | | | | | | | | | | | We actually never deleted cached interfaces. So if the kernel reuses interface indices events for newly created interfaces could have been associated with interface objects of deactivated and deleted interfaces. Since we also didn't update the interface name when such an interface got reactivated we ended up using the old name e.g. to install routes. A trigger for this was the deletion and recreation of TUN devices during reauthentication of SAs that use virtual IPs. | ||||
* | kernel-pfroute: Fix kernel response handling | Tobias Brunner | 2014-08-19 | 1 | -2/+3 |
| | | | | | | | | | | | | | The condvar is signaled for every handled message received from the kernel not only for replies (this changed with 2a2d7a4dc8). This may cause segfaults because this->reply is not set when the waiting thread is woken due to an IP address change. Since this->reply is only set when it is actually the expected reply (and only one request is sent at a time, thanks to c9a323c1d9) we only have to make sure the reply is there (and clear it once we handled it). Using separate condvars could also be an option in the future. | ||||
* | kernel-interface: Add destination prefix to get_nexthop() | Tobias Brunner | 2014-06-19 | 1 | -1/+1 |
| | | | | | This allows to determine the next hop to reach a subnet, for instance, when installing routes for shunt policies. | ||||
* | plugins: Don't link with -rdynamic on Windows | Martin Willi | 2014-06-04 | 1 | -1/+1 |
| | |||||
* | kernel-pfroute: Let get_nexthop() default to destination address | Tobias Brunner | 2014-03-31 | 1 | -3/+7 |
| | |||||
* | libhydra: Use lib->ns instead of hydra->daemon | Tobias Brunner | 2014-02-12 | 1 | -2/+2 |
| | |||||
* | kernel-pfroute: Don't cache route entries if installation fails | Tobias Brunner | 2014-02-12 | 1 | -2/+5 |
| | |||||
* | kernel-pfroute: Fix mixed up memset() call in get_route() | Mathias Krause | 2013-08-29 | 1 | -1/+1 |
| | | | | | | | | | | The retry code introduced in dc8b083 got the memset() arguments wrong. Fix this to ensure the buffer gets zeroed, for real. It probably doesn't matter as we do reset the message length on retry, so the stale data shouldn't be seen by anyone. Found-by: git grep 'memset\s*\([^,]*,\s*[^,]*,\s*0\s*\)' | ||||
* | kernel-netlink,pfroute: Properly update address flag within ROAM_DELAY | Tobias Brunner | 2013-08-12 | 1 | -1/+1 |
| | | | | | | | 77d4a02 and 55da01f only updated the address flag when a job was created, which obviously had the same limitation as the old code. Fixes #374. | ||||
* | kernel-pfroute: Implement roam event handling like in the kernel-netlink plugin | Tobias Brunner | 2013-08-12 | 1 | -13/+36 |
| | | | | | There was no proper locking and the issue regarding the address flag also existed. | ||||
* | kernel-pfroute: use watcher to receive kernel events | Martin Willi | 2013-07-18 | 1 | -17/+13 |
| | |||||
* | automake: replace INCLUDES by AM_CPPFLAGS | Martin Willi | 2013-07-18 | 1 | -3/+5 |
| | | | | | | INCLUDES are now deprecated and throw warnings when using automake 1.13. We now also differentiate AM_CPPFLAGS and AM_CFLAGS, where includes and defines are passed to AM_CPPFLAGS only. | ||||
* | kernel-pfroute: Ignore IP address changes if address is %any | Tobias Brunner | 2013-07-17 | 1 | -1/+2 |
| | |||||
* | kernel-pfroute: Properly enumerate sockaddrs in interface messages | Tobias Brunner | 2013-07-17 | 1 | -9/+26 |
| | | | | | The ifa_msghdr and rt_msghdr structs are not compatible (at least not on FreeBSD). | ||||
* | kernel-pfroute: Provide name of interfaces on which virtual IPs are installed | Tobias Brunner | 2013-07-17 | 1 | -0/+22 |
| | |||||
* | kernel-pfroute: Ignore virtual IPs in address map | Tobias Brunner | 2013-07-17 | 1 | -13/+9 |
| | | | | | As the virtual flag is set after the address has been added to the map, we make sure we ignore virtual IPs when doing lookups. | ||||
* | kernel-pfroute: Make sure source addresses are not virtual and usable | Tobias Brunner | 2013-07-17 | 1 | -4/+20 |
| | | | | | | | It seems we sometimes get the virtual IP as source (with rightsubnet=0.0.0.0/0) even if the exclude route is already installed. Might be a timing issue because shortly afterwards the lookup seems to succeed. | ||||
* | kernel-pfroute: Don't report an error when trying to reinstall a route | Tobias Brunner | 2013-07-17 | 1 | -0/+4 |
| | |||||
* | kernel-pfroute: Reinstall routes on interface/address changes | Tobias Brunner | 2013-07-17 | 1 | -7/+320 |
| | |||||
* | kernel-pfroute: Trigger a roam event if a new interface appears | Tobias Brunner | 2013-07-17 | 1 | -0/+4 |
| | |||||
* | kernel-pfroute: Use ref_get() to allocate sequence numbers | Tobias Brunner | 2013-07-17 | 1 | -3/+3 |
| | |||||
* | kernel-pfroute: Make time that is waited for VIPs to appear configurable | Tobias Brunner | 2013-07-17 | 1 | -2/+11 |
| | | | | | One second might be too short for IPs to appear/disappear, especially on virtualized hosts. | ||||
* | kernel-pfroute: Retry route lookup without source address on failure | Tobias Brunner | 2013-07-17 | 1 | -1/+16 |
| | | | | | The known source address might be gone resulting in an error, making learning a new source address impossible. | ||||
* | kernel-pfroute: Simplify route lookup after fixing sockaddr parsing | Tobias Brunner | 2013-06-21 | 1 | -90/+19 |
| | |||||
* | kernel-pfroute: Alignment of sockaddrs is not always the same | Tobias Brunner | 2013-06-21 | 1 | -1/+8 |
| | |||||
* | kernel-pfroute: struct sockaddr arguments are 4 byte aligned | Tobias Brunner | 2013-06-21 | 1 | -4/+8 |
| | | | | | | | | | This was noticed on Mac OS X where, if the default route is returned, RTA_NETMASK has sa_len set to 0, but skipping zero bytes to read the next address makes no sense, of course. Using 0 for sa_len seems a bit strange, in particular, because struct sockaddr has by definition a minimum length of 16 bytes. But it seems FreeBSD actually does the same. | ||||
* | kernel-pfroute: Improve route lookup depending on information we get back | Tobias Brunner | 2013-06-21 | 1 | -12/+96 |
| | | | | Kernels don't provide the same information for all routes. | ||||
* | kernel-pfroute: Try to ensure we get a source address or interface name | Tobias Brunner | 2013-06-21 | 1 | -0/+6 |
| | |||||
* | kernel-pfroute: Use DST as nexthop for host routes | Tobias Brunner | 2013-06-21 | 1 | -0/+6 |
| | | | | These are created as cache/clone on Mac OS X. | ||||
* | kernel-pfroute: Implement get_source_addr() | Tobias Brunner | 2013-06-21 | 1 | -12/+27 |
| | |||||
* | kernel-pfroute: Properly install routes with interface and gateway | Tobias Brunner | 2013-06-21 | 1 | -5/+6 |
| | |||||
* | kernel-pfroute: Activate TUN device before setting address | Tobias Brunner | 2013-06-21 | 1 | -1/+1 |
| | | | | | On FreeBSD, for some reason, we don't learn the interface is up otherwise. Even though ifconfig lists it as up at the same time. | ||||
* | kernel-pfroute: Raise tun event when creating/destroying TUN devices for ↵ | Tobias Brunner | 2013-06-21 | 1 | -1/+6 |
| | | | | virtual IPs | ||||
* | kernel-pfroute: allow only one thread to do a route look up simultaneously | Martin Willi | 2013-05-06 | 1 | -1/+8 |
| | | | | Otherwise we mess up the sequence number another thread is waiting for. | ||||
* | kernel-pfroute: add a feature flag requesting "exclude" routes | Martin Willi | 2013-05-06 | 1 | -0/+7 |
| | | | | | | | | If routes installed along with policies covering the peer address affect local IKE/ESP packets, they won't get routed correctly. To work around this issue, the kernel interface can install "exclude" routes for the IKE peer. Not all networking backends require this workaround, hence we export a flag for it if it is required. | ||||
* | kernel-pfroute: remove unused interface address refcounting | Martin Willi | 2013-05-06 | 1 | -11/+0 |
| | |||||
* | kernel-pfroute: mark IPs installed on tun device as virtual | Martin Willi | 2013-05-06 | 1 | -1/+24 |
| | |||||
* | kernel-pfroute: install virtual IPs using dedicated tun devices | Martin Willi | 2013-05-06 | 1 | -5/+91 |
| | |||||
* | kernel-interface: support enumeration of virtual-only IPs | Martin Willi | 2013-05-06 | 1 | -0/+4 |
| | |||||
* | kernel-pfroute: split /0 routes to avoid conflict with default route | Martin Willi | 2013-05-06 | 1 | -0/+15 |
| | |||||
* | kernel-pfroute: rescan address list for an interface if its state changes | Martin Willi | 2013-05-06 | 1 | -0/+43 |
| | | | | | It seems that we don't get address notifications if the interface is down on OS X. | ||||
* | kernel-pfroute: add newly appearing interfaces to the interface cache | Martin Willi | 2013-05-06 | 1 | -1/+22 |
| | |||||
* | kernel-pfroute: implement get_nexthop() | Martin Willi | 2013-05-06 | 1 | -6/+73 |
| | |||||
* | kernel-pfroute: install and uninstall routes | Martin Willi | 2013-05-06 | 1 | -2/+129 |
| | |||||
* | kernel-pfroute: collect replies received for our own queries | Martin Willi | 2013-05-06 | 1 | -4/+40 |
| | |||||
* | kernel-pfroute: refactor PF_ROUTE message processing, use an enumerator | Martin Willi | 2013-05-06 | 1 | -35/+117 |
| |