MCPcopy
hub / github.com/iBaa/PlexConnect / Run_SSL

Function Run_SSL

WebServer.py:326–384  ·  view source on GitHub ↗
(cmdPipe, param)

Source from the content-addressed store, hash-verified

324
325
326def Run_SSL(cmdPipe, param):
327 if not __name__ == '__main__':
328 signal.signal(signal.SIGINT, signal.SIG_IGN)
329
330 dinit(__name__, param) # init logging, WebServer process
331
332 cfg_IP_WebServer = param['IP_self']
333 cfg_Port_SSL = param['CSettings'].getSetting('port_ssl')
334
335 if param['CSettings'].getSetting('certfile').startswith('.'):
336 # relative to current path
337 cfg_certfile = sys.path[0] + sep + param['CSettings'].getSetting('certfile')
338 else:
339 # absolute path
340 cfg_certfile = param['CSettings'].getSetting('certfile')
341 cfg_certfile = path.normpath(cfg_certfile)
342
343 try:
344 certfile = open(cfg_certfile, 'r')
345 except:
346 dprint(__name__, 0, "Failed to access certificate: {0}", cfg_certfile)
347 sys.exit(1)
348 certfile.close()
349
350 try:
351 server = ThreadedHTTPServer((cfg_IP_WebServer,int(cfg_Port_SSL)), MyHandler)
352 server.socket = ssl.wrap_socket(server.socket, certfile=cfg_certfile, server_side=True)
353 server.timeout = 1
354 except Exception, e:
355 dprint(__name__, 0, "Failed to connect to HTTPS on {0} port {1}: {2}", cfg_IP_WebServer, cfg_Port_SSL, e)
356 sys.exit(1)
357
358 socketinfo = server.socket.getsockname()
359
360 dprint(__name__, 0, "***")
361 dprint(__name__, 0, "WebServer: Serving HTTPS on {0} port {1}.", socketinfo[0], socketinfo[1])
362 dprint(__name__, 0, "***")
363
364 setParams(param)
365 XMLConverter.setParams(param)
366 XMLConverter.setATVSettings(param['CATVSettings'])
367
368 try:
369 while True:
370 # check command
371 if cmdPipe.poll():
372 cmd = cmdPipe.recv()
373 if cmd=='shutdown':
374 break
375
376 # do your work (with timeout)
377 server.handle_request()
378
379 except KeyboardInterrupt:
380 signal.signal(signal.SIGINT, signal.SIG_IGN) # we heard you!
381 dprint(__name__, 0,"^C received.")
382 finally:
383 dprint(__name__, 0, "Shutting down (HTTPS).")

Callers 1

WebServer.pyFile · 0.85

Calls 5

dinitFunction · 0.85
dprintFunction · 0.85
ThreadedHTTPServerClass · 0.85
setParamsFunction · 0.70
getSettingMethod · 0.45

Tested by

no test coverage detected