rpms/NetworkManager/OLPC-3 mpp.py, NONE, 1.1 wpas-wait-longer.patch, NONE, 1.1 .cvsignore, 1.82, 1.83 NetworkManager-0.6.5-fixup-internal-applet-build.patch, 1.16, NONE NetworkManager.spec, 1.222, NONE explain-dns1-dns2.patch, 1.1, NONE nm-system-settings.conf, 1.1, NONE no-strict-aliasing.patch, 1.2, NONE optionally-wait-for-network.patch, 1.2, NONE serial-debug.patch, 1.1, NONE sources, 1.110, NONE

Dennis Gilmore (ausil) fedora-extras-commits at redhat.com
Fri May 9 20:32:55 UTC 2008


Author: ausil

Update of /cvs/extras/rpms/NetworkManager/OLPC-3
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31235

Modified Files:
	.cvsignore 
Added Files:
	mpp.py wpas-wait-longer.patch 
Removed Files:
	NetworkManager-0.6.5-fixup-internal-applet-build.patch 
	NetworkManager.spec explain-dns1-dns2.patch 
	nm-system-settings.conf no-strict-aliasing.patch 
	optionally-wait-for-network.patch serial-debug.patch sources 
Log Message:
use OLPC-2 version




--- NEW FILE mpp.py ---
#!/usr/bin/env python
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# (C) Copyright 2007 One Laptop Per Child
#

import commands, sys, syslog, os

def get_ip4_address(iface):
    import socket
    import fcntl
    import struct
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    fd = s.fileno()
    SIOCGIFADDR = 0x8915
    addr = fcntl.ioctl(fd, SIOCGIFADDR, struct.pack('256s', iface[:15]))[20:24]
    s.close()
    return socket.inet_ntoa(addr)

def get_hw_address(iface):
    import struct
    import fcntl
    import socket
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    fd = s.fileno()
    SIOCGIFHWADDR = 0x8927
    req = fcntl.ioctl(fd, SIOCGIFHWADDR, struct.pack('16s16s', iface, ''))
    s.close()
    ignore1, ignore2, addr_high, addr_low = struct.unpack('>16sHHL8x', req)
    addr = (long(addr_high)<<32) + addr_low
    b0 = addr & 0xFF
    b1 = (addr >> 8) & 0xFF
    b2 = (addr >> 16) & 0xFF
    b3 = (addr >> 24) & 0xFF
    b4 = (addr >> 32) & 0xFF
    b5 = (addr >> 40) & 0xFF
    return "%02X:%02X:%02X:%02X:%02X:%02X" % (b5, b4, b3, b2, b1, b0)

def set_anycast(mask, mesh_dev):
    commands.getstatusoutput('echo "%s" > /sys/class/net/%s/anycast_mask' % (mask, mesh_dev))

def ipt(args):
    (s, o) = commands.getstatusoutput("/sbin/iptables %s" % args)
    if (s != 0):
        syslog("Error executing iptables command '%s': %s" % (args, o))

def masq_start(extif, intif):
    os.system('echo "1" > /proc/sys/net/ipv4/ip_forward')
    os.system('echo "1" > /proc/sys/net/ipv4/ip_dynaddr')

    modules = ["ip_tables", "ip_conntrack", "ip_conntrack_ftp", "ip_conntrack_irc",
                "iptable_nat", "ip_nat_ftp", "ip_nat_irc"]

    os.system("/sbin/modprobe " + " ".join(modules))

    ipt("-P INPUT ACCEPT")
    ipt("-F INPUT")
    ipt("-P OUTPUT ACCEPT")
    ipt("-F OUTPUT")
    ipt("-P FORWARD DROP")
    ipt("-F FORWARD")
    ipt("-t nat -F")

    # FWD: Allow all connections OUT and only existing and related ones IN
    ipt("-A FORWARD -i %s -o %s -m state --state ESTABLISHED,RELATED -j ACCEPT" % (extif, intif))
    ipt("-A FORWARD -i %s -o %s -j ACCEPT" % (extif, intif))
    ipt("-A FORWARD -i %s -o %s -j ACCEPT" % (intif, extif))
    #ipt("-A FORWARD -j LOG")
    
    # Enabling SNAT (MASQUERADE) functionality on $EXTIF
    ipt("-t nat -A POSTROUTING -o %s -j MASQUERADE" % extif)

