req_id = req['id']\r
raise InvalidRequest(req_id)\r
req_id = req['id']\r
+ if (req['method']=='shut_down'):\r
+ return 'shut_down',[],req_id\r
if not (self.scapy_master.supported_methods(req['method'])):\r
raise MethodNotFound(req_id)\r
scapy_method = eval("self.scapy_master."+req['method'])\r
finally:\r
return response\r
\r
+#arg1 is port number for the server to listen to\r
+def main(arg1=4507):\r
+ s = Scapy_server(arg1)\r
+ s.activate()\r
+\r
+if __name__=='__main__':\r
+ if len(sys.argv)>1:\r
+ parser = ArgumentParser(description=' Runs Scapy Server ')\r
+ parser.add_argument('-s','--scapy-port',type=int, default = 4507, dest='scapy_port',\r
+ help='Select port to which Scapy Server will listen to.\n default is 4507\n',action='store')\r
+ args = parser.parse_args()\r
+ port = args.scapy_port\r
+ sys.exit(main(port))\r
+ else:\r
+ sys.exit(main())\r
\r
\r
-parser = ArgumentParser(description=' Runs Scapy Server ')\r
-parser.add_argument('-s','--scapy-port',type=int, default = 4507, dest='scapy_port',\r
- help='Select port to which Scapy Server will listen to.\n default is 4507\n',action='store')\r
-args = parser.parse_args()\r
\r
-port = args.scapy_port\r
\r
class Scapy_server():\r
def __init__(self, port=4507):\r
message = self.socket.recv()\r
try:\r
method,params,req_id = self.scapy_wrapper.parse_req_msg(message)\r
- result = self.scapy_wrapper.execute(method,params)\r
+ if (method == 'shut_down'):\r
+ print 'Shut down by remote user'\r
+ result = 'Server shut down command received - server has shut down'\r
+ else:\r
+ result = self.scapy_wrapper.execute(method,params)\r
response = self.scapy_wrapper.create_success_response(result,req_id)\r
except Exception as e:\r
exception_details = self.scapy_wrapper.get_exception()\r
json_response = json.dumps(response)\r
# Send reply back to client\r
self.socket.send(json_response)\r
+ if (method =='shut_down'):\r
+ break\r
+\r
except KeyboardInterrupt:\r
print('Terminated By Ctrl+C')\r
\r
+ finally:\r
+ self.socket.close()\r
+ self.context.destroy()\r
+\r
\r
-#s = Scapy_server(port)\r
-#s.activate()\r
\r
-#arg1 is port number for the server to listen to\r
-def main(arg1=4507):\r
- s = Scapy_server(arg1)\r
- s.activate()\r
\r
-if __name__=='__main__':\r
- if len(sys.argv)>1:\r
- sys.exit(main(int(sys.argv[2])))\r
- else:\r
- sys.exit(main())\r