fix routen only 127.0.0.1 und *fix ssl_cert und refac ListsOvrelayas

pull/1/head
serkus01 2 years ago
parent f42857bf47
commit 700e927fe4

@ -1,49 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA5C2UH3g81bAs
2gAvbbGZihKjPW14sch5YfiScODIjX1ZWB+UOvH16bzmZQAiEQn2bfMcSBtkjX50
ameCOb0cfbD0Lap0uvjP4Qct80G7S+wfO57b3Xz4B3YOsZcAWKMyxc7V0GO1Iagw
WCaF7mIJQS2nCtKkUki0LRql9WCHjef/lR5nsR4O3vqoHzta/ybgbL1uulQm3QuK
NK0391G56sx/KyWDnwQXJMPTCmya2DW7E83pwFCj6C7GUrM3bQSYED9xDSLXPpIf
XG4TXKnGNCX+aDxtdMemBEJP3gh+FP1QlNTh9uC6zpfjYi2Ox4woRZ5Q8Bc5e8kP
/P/Vv87bAgMBAAECggEBAJwyqi3+ZdFtgSJwziGaBG0+/+Ssg49u99ZDXZTIT15Y
JR9KWxgfu3vVcSBovXjYr2aclndadMQySCphV7x+oQMHTVoN+LBaD83WfYfaKmpP
CsAn+XY1n1MCR7mSWaLwJAejYuCFxZgRzy6G03s1FLJF04AnJXfnIfS1aZTmZOqe
uPnTbuEidtLSIsekwnaPXHuMhc0zygY58g3953BSjhSoQoZXZqE5Za9wMHMmpdqC
kva+JoOyDH5brRpvrspo5cFqFTW6NIegzt6k3ekG7oT4dx+XOuPBOt+ZixuihAK1
i/bLpn5KKyTVBwtxFHfUCCJpio7g5atybbk/dAm+JXECgYEA6BI+WhUjGztBBiGq
RETiOq3Sh4agjNojtqKyKZCD5pxlFgW6JG1vxCAVWrxD4jeC6TUq8RfXAfe9mzRR
hmEhiR7DqhJHdsZeablpWgbwrEhhChbNQJGsReRK4k71T0R3YxL/nicltNNU6ofI
rap/WzOuc2J4q2iVGtDJ74gafCcCgYEA1Me9eOKHkQ42TYuGLRF0Oo0mdhzsaM+J
UGO5K75nEUfEhdjvH4MlE62r1nofIUV9sjPrLASlQvpF0u96C2Du0OR5uzzzS2g1
jmfDuZyyupXrcJxVNbXs4pOO5J+4ejhYIuNUwukBuxR2Hifb1k+UoS8psPlGQ4kV
aHyDn/hZpC0CgYAbgc4SL18x4xwZ9fOQk/mcqu3BUpvFFjYVd8NWWeLIetEggx1F
JBOTU5o0XwxMy/egXMTyPrklao/2zYS8QNcQway/g9skoO6f6XIrUZdFVG7sGzfI
53tb7WtS17kL5DmibKYPwOQfQs1V3zJSI1tlHAMZehqDdqn1u7mzwpYhEQKBgAtR
bJSniAqBNQY+664uBX6vz2Hs++4/S9CI3WqkQBs9NAjilyWX9jrru/42lL1SUvNN
q661uIytf1VPA7DjQRC/dnItNcvHCUI/5rtSyHcATnu49RdcS/NpYeprTIbDxHxm
lzWe60amOfo0qI7nwMIqHg+Z0tD407ixFtdFgI8pAoGAHRxJaf1QuJATzI0beF5g
J5to0smQ4kZUYfFQM+KdfeX9Pc0N0bGg11BC7awfXZ0l/SvJCiKOQCqpLe0LLUCr
R0Hhq7uKDKmskrXGs1Zwr4hUOuNUtwp0PAgZats4hK81bxrUs5tO0bzh1qIaAMN0
T8pV8fDZm5UWDCYL28/wHUU=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUXtxlLLbB2Kn4xHW7VIumU+cM6t0wDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMjEwNDA0NDdaFw0yMjEx
MjEwNDA0NDdaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDA5C2UH3g81bAs2gAvbbGZihKjPW14sch5YfiScODI
jX1ZWB+UOvH16bzmZQAiEQn2bfMcSBtkjX50ameCOb0cfbD0Lap0uvjP4Qct80G7
S+wfO57b3Xz4B3YOsZcAWKMyxc7V0GO1IagwWCaF7mIJQS2nCtKkUki0LRql9WCH
jef/lR5nsR4O3vqoHzta/ybgbL1uulQm3QuKNK0391G56sx/KyWDnwQXJMPTCmya
2DW7E83pwFCj6C7GUrM3bQSYED9xDSLXPpIfXG4TXKnGNCX+aDxtdMemBEJP3gh+
FP1QlNTh9uC6zpfjYi2Ox4woRZ5Q8Bc5e8kP/P/Vv87bAgMBAAGjUzBRMB0GA1Ud
DgQWBBSI5tjiSXh6yDvu7R2qp0SW/JS84DAfBgNVHSMEGDAWgBSI5tjiSXh6yDvu
7R2qp0SW/JS84DAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBO
dkN661Dh2/RcANVJg6+8SMKUtjYD91ioGyP8Ym/o5CNSD1e97mBnJAkfQB+54uBP
S7zaUb0d58wTptNXNtSOoB+CTs5TaGG2nnb1AMM4ho+/MvSe1uAffilkvgF1uWya
xD+JI1U/qn7farOWOkk+zv7WCYc5GxnwVtmd3DACokjv1C5qK9XXOWcjmMTaBN38
85H6S6qMCc61oDsSNvfAA15dYgG3lZ6U/F35BbgK0qmtnCIRqRHJVBRa5fDvLD3u
e2HMWt40duT1kQ3sihucZOiIIHFigOxq4ZMOqjVxlnza/G477syYEK0TfzTpoqre
AI8OSxLNiPayHQ7e1GLN
-----END CERTIFICATE-----

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -40,128 +40,125 @@ class Handler(BaseHTTPRequestHandler):
#print(Router.parse_url(self))
#print("data:\t" + self.rfile.read())
#request = Router.parse_url(self)
if self.client_address[0] == '127.0.0.1' or self.client_address[0].startswith('10.0'):
self.send_response(200)
self.end_headers()
if self.path =="/":
#print("data:\t" + self.get_data())
"""
with open('./views/index.html', 'tr') as f:
self.r_t=f.read()
print(self.client_address)
"""
try:
with open('./pkgs.json', 'tr') as fn:
data = fn.read()
pkg_list = json.loads(data)
print(pkg_list)
except Exception(e):
print(e)
self.r_t = json.dumps({"dump_portage": pkg_list})
elif self.path == '/main':
#print(self.rfile.read())
with open("./README.txt", 'r') as f:
self.r_t = str(f.read())
#self.r_t = s
elif self.path == '/ovelays':
overlays = get_list_overlays()
#print(ovls)
if overlays: # == "":
overlays ="Error"
self.r_t=json.dumps({"repositories": overlays})
elif self.path == "":
with open('./favicon.png', 'rb') as f:
self.r_t = f.read()
elif self.path == '/logo.png':
pass
elif self.path.startswith( "/static/"):
self.r_static()
self.send_response(200)
#print(self.r_t)
elif self.path == '/get_dump_list':
try:
with open('./pkgs.json', 'tr') as fn:
data = fn.read()
pkg_list = json.loads(data)
print(pkg_list)
except Exception (e):
print(str(e))
self.r_t = json.dumps({"dump_portage": pkg_list})
self.send_response(200)
self.end_headers()
if self.path =="/":
#print("data:\t" + self.get_data())
"""
with open('./views/index.html', 'tr') as f:
self.r_t=f.read()
print(self.client_address)
"""
try:
with open('./pkgs.json', 'tr') as fn:
data = fn.read()
pkg_list = json.loads(data)
print(pkg_list)
except Exception(e):
print(e)
self.r_t = json.dumps(pkg_list)
elif self.path == '/main':
#print(self.rfile.read())
with open("./README.txt", 'r') as f:
self.r_t = str(f.read())
#self.r_t = s
elif self.path == '/ovelays':
overlays = get_list_overlays()
#print(ovls)
if overlays: # == "":
overlays ="Error"
self.r_t=json.dumps({"repositories": overlays})
elif self.path.startswith("/?st_app="):
config = load_config()
param = self.path.replace("/?st_app=", "")
list_param = param.split(',')
print(list_param)
for i in list_param:
if i.startswith('port'):
port = int(i.split('=')[1])
elif i.startswith('Lang'):
Lang = i.split('=')[1]
write_config(port, Lang)
print(config)
print(param)
elif self.path.startswith("/find?pkg="):
param = self.path.replace("/find?pkg=", "") #request['params']['name']
pk_list = []
search_result = {}
if len(param.split('/')) == 2:
param = param.split('/')[1]
p_list = on_find(param)
print(p_list)
if len(p_list) == 0:
print("Never Found")
self.r_t = str(json.dumps({"Package_result": p_list}))
else:
for p in p_list:
print(p)
if len(param.split("/")) == 2:
pk_list.append(search(param.split("/")[1]))
else:
pk_list.append(search(param))
#print(pk)
search_result = {"Package_result": pk_list}
self.r_t = str(json.dumps(search_result))
elif self.path == "get_settings_app":
self.r_t = str(json.dumps(load_config()))
elif self.path == 'get_portage':
#self.r_t = str(sort_inatll_pkg())
self.r_t = str(json.dumps(scan_config_portage()))
elif '.py?' in self.path:
print("loading")
self.path = str(self.path.split('?')[0])
print(self.path)
self.r_static()
else:
self.send_response(404)
elif self.path == "":
with open('./favicon.png', 'rb') as f:
self.r_t = f.read()
self.end_headers()
print(str(self.client_address[0]) +"\t" + str(404))
elif self.path == '/logo.png':
pass
# Send the html message
#self.wfile.write(bytes(self.r_t, "utf-8"))
elif self.path.startswith( "/static/"):
self.r_static()
self.send_response(200)
#print(self.r_t)
elif self.path == '/get_dump_list':
try:
return self.wfile.write(BytesIO(self.r_t).getvalue())
except TypeError:
#print("TypeError")
return self.wfile.write(bytes(self.r_t, 'UTF-8'))
with open('./pkgs.json', 'tr') as fn:
data = fn.read()
pkg_list = json.loads(data)
print(pkg_list)
except Exception (e):
print(str(e))
self.r_t = json.dumps({"dump_portage": pkg_list})
elif self.path.startswith("/?st_app="):
config = load_config()
param = self.path.replace("/?st_app=", "")
list_param = param.split(',')
print(list_param)
for i in list_param:
if i.startswith('port'):
port = int(i.split('=')[1])
elif i.startswith('Lang'):
Lang = i.split('=')[1]
write_config(port, Lang)
print(config)
print(param)
elif self.path.startswith("/find?pkg="):
param = self.path.replace("/find?pkg=", "") #request['params']['name']
pk_list = []
search_result = {}
if len(param.split('/')) == 2:
param = param.split('/')[1]
p_list = on_find(param)
print(p_list)
if len(p_list) == 0:
print("Never Found")
self.r_t = str(json.dumps({"Package_result": p_list}))
else:
for p in p_list:
print(p)
if len(param.split("/")) == 2:
pk_list.append(search(param.split("/")[1]))
else:
pk_list.append(search(param))
#print(pk)
search_result = {"Package_result": pk_list}
self.r_t = str(json.dumps(search_result))
elif self.path == "get_settings_app":
self.r_t = str(json.dumps(load_config()))
elif self.path == 'get_portage':
#self.r_t = str(sort_inatll_pkg())
self.r_t = str(json.dumps(scan_config_portage()))
elif '.py?' in self.path:
print("loading")
self.path = str(self.path.split('?')[0])
print(self.path)
self.r_static()
else:
self.r_403()
self.send_response(404)
self.end_headers()
print(str(self.client_address[0]) +"\t" + str(404))
# Send the html message
#self.wfile.write(bytes(self.r_t, "utf-8"))
try:
return self.wfile.write(BytesIO(self.r_t).getvalue())
except TypeError:
#print("TypeError")
return self.wfile.write(bytes(self.r_t, 'UTF-8'))
def r_static(self):
if os.path.exists('./views/' + self.path):