def masq_stop():
    ipt("-F INPUT")
    ipt("-F OUTPUT")
    ipt("-P FORWARD DROP")
    ipt("-F FORWARD")
    ipt("-F -t nat")

    # Delete all User-specified chains
    ipt("-X")

    # Reset all IPTABLES counters
    ipt("-Z")

def mpp_start(mesh_dev, primary_dev):
    dns_file = file('/etc/resolv.conf','r')
    dns_addresses = ""
    for line in dns_file.readlines():
        if len(line.split()) >= 2 and line.split()[0] == "nameserver":
            dns_addresses += line.split()[1] + ", "
    dns_addresses = dns_addresses[:len(dns_addresses) - 2]
    dns_file.close()

    mesh_ip4_addr = get_ip4_address(mesh_dev)
    if not mesh_ip4_addr or not len(mesh_ip4_addr):
        return

    primary_hw_addr = get_hw_address(primary_dev).lower()

    #copy parameters to the DHCP conf file
    dhcpd_conf_text = """#Custom DHCP daemon configuration file - XO as MPP
ddns-update-style interim;

# free the addresses quickly, clients ignore them anyway
default-lease-time      60;
max-lease-time          60;

option domain-name-servers %s;

# Ignore requests from ourselves.  Because the 8388's mesh interface has
# the same MAC address as the eth interface, dhclient gets confused
class "me" {
    match if hardware = 01:%s;
}

subnet 169.254.0.0 netmask 255.255.0.0 {
    pool {
        deny members of "me";
        option routers            %s;
        # range of link-local addresses, won't be used by XO's
        range 169.254.0.1  169.254.255.254;
    }
}
"""   % (dns_addresses, primary_hw_addr, mesh_ip4_addr)
    
    fd = open("/etc/dhcpd.conf","w")
    fd.write(dhcpd_conf_text)
    fd.flush()
    fd.close()
    
    masq_start(primary_dev, mesh_dev)
    
    # Start MPP functionality in mesh firmware
    set_anycast("0x2", mesh_dev)   # mask for xo-as-mpp
    
    # Tell dhcpd to only listen on the mesh interface
    fd = open("/etc/sysconfig/dhcpd", "w")
    fd.write('DHCPDARGS="%s"' % mesh_dev)
    fd.close()
    (s, o) = commands.getstatusoutput("service dhcpd restart")

def mpp_stop(mesh_dev, primary_dev):
    masq_stop()

    (s, o) = commands.getstatusoutput("service dhcpd stop")
    try:
        os.remove("/etc/sysconfig/dhcpd")
        os.remove("/etc/dhcpd.conf")
    except OSError, e:
        pass

    # Stop MPP functionality in mesh firmware
    set_anycast("0x0", mesh_dev)   # mask for off


def main():
    if len(sys.argv) < 4:
        sys.exit()

    mesh_dev = sys.argv[1]
    action = sys.argv[2]
    primary_dev = sys.argv[3]

    if action == "meshready":
        mpp_start(mesh_dev, primary_dev)
    elif action == "meshdown":
        mpp_stop(mesh_dev, primary_dev)    

if __name__ == "__main__":
    main()

wpas-wait-longer.patch:

