root / contrib / patches / nfdhcpd-patch-feca7bb959 @ 2e1e6844
History | View | Annotate | Download (2.2 kB)
1 | 5af4e70c | Vangelis Koukis | diff --git a/nfdhcpd b/nfdhcpd |
---|---|---|---|
2 | 5af4e70c | Vangelis Koukis | index c3bdcc7..19e8d6c 100755 |
3 | 5af4e70c | Vangelis Koukis | --- a/nfdhcpd |
4 | 5af4e70c | Vangelis Koukis | +++ b/nfdhcpd |
5 | 5af4e70c | Vangelis Koukis | @@ -1,4 +1,4 @@ |
6 | 5af4e70c | Vangelis Koukis | -#!/usr/bin/env python |
7 | 5af4e70c | Vangelis Koukis | +#!/usr/bin/env python2.7 |
8 | 5af4e70c | Vangelis Koukis | # |
9 | 5af4e70c | Vangelis Koukis | |
10 | 5af4e70c | Vangelis Koukis | # nfdcpd: A promiscuous, NFQUEUE-based DHCP server for virtual machine hosting |
11 | 5af4e70c | Vangelis Koukis | @@ -496,7 +496,9 @@ class VMNetProxy(object): # pylint: disable=R0902 |
12 | 5af4e70c | Vangelis Koukis | """ Generate a reply to a BOOTP/DHCP request |
13 | 5af4e70c | Vangelis Koukis | |
14 | 5af4e70c | Vangelis Koukis | """ |
15 | 5af4e70c | Vangelis Koukis | - indev = payload.get_indev() |
16 | 5af4e70c | Vangelis Koukis | + # If the packet comes from a bridged interface, use the ifindex |
17 | 5af4e70c | Vangelis Koukis | + # of the physical device instead of the ifindex of the bridge interface |
18 | 5af4e70c | Vangelis Koukis | + indev = payload.get_physindev() or payload.get_indev() |
19 | 5af4e70c | Vangelis Koukis | try: |
20 | 5af4e70c | Vangelis Koukis | # Get the actual interface from the ifindex |
21 | 5af4e70c | Vangelis Koukis | iface = self.ifaces[indev] |
22 | 5af4e70c | Vangelis Koukis | @@ -537,7 +539,7 @@ class VMNetProxy(object): # pylint: disable=R0902 |
23 | 5af4e70c | Vangelis Koukis | return |
24 | 5af4e70c | Vangelis Koukis | |
25 | 5af4e70c | Vangelis Koukis | resp = Ether(dst=mac, src=self.get_iface_hw_addr(iface))/\ |
26 | 5af4e70c | Vangelis Koukis | - IP(src=DHCP_DUMMY_SERVER_IP, dst=binding.ip)/\ |
27 | 5af4e70c | Vangelis Koukis | + IP(src=self.dhcp_server_ip, dst=binding.ip)/\ |
28 | 5af4e70c | Vangelis Koukis | UDP(sport=pkt.dport, dport=pkt.sport)/resp |
29 | 5af4e70c | Vangelis Koukis | subnet = self.subnets[binding.link] |
30 | 5af4e70c | Vangelis Koukis | |
31 | 5af4e70c | Vangelis Koukis | @@ -593,7 +595,7 @@ class VMNetProxy(object): # pylint: disable=R0902 |
32 | 5af4e70c | Vangelis Koukis | # Finally, always add the server identifier and end options |
33 | 5af4e70c | Vangelis Koukis | dhcp_options += [ |
34 | 5af4e70c | Vangelis Koukis | ("message-type", resp_type), |
35 | 5af4e70c | Vangelis Koukis | - ("server_id", DHCP_DUMMY_SERVER_IP), |
36 | 5af4e70c | Vangelis Koukis | + ("server_id", self.dhcp_server_ip), |
37 | 5af4e70c | Vangelis Koukis | "end" |
38 | 5af4e70c | Vangelis Koukis | ] |
39 | 5af4e70c | Vangelis Koukis | resp /= DHCP(options=dhcp_options) |
40 | 5af4e70c | Vangelis Koukis | @@ -606,7 +608,7 @@ class VMNetProxy(object): # pylint: disable=R0902 |
41 | 5af4e70c | Vangelis Koukis | """ Generate a reply to a BOOTP/DHCP request |
42 | 5af4e70c | Vangelis Koukis | |
43 | 5af4e70c | Vangelis Koukis | """ |
44 | 5af4e70c | Vangelis Koukis | - indev = payload.get_indev() |
45 | 5af4e70c | Vangelis Koukis | + indev = payload.get_physindev() or payload.get_indev() |
46 | 5af4e70c | Vangelis Koukis | try: |
47 | 5af4e70c | Vangelis Koukis | # Get the actual interface from the ifindex |
48 | 5af4e70c | Vangelis Koukis | iface = self.ifaces[indev] |
49 | 5af4e70c | Vangelis Koukis | @@ -641,7 +643,7 @@ class VMNetProxy(object): # pylint: disable=R0902 |
50 | 5af4e70c | Vangelis Koukis | """ Generate a reply to an ICMPv6 neighbor solicitation |
51 | 5af4e70c | Vangelis Koukis | |
52 | 5af4e70c | Vangelis Koukis | """ |
53 | 5af4e70c | Vangelis Koukis | - indev = payload.get_indev() |
54 | 5af4e70c | Vangelis Koukis | + indev = payload.get_physindev() or payload.get_indev() |
55 | 5af4e70c | Vangelis Koukis | try: |
56 | 5af4e70c | Vangelis Koukis | # Get the actual interface from the ifindex |
57 | 5af4e70c | Vangelis Koukis | iface = self.ifaces[indev] |