From ebd640a9c5d308c0ba115fea6c8cc0666010eab6 Mon Sep 17 00:00:00 2001 From: Alvaro Neira Ayuso Date: Thu, 12 Dec 2019 15:53:38 +0100 Subject: Add ogProcess and ogOperation for linux Thoses new classes allows us to process and execute commands from server side sent using HTTP format. --- src/linux/__init__.py | 0 src/linux/ogOperations.py | 3 +++ src/ogClient.py | 5 +++++ src/ogProcess.py | 20 ++++++++++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 src/linux/__init__.py create mode 100644 src/linux/ogOperations.py create mode 100644 src/ogProcess.py (limited to 'src') diff --git a/src/linux/__init__.py b/src/linux/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/linux/ogOperations.py b/src/linux/ogOperations.py new file mode 100644 index 0000000..e11fb0d --- /dev/null +++ b/src/linux/ogOperations.py @@ -0,0 +1,3 @@ +def poweroff(): + print 'APAGADO' + diff --git a/src/ogClient.py b/src/ogClient.py index b54d736..2c57730 100644 --- a/src/ogClient.py +++ b/src/ogClient.py @@ -4,6 +4,7 @@ import socket import time from HTTPParser import * +from ogProcess import * from enum import Enum class State(Enum): @@ -67,6 +68,7 @@ class ogClient: self.data = self.data + data httpparser = HTTPParser() + ogprocess = ogProcess() if not self.trailer: if self.data.find("\r\n") > 0: @@ -81,6 +83,9 @@ class ogClient: if self.trailer and len(self.data) >= self.content_len: httpparser.parser(self.data) + print httpparser.getRequestOP() + print httpparser.getURI() + ogprocess.processOperation(httpparser.getRequestOP(), httpparser.getURI()) self.sock.send("HTTP/1.0 200 OK\r\n\r\n") diff --git a/src/ogProcess.py b/src/ogProcess.py new file mode 100644 index 0000000..35abb89 --- /dev/null +++ b/src/ogProcess.py @@ -0,0 +1,20 @@ +import threading +import platform +import time + +print(platform.system()) + +if platform.system() == 'Linux': + from linux import ogOperations + +class ogProcess(): + def processOperation(self, op, URI): + if ("poweroff" in URI): + self.process_poweroff() + + def process_poweroff(self): + # Powering off thread + def pwoff(): + time.sleep(2) + ogOperations.poweroff() + threading.Thread(target=pwoff).start() -- cgit v1.2.3-18-g5258