--- NEW FILE wpas-wait-longer.patch ---
--- NetworkManager-0.6.4/src/wpa_ctrl.c.foo	2006-11-12 20:09:19.000000000 -0500
+++ NetworkManager-0.6.4/src/wpa_ctrl.c	2006-11-12 20:09:50.000000000 -0500
@@ -144,7 +144,7 @@
 		return -1;
 
 	for (;;) {
-		tv.tv_sec = 2;
+		tv.tv_sec = 10;
 		tv.tv_usec = 0;
 		FD_ZERO(&rfds);
 		FD_SET(ctrl->s, &rfds);


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/NetworkManager/OLPC-3/.cvsignore,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -r1.82 -r1.83
--- .cvsignore	30 Apr 2008 19:41:34 -0000	1.82
+++ .cvsignore	9 May 2008 20:32:15 -0000	1.83
@@ -1,112 +1,21 @@
 network-manager-applet-0.6.5.tar.bz2
 NetworkManager-0.6.5.tar.bz2
-NetworkManager-0.7.0.svn2736.tar.gz
-nm-applet-0.7.0.svn129.tar.gz
-NetworkManager-0.7.0.svn2833.tar.gz
-nm-applet-0.7.0.svn186.tar.gz
-NetworkManager-0.7.0.svn2844.tar.gz
-nm-applet-0.7.0.svn190.tar.gz
-NetworkManager-0.7.0.svn2849.tar.gz
-NetworkManager-0.7.0.svn2852.tar.gz
-nm-applet-0.7.0.svn191.tar.gz
-NetworkManager-0.7.0.svn2880.tar.gz
-nm-applet-0.7.0.svn199.tar.gz
-NetworkManager-0.7.0.svn2884.tar.gz
-nm-applet-0.7.0.svn200.tar.gz
-NetworkManager-0.7.0.svn2886.tar.gz
-NetworkManager-0.7.0.svn2907.tar.gz
-nm-applet-0.7.0.svn202.tar.gz
-NetworkManager-0.7.0.svn2914.tar.gz
-nm-applet-0.7.0.svn207.tar.gz
-NetworkManager-0.7.0.svn2961.tar.gz
-nm-applet-0.7.0.svn237.tar.gz
-NetworkManager-0.7.0.svn2962.tar.gz
-nm-applet-0.7.0.svn239.tar.gz
-NetworkManager-0.7.0.svn2970.tar.gz
-nm-applet-0.7.0.svn240.tar.gz
-NetworkManager-0.7.0.svn2978.tar.gz
-nm-applet-0.7.0.svn258.tar.gz
-NetworkManager-0.7.0.svn2981.tar.gz
-nm-applet-0.7.0.svn260.tar.gz
-NetworkManager-0.7.0.svn2983.tar.gz
-nm-applet-0.7.0.svn261.tar.gz
-NetworkManager-0.7.0.svn2994.tar.gz
-nm-applet-0.7.0.svn272.tar.gz
-NetworkManager-0.7.0.svn2995.tar.gz
-nm-applet-0.7.0.svn275.tar.gz
-NetworkManager-0.7.0.svn3008.tar.gz
-nm-applet-0.7.0.svn278.tar.gz
-NetworkManager-0.7.0.svn3014.tar.gz
-nm-applet-0.7.0.svn280.tar.gz
-NetworkManager-0.7.0.svn3016.tar.gz
-nm-applet-0.7.0.svn283.tar.gz
-NetworkManager-0.7.0.svn3020.tar.gz
-nm-applet-0.7.0.svn285.tar.gz
-nm-applet-0.7.0.svn289.tar.gz
-NetworkManager-0.7.0.svn3030.tar.gz
-nm-applet-0.7.0.svn301.tar.gz
-nm-applet-0.7.0.svn302.tar.gz
-NetworkManager-0.7.0.svn3083.tar.gz
-nm-applet-0.7.0.svn346.tar.gz
-NetworkManager-0.7.0.svn3094.tar.gz
-nm-applet-0.7.0.svn353.tar.gz
-NetworkManager-0.7.0.svn3096.tar.gz
-nm-applet-0.7.0.svn360.tar.gz
-nm-applet-0.7.0.svn362.tar.gz
-nm-applet-0.7.0.svn363.tar.gz
-NetworkManager-0.7.0.svn3109.tar.gz
-nm-applet-0.7.0.svn367.tar.gz
-nm-applet-0.7.0.svn368.tar.gz
-NetworkManager-0.7.0.svn3133.tar.gz
-nm-applet-0.7.0.svn376.tar.gz
-NetworkManager-0.7.0.svn3134.tar.gz
-nm-applet-0.7.0.svn378.tar.gz
-NetworkManager-0.7.0.svn3138.tar.gz
-nm-applet-0.7.0.svn383.tar.gz
-NetworkManager-0.7.0.svn3204.tar.gz
-nm-applet-0.7.0.svn429.tar.gz
-NetworkManager-0.7.0.svn3235.tar.gz
-nm-applet-0.7.0.svn438.tar.gz
-NetworkManager-0.7.0.svn3261.tar.gz
-nm-applet-0.7.0.svn468.tar.gz
-NetworkManager-0.7.0.svn3319.tar.gz
-nm-applet-0.7.0.svn526.tar.gz
-NetworkManager-0.7.0.svn3417.tar.gz
-nm-applet-0.7.0.svn585.tar.gz
-NetworkManager-0.7.0.svn3437.tar.gz
-nm-applet-0.7.0.svn591.tar.gz
-NetworkManager-0.7.0.svn3440.tar.gz
-nm-applet-0.7.0.svn592.tar.gz
-NetworkManager-0.7.0.svn3472.tar.gz
-nm-applet-0.7.0.svn602.tar.gz
-nm-applet-0.7.0.svn603.tar.gz
-NetworkManager-0.7.0.svn3473.tar.gz
-nm-applet-0.7.0.svn604.tar.gz
-NetworkManager-0.7.0.svn3476.tar.gz
-nm-applet-0.7.0.svn606.tar.gz
-NetworkManager-0.7.0.svn3521.tar.gz
-nm-applet-0.7.0.svn636.tar.gz
-NetworkManager-0.7.0.svn3527.tar.gz
-nm-applet-0.7.0.svn645.tar.gz
-NetworkManager-0.7.0.svn3547.tar.gz
-nm-applet-0.7.0.svn657.tar.gz
-NetworkManager-0.7.0.svn3548.tar.gz
-NetworkManager-0.7.0.svn3549.tar.gz
-nm-applet-0.7.0.svn662.tar.gz
-NetworkManager-0.7.0.svn3566.tar.gz
-nm-applet-0.7.0.svn679.tar.gz
-NetworkManager-0.7.0.svn3570.tar.gz
-nm-applet-0.7.0.svn682.tar.gz
-NetworkManager-0.7.0.svn3571.tar.gz
-NetworkManager-0.7.0.svn3578.tar.gz
-nm-applet-0.7.0.svn689.tar.gz
-NetworkManager-0.7.0.svn3590.tar.gz
-nm-applet-0.7.0.svn694.tar.gz
-NetworkManager-0.7.0.svn3614.tar.gz
-nm-applet-0.7.0.svn703.tar.gz
-NetworkManager-0.7.0.svn3619.tar.gz
-nm-applet-0.7.0.svn708.tar.gz
-NetworkManager-0.7.0.svn3620.tar.gz
-NetworkManager-0.7.0.svn3622.tar.gz
-nm-applet-0.7.0.svn709.tar.gz
-NetworkManager-0.7.0.svn3623.tar.gz
+NetworkManager-0.6.5.svn2546.tar.gz
+NetworkManager-0.6.5.svn2621.tar.gz
+NetworkManager-0.6.5.svn2624.tar.gz
+NetworkManager-0.6.5.svn2626.tar.gz
+NetworkManager-0.6.5.svn2627.tar.gz
+NetworkManager-0.6.5.svn2631.tar.gz
+NetworkManager-0.6.5.svn2632.tar.gz
+NetworkManager-0.6.5.svn2634.tar.gz
+NetworkManager-0.6.5.svn2637.tar.gz
+NetworkManager-0.6.5.svn2639.tar.gz
+NetworkManager-0.6.5.svn2654.tar.gz
+NetworkManager-0.6.5.svn2655.tar.gz
+NetworkManager-0.6.5.svn2657.tar.gz
+NetworkManager-0.6.5.svn2658.tar.gz
+NetworkManager-0.6.5.svn2751.tar.gz
+NetworkManager-0.6.5.svn2771.tar.gz
+NetworkManager-0.6.5.svn2925.tar.gz
+NetworkManager-0.6.5.svn3218.tar.gz
+NetworkManager-0.6.5.svn3246.tar.gz


--- NetworkManager-0.6.5-fixup-internal-applet-build.patch DELETED ---


--- NetworkManager.spec DELETED ---


--- explain-dns1-dns2.patch DELETED ---


--- nm-system-settings.conf DELETED ---


--- no-strict-aliasing.patch DELETED ---


--- optionally-wait-for-network.patch DELETED ---


--- serial-debug.patch DELETED ---


--- sources DELETED ---




More information about the fedora-extras-commits mailing list