import time
import pickle
import signal
+import struct
from daemon import Daemon
from Util import *
def set_address(self, ip):
self.ip = ip
- print "am setat ip ", ip
def set_port(self, port):
self.port = port
- print "am setat port ", port
def run(self):
- self.doServer(self.ip, self.port)
+ self.do_Server(self.ip, self.port)
def recv_pickled_data(self, clientsock):
msg = ''
print "Server: started client with pid = ", pid
return pid
- """Simple test
-
- btcr = TransmissionRun("/usr/bin/transmissioncli")
- btcr.config_run("/home/adriana/p2p/p2p-dld/transmission",
- "/home/adriana/p2p/p2p-log/transmission",
- "scrubs.out", "/home/adriana/p2p/",
- "transmission-scrubs.log", 10150,
- "/home/adriana/p2p/p2p-meta/scrubs.torrent")
-
- btcr.start()
- btcr.run_client(btcr.simple_run_command)
- """
"""
Stops a BT client by killing it.
return -1
info_list = [info_dict[CLIENT],info_dict[TORRENT]]
if LOG_DIR in info_dict:
- info_list.append(info_dict[LOG_DIR], LOG_DIR)
+ info_list.append((info_dict[LOG_DIR], LOG_DIR))
if OUT_FILE in info_dict:
- info_list.append(info_dict[OUT_FILE], OUT_FILE)
+ info_list.append((info_dict[OUT_FILE], OUT_FILE))
if LOG_FILE in info_dict:
- info_list.append(info_dict[LOG_FILE], LOG_FILE)
+ info_list.append((info_dict[LOG_FILE], LOG_FILE))
+ print info_list
file_list.append (info_list)
return 0 # success
+ def set_linger(self,sock, l_onoff, l_linger):
+ """Sets the SO_LINGER value on a socket."""
+ sock.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER,
+ struct.pack('ii', l_onoff, l_linger))
+
+
"""
Accepts socket connections and receives messages from commander.
"""
- def doServer(self, ip, port):
+ def do_Server(self, ip, port):
- serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self.serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if(self.DEBUG):
print "Server: host ip = %s, port = %s"%(ip,SERVER_PORT)
- serversocket.bind((ip,SERVER_PORT));
- serversocket.listen(10) #max 10 requests
+ self.serversocket.bind((ip,SERVER_PORT));
+ self.serversocket.listen(10) #max 10 requests
+ self.set_linger(self.serversocket,1, 2)
while(1):
if(self.DEBUG):
print "Server: accepting connections"
- (clientsock, address) = serversocket.accept();
+ (clientsock, address) = self.serversocket.accept();
if(self.DEBUG):
print "Server: accepted connection from ", address
elif msg[0] == GET_OUTPUT:
- print "LA get output\n"
import os.path
if not os.path.exists(SESSIONS_FILE):
print "Error: No sessions_file"
file_list = []
try:
while line != '':
- print line
if size == 0:
- print "aici la size = 0"
if info_dict != {} and self.add_to_output_msg(file_list, info_dict) < 0:
- print "aici"
raise Exception
- print "aici3ia"
size = int(line)
- print "aici3"
info_dict = {}
else:
parts = line.strip().split(':')
if len(parts) != 2:
- print "aici2"
raise Exception
info_dict[parts[0]] = parts[1]
size = size - 1
daemon = MyDaemon('/tmp/daemon-example.pid', sys.argv[2], stdout = '/home/p2p/out', stderr = '/home/p2p/err')
daemon.start()
elif 'stop' == sys.argv[1]:
- daemon = MyDaemon('/tmp/daemon-example.pid')
+ daemon = MyDaemon('/tmp/daemon-example.pid')
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon = MyDaemon('/tmp/daemon-example.pid')
daemon.restart()
elif 'no' == sys.argv[1]: #no daemon
daemon = MyDaemon('/tmp/daemon-example.pid', sys.argv[2], stdout = '/home/p2p/out', stderr = '/home/p2p/err')
- daemon.doServer(sys.argv[2],"")
+ daemon.do_Server(sys.argv[2],"")
else:
print "Unknown command"
sys.exit(2)