def authorization_proxy(options):
auth_sock = start_agent()
# Remove auth sock if is a socket
try:
stat_info = os.stat(options.socket)
if stat.S_ISSOCK(stat_info.st_mode):
os.remove(options.socket)
else:
LOG.error("auth socket %s exist", options.socket)
except OSError:
pass
# Open socket with permissive permissions, socket permission enforcement
# isn't consistant across operating systems, so administrator should
# enforce permissions on enclosing directory
saved_umask = os.umask(0)
server = AuthorizationProxy(options.socket, options.database, auth_sock)
os.umask(saved_umask)
# Remove listening socket at exit
atexit.register(lambda: os.remove(options.socket))
def sighup_handler(signo, frame):
server.authorizer.reload()
signal.signal(signal.SIGHUP, sighup_handler)
server.serve_forever()
评论列表
文章目录