line = f.readline()
size = 0
info_dict = {}
+ dicts = [] #list with all info_dict dictionaries
try:
while line != '':
print line
if size == 0 :
if info_dict != {} :
- if self.add_to_output_msg(file_list, info_dict) < 0:
- raise Exception
- if create_archive:
- self.archive_files(info_dict,archives_list)
+ if info_dict not in dicts:
+ if self.add_to_output_msg(file_list, info_dict) < 0:
+ raise Exception
+ dicts.append(info_dict)
+ if create_archive:
+ self.archive_files(info_dict,archives_list)
size = int(line)
info_dict = {}
size = size - 1
line = f.readline()
- if size == 0 and info_dict != {}:
+ if size == 0 and info_dict != {} and info_dict not in dicts:
if self.add_to_output_msg(file_list, info_dict) < 0:
raise Exception
if create_archive:
""" Stops a BT client by killing it."""
int_pid = int(pid)
+ if int_pid == -1 or int_pid not in self.processes_fd.keys():
+ return "Invalid pid " + pid
os.kill(int_pid, signal.SIGKILL) # kill generates zombies
os.wait()
self.processes_fd[int_pid][0].close()
self.processes_fd[int_pid][1].close()
+
del self.processes_fd[int_pid]
+ del self.processes_info[int_pid]
if(self.DEBUG):
print "Server: killed process with pid = ", pid
+ return ""
def set_linger(self,sock, l_onoff, l_linger):
"""Sets the SO_LINGER value on a socket."""
elif msg[0] == STOP_MSG:
client_pid = msg[1]
- self.stop_bt_client(client_pid)
+ err_msg = self.stop_bt_client(client_pid)
response = ""
elif msg[0] == GET_OUTPUT:
#!/usr/bin/env python
#
# Parser for verbose messages
-# author: Adriana Draghici
+# author: Adriana Draghici <
#
import sys
-from DatabaseWriter import DatabaseWriter
-from DatabaseCommander import DatabaseCommander
-import julian
import datetime
import getopt
+import julian
+import logging
import re
+from DatabaseWriter import DatabaseWriter
+from DatabaseCommander import DatabaseCommander
# the names used by Tribler for the BitTorrent messages
msg_types = {"BT_REQUEST_SEND": "new_request", "BT_REQUEST_RECV": "REQUEST(", "BT_CHOKE": "CHOKE from", "BT_UNCHOKE": "UNCHOKE from",
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid date & time format for Connecter. "
+ logger.error("Error: invalid date & time format for Connecter. ")
return None
nr_parts = len(line_parts)
if nr_parts < 7 :
- print "Error: invalid line format for Connecter. ", line
+ logger.error("Error: invalid line format for Connecter. " + line)
return None
peer_ip = line_parts[nr_parts-1];
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid date & time format for Connecter."
+ logger.error("Error: invalid date & time format for Connecter.")
return None
nr_parts = len(line_parts)
if nr_parts < 7 :
- print "Error: invalid line format for Connecter.", line
+ logger.error("Error: invalid line format for Connecter." + line)
return None
peer_ip = line_parts[nr_parts-1];
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid date & time format for Connecter."
+ logger.error("Error: invalid date & time format for Connecter.")
return None
nr_parts = len(line_parts)
if nr_parts < 9 :
- print "Error: invalid line format for Connecter.", line
+ logger.error("Error: invalid line format for Connecter." + line)
return None
index = int(line_parts[5])
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid date & time format for Connecter."
+ logger.error("Error: invalid date & time format for Connecter.")
return None
nr_parts = len(line_parts)
if nr_parts < 7 :
- print "Error: invalid line format for Connecter.", line
+ logger.error("Error: invalid line format for Connecter." + line)
return None
peer_ip = line_parts[nr_parts-1];
line_parts = re.split(" *", line)
if len(line_parts) < msg_parts :
- print "Error: invalid line format for ", file,
+ logger.error("Error: invalid line format for " + file)
return None
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid line format for ", file
+ logger.error("Error: invalid line format for " + file)
return None
# Send request message
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid date & time format for Connecter."
+ logger.error("Error: invalid date & time format for Connecter.")
return None
nr_parts = len(line_parts)
if nr_parts < 9 :
- print "Error: invalid line format for Connecter.", line
+ logger.error("Error: invalid line format for Connecter."+ line)
return None
index = int(line_parts[5])
timestamp = tribler_parse_timestamp(line_parts[0], line_parts[1])
if timestamp == None:
- print "Error: invalid date & time format for Connecter."
+ logger.error("Error: invalid date & time format for Connecter.")
return None
nr_parts = len(line_parts)
if nr_parts < 6 :
- print "Error: invalid line format for Connecter.", line
+ logger.error("Error: invalid line format for Connecter."+ line)
return None
line_parts = re.split("[ :-]*", line)
msg_type, index, begin, length, listen_port)
except IOError:
- print "Error processing file %s." %filename
+ logger.error("Error processing file " + filename)
def main_just_parse():
filename = sys.argv[1]
assert False, "unhandled option"
if client_session_id == None:
- print "Error: no client session id."
+ logger.error("Error: no client session id.")
sys.exit(2)
if filename == None:
- print "Error: no status file."
+ logger.error("Error: no status file.")
sys.exit(2)
# no database passed as argument
if len(args) != 1:
- print "Error: no database file passed as argument."
+ logger.error("Error: no database file passed as argument.")
sys.exit(2)
database = args[0]
# check for client_session_id, swarm_id, btclient_id
cursor = dbc.select_client_sessions_by_id(client_session_id)
if cursor == None:
- print "Error: no client session id (%d) in database." % client_session_id
+ logger.error("Error: no client session id ("+ str(client_session_id) + ") in database." )
sys.exit(2)
for session_row in cursor:
pass
cursor = dbc.select_swarms(swarm_id)
if cursor == None:
- print "Error: no swarm id (%d) in database." % swarm_id
+ logger.error("Error: no swarm id ("+ str(swarm_id) +") in database." )
+
sys.exit(2)
for swarm_row in cursor:
pass