(cmdPipe, param)
| 324 | |
| 325 | |
| 326 | def 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).") |
no test coverage detected