File: //proc/self/root/lib/python3.6/site-packages/glances/__pycache__/server.cpython-36.pyc
3
Eo�c � @ s� d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl m
Z
mZ ddlm
Z
ddlmZ dd lmZ dd
lmZ G dd� de
e�ZG d
d� dee�ZG dd� de�ZG dd� de�ZdS )zManage the Glances server.� )�
json_dumpsN)� b64decode)�__version__)�SimpleXMLRPCRequestHandler�SimpleXMLRPCServer)�GlancesAutoDiscoverClient)�logger)�GlancesStatsServer)�Timerc sL e Zd ZdZdZ� fdd�Zdd� Zdd� Zd d
� Zdd� Z d
d� Z
� ZS )�GlancesXMLRPCHandlerzMain XML-RPC handler.�/RPC2c s | j � tt| �j� d S )N)�send_my_headers�superr �end_headers)�self)� __class__� �/usr/lib/python3.6/server.pyr s z GlancesXMLRPCHandler.end_headersc C s | j dd� d S )NzAccess-Control-Allow-Origin�*)Zsend_header)r r r r r
% s z$GlancesXMLRPCHandler.send_my_headersc
C s� y|j d�jd�\}}}W n tk
r4 | jj S X |j d�jd�\}}}|dks\td��|j� }t|�}|j� }|jd�\}}} | j || �S d S )NZ
Authorization� ZBasicz#Only basic authentication supported�:)
�get� partition� Exception�server�isAuth�AssertionError�encoder �decode�
check_user)
r �headersZbasic�_ZencodedZencoded_byte_stringZ
decoded_bytes�decoded_string�username�passwordr r r �authenticate) s z!GlancesXMLRPCHandler.authenticatec C sB || j jkr:ddlm} ||| jd�}|j| j j| |�S dS d S )Nr )�GlancesPassword)r# �configF)r � user_dictZglances.passwordr&