/usr/lib/python2.7/dist-packages/framework/subsystems/onetworkd/network.py is in fso-frameworkd 0.10.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #!/usr/bin/env python
"""
Network
(C) 2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
(C) 2008 Openmoko, Inc.
GPLv2 or later
Package: onetworkd
Module: network
"""
MODULE_NAME = "onetworkd"
__version__ = "0.0.1"
import gobject
import os
import socket
import fcntl
import struct
import logging
logger = logging.getLogger( MODULE_NAME )
#============================================================================#
class Network( dict ):
#============================================================================#
def __init__( self ):
gobject.idle_add( self._sync )
def _sync( self ):
# FIXME add listener so that this gets called whenever a change in
# interfaces occurs
interfaces = os.listdir( "/sys/class/net" )
# first pass: remove
for interface in self:
if interface not in interfaces:
logger.debug( "interface %s no longer present -- removing" % interface )
del self[interface]
# second pass: add
for interface in os.listdir( "/sys/class/net" ):
if interface not in self:
logger.debug( "new interface %s -- adding" % interface )
self[interface] = Interface( interface )
return False
#============================================================================#
class Interface( object ):
#============================================================================#
def __init__( self, name ):
self._name = name
def name( self ):
return self._name
def ipAddress4( self ):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', self._name[:15])
)[20:24])
#============================================================================#
theNetwork = Network()
#============================================================================#
if __name__ == "__main__":
pass
|