10
start

@ -1,7 +1,15 @@
#/bin/bash
#rm ./gpo-repositories.xml
#wget http://gpo.zugaina.org/lst/gpo-repositories.xml &&
openssl req -new -x509 -keyout localhost.pem -out localhost.pem -days 365 -nodes
openssl req -new -x509 -keyout localhost.pem -out localhost.pem -nodes -days 365
#openssl req -x509 -out localhost.pem -keyout localhost.key \
#
# latsed gen localhost.pem for https://
#openssl req -x509 -nodes -new -sha512 -days 365 -newkey rsa:4096 -keyout ca.key -out localhost.pem -subj "/C=US/CN=MY-CA"
# -newkey rsa:2048 -nodes -sha256 \
# -subj '/CN=localhost' -extensions EXT -config <( \
# printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
python3 server.py
#python client.py

@ -28,50 +28,61 @@ def enable_overlays():
def get_list_overlays():
overlays =[]
url = "https://qa-reports.gentoo.org/output/repos/repositories.xml" # "https://api.gentoo.org/overlays/repositories.xml"
response = request.urlopen(url)
overlays = []
overlay = {}
includes =[]
root = ET.fromstring(response.read())
#print(root.tag)
#print(root.attrib)
name = ""
description = ""
homepage = ""
feed =""
for d, dirs, files in os.walk('/var/db/repos'):
if(d == "/var/db/repos"):
inc = dirs
else:
break
for child in root.findall('repo'):
name = child.find('name').text
try:
description = child.find('description').text
except AttributeError:
description = "У overlay нет описания"
try:
homepage = child.find('homepage').text
except AttributeError:
homepage = "У overlay нет домашней странички"
if(os.path.exists("./overlays.json")):
with opeen("./overlays.json") as fn:
OverlayList = json.load(fn)(fn.read())
else:
try:
feed = child.find('feed').text
except AttributeError:
feed = "У overlay нет ссылки и на дерево"
overlay =dict(name=name, description=description, homepage=homepage, feed=feed)
if name in inc:
includes.append(overlay)
response = request.urlopen(url)
return 1
overlays = []
overlay = {}
includes =[]
root = ET.fromstring(response.read())
#print(root.tag)
#print(root.attrib)
name = ""
description = ""
homepage = ""
feed =""
for d, dirs, files in os.walk('/var/db/repos'):
if(d == "/var/db/repos"):
inc = dirs
else:
break
for child in root.findall('repo'):
name = child.find('name').text
try:
description = child.find('description').text
except AttributeError:
description = "У overlay нет описания"
try:
homepage = child.find('homepage').text
except AttributeError:
homepage = "У overlay нет домашней странички"
try:
feed = child.find('feed').text
except AttributeError:
feed = "У overlay нет ссылки и на дерево"
overlay =dict(name=name, description=description, homepage=homepage, feed=feed)
if name in inc:
includes.append(overlay)
overlays.append(overlay)
#print(str(overlays))
print(len(overlays))
with open('./overlays.json', 'a') as f:
f.write(json.dumps({"repositories": dict(all=overlays, include=includes)}))
#f.close()
OvrelaList = dict(all=overlays, include=includes)
except Exception as e:
print(e)
return 1
overlays.append(overlay)
#print(str(overlays))
print(len(overlays))
with open('./overlays.json', 'a') as f:
f.write(json.dumps({"repositories": overlays}))
#f.close()
return dict(all=overlays, include=includes)
return OverlayList # dict(all=overlays, include=includes)
def xml_element_to_dict(elem):

Loading…
Cancel
Save