* Rework the DHCP code again to revert to sending full ethernet frames
rather then relying on the kernel to do the right thing with our
packets.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@340 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* dhcpcd/client.c
- Fix some minor errors in dhcp_handle_transaction() that caused
unexpected early timeouts of DHCP transactions
* dhcpcd/client.h
- DHCP retransmit time from 4s -> 5s
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@338 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* Major rework of the DHCP code, taking some cues from pump. We don't
write raw Ethernet packets anymore, which simplifies the code quite
a bit. The new code should be more robust, not hang in recvfrom()
as much, and generally work better. This also means that we need
to force HAL/dbus to use a created GMainContext rather than the
default context, since having the DHCP renew/rebind thread using
its own GMainContext seemed to give dbus a fit. There is also more
debugging information printed from the DHCP loop to help with future
problems.
* Also, if the DHCP server doesn't give us the "routersOnSubnet" option,
assume that the default gateway should be the DHCP server.
Patch from Matthew Schick <matt oss-institute org>
* src/backends/NetworkManagerGentoo.c
- Fix compilation error due to missing "ip4_broadcast"
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@336 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
* src/NetworkManagerDevicePrivate.h
- Split out the NMDevice struct to a different file so that stuff like
NetworkManagerDHCP.c and NetworkManagerSystem.c can use it
* dhcpcd/client.c
- fprintf->syslog
- (dhcpSendAndRecv): do non-blocking sends and receives, and check to see if we
need to cancel the dhcp request during the send and recv
* dhcpcd/client.h
- Move the DHCP option enum to dhcpcd.h
* src/NetworkManagerDHCP.c
- Split out the actual IP/netmask/etc setting code
- New Renew/Rebind functions
- New timer setup function for renew/rebind operations
* src/NetworkManagerDevice.c
- For device activation, if we are using DHCP then keep the activation thread
alive until device deactivation. We need to renew/rebind the DHCP address
after the T1 (renew) and T2 (rebind) times have expired.
- Increase some timeouts after bringing wireless cards up/down
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@320 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Major rework of link detection code. We now use DHCP
as part of the link detection which proves to be much more robust,
and also supports Open System authentication for wireless networks.
We no longer use external DHCP client programs. Instead, we use
our own DHCP client, based on substantially reworked bits of 'dhcpcd'
which was written by:
Yoichi Hariguchi <yoichi@fore.com>
Sergei Viznyuk <sv@phystech.com>
http://www.phystech.com/download/
It resides in the "dhcpcd" directory and was refactored into a general
purpose DHCP client library by me.
Also misc fixes (CPPFLAGS->AM_CPPFLAGS, move some stuff around),
move src/backends/NetworkManagerSystem.h -> src/NetworkManagerSystem.h
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@314 4912f4e0-d625-0410-9fb7-b9a5a253dbdc