mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 21:27:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import sys
 | |
| import dbus
 | |
| 
 | |
| if len(sys.argv) < 2 or len(sys.argv) > 3:
 | |
|     print("Usage: %s [device] <mac>" % (sys.argv[0]))
 | |
|     sys.exit(1)
 | |
| 
 | |
| bus = dbus.SystemBus()
 | |
| device = None
 | |
| 
 | |
| if len(sys.argv) == 2:
 | |
|     manager = dbus.Interface(bus.get_object("net.connman.iwd", "/"),
 | |
|                                 "org.freedesktop.DBus.ObjectManager")
 | |
|     objects = manager.GetManagedObjects()
 | |
|     for path in objects:
 | |
|         for interface in objects[path]:
 | |
|             if interface == "net.connman.iwd.StationDebug":
 | |
|                 device = dbus.Interface(bus.get_object("net.connman.iwd", path),
 | |
|                                     "net.connman.iwd.StationDebug")
 | |
|                 break
 | |
| 
 | |
|     if not device:
 | |
|         print("StationDebug interface not found")
 | |
|         exit()
 | |
| 
 | |
|     mac = sys.argv[1]
 | |
| else:
 | |
|     device = dbus.Interface(bus.get_object("net.connman.iwd", sys.argv[1]),
 | |
|                                     "net.connman.iwd.StationDebug")
 | |
|     mac = sys.argv[2]
 | |
| 
 | |
| mac = mac.replace(':', '')
 | |
| device.Roam(dbus.ByteArray.fromhex(mac))
 | 
