--- embedaddon/miniupnpc/testupnpigd.py	2012/02/21 23:16:22	1.1
+++ embedaddon/miniupnpc/testupnpigd.py	2023/09/27 11:21:37	1.1.1.2
@@ -1,15 +1,19 @@
-#! /usr/bin/python
-# $Id: testupnpigd.py,v 1.1 2012/02/21 23:16:22 misho Exp $
+#! /usr/bin/env python
+# $Id: testupnpigd.py,v 1.1.1.2 2023/09/27 11:21:37 misho Exp $
 # MiniUPnP project
 # Author : Thomas Bernard
 # This Sample code is public domain.
-# website : http://miniupnp.tuxfamily.org/
+# website : https://miniupnp.tuxfamily.org/
 
 # import the python miniupnpc module
 import miniupnpc
 import socket
-import BaseHTTPServer
 
+try:
+    from http.server import BaseHTTPRequestHandler, HTTPServer
+except ImportError:
+    from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
+
 # function definition
 def list_redirections():
 	i = 0
@@ -17,15 +21,15 @@ def list_redirections():
 		p = u.getgenericportmapping(i)
 		if p==None:
 			break
-		print i, p
+		print(i, p)
 		i = i + 1
 
 #define the handler class for HTTP connections
-class handler_class(BaseHTTPServer.BaseHTTPRequestHandler):
+class handler_class(BaseHTTPRequestHandler):
 	def do_GET(self):
 		self.send_response(200)
 		self.end_headers()
-		self.wfile.write("OK MON GARS")
+		self.wfile.write(b"OK MON GARS")
 
 # create the object
 u = miniupnpc.UPnP()
@@ -37,20 +41,20 @@ u = miniupnpc.UPnP()
 u.discoverdelay = 200;
 
 try:
-	print 'Discovering... delay=%ums' % u.discoverdelay
+	print('Discovering... delay=%ums' % u.discoverdelay)
 	ndevices = u.discover()
-	print ndevices, 'device(s) detected'
+	print(ndevices, 'device(s) detected')
 
 	# select an igd
 	u.selectigd()
 	# display information about the IGD and the internet connection
-	print 'local ip address :', u.lanaddr
+	print('local ip address :', u.lanaddr)
 	externalipaddress = u.externalipaddress()
-	print 'external ip address :', externalipaddress
-	print u.statusinfo(), u.connectiontype()
+	print('external ip address :', externalipaddress)
+	print(u.statusinfo(), u.connectiontype())
 
 	#instanciate a HTTPd object. The port is assigned by the system.
-	httpd = BaseHTTPServer.HTTPServer((u.lanaddr, 0), handler_class)
+	httpd = HTTPServer((u.lanaddr, 0), handler_class)
 	eport = httpd.server_port
 
 	# find a free port for the redirection
@@ -59,26 +63,26 @@ try:
 		eport = eport + 1
 		r = u.getspecificportmapping(eport, 'TCP')
 
-	print 'trying to redirect %s port %u TCP => %s port %u TCP' % (externalipaddress, eport, u.lanaddr, httpd.server_port)
+	print('trying to redirect %s port %u TCP => %s port %u TCP' % (externalipaddress, eport, u.lanaddr, httpd.server_port))
 
 	b = u.addportmapping(eport, 'TCP', u.lanaddr, httpd.server_port,
 	                    'UPnP IGD Tester port %u' % eport, '')
 	if b:
-		print 'Success. Now waiting for some HTTP request on http://%s:%u' % (externalipaddress ,eport)
+		print('Success. Now waiting for some HTTP request on http://%s:%u' % (externalipaddress ,eport))
 		try:
 			httpd.handle_request()
 			httpd.server_close()
-		except KeyboardInterrupt, details:
-			print "CTRL-C exception!", details
+		except KeyboardInterrupt as details:
+			print("CTRL-C exception!", details)
 		b = u.deleteportmapping(eport, 'TCP')
 		if b:
-			print 'Successfully deleted port mapping'
+			print('Successfully deleted port mapping')
 		else:
-			print 'Failed to remove port mapping'
+			print('Failed to remove port mapping')
 	else:
-		print 'Failed'
+		print('Failed')
 
 	httpd.server_close()
 
-except Exception, e:
-	print 'Exception :', e
+except Exception as e:
+	print('Exception :', e)