added a little bit better messaging, getopts to server side, stuff for mysql access, and config file support

This commit is contained in:
jchu 2004-09-03 19:48:42 +00:00
parent a4710414e0
commit 25b0104806
2 changed files with 38 additions and 3 deletions

View file

@ -22,8 +22,16 @@ import struct
import cgi import cgi
import urllib import urllib
import md5 import md5
import MySQLdb
import MySQLdb.connections
import ConfigParser
import getopt
import os.path
CACHEDIR = '/var/cache/tupkgs/' CACHEDIR = '/var/cache/tupkgs/'
CONFIGFILE = '/etc/tupkgs.conf'
config = ConfigParser.ConfigParser()
class ClientFile: class ClientFile:
def __init__(self, filename, actual_size, actual_md5): def __init__(self, filename, actual_size, actual_md5):
@ -155,23 +163,46 @@ class ServerSocket(threading.Thread):
sread, swrite, serror = select.select([self.socket],[self.socket],[self.socket],5) sread, swrite, serror = select.select([self.socket],[self.socket],[self.socket],5)
if sread: if sread:
(clientsocket, address) = self.socket.accept() (clientsocket, address) = self.socket.accept()
print "New connection from " + str(address)
ct = ClientSocket(clientsocket) ct = ClientSocket(clientsocket)
ct.start() ct.start()
self.clients.append(ct) self.clients.append(ct)
print len(self.clients)
self.clients = filter(self._clean, self.clients) self.clients = filter(self._clean, self.clients)
print len(self.clients)
self.socket.close() self.socket.close()
[x.close() for x in self.clients] [x.close() for x in self.clients]
[x.join() for x in self.clients] [x.join() for x in self.clients]
def usage(name):
print "usage: " + name + " [options]"
print "options:"
print " -c, --config Specify an alternate config file (default " + CONFIGFILE + ")"
sys.exit(2)
def main(argv=None): def main(argv=None):
if argv is None: if argv is None:
argv = sys.argv argv = sys.argv
try:
optlist, args = getopt.getopt(argv[1:], "c:", ["config="])
except getopt.GetoptError:
usage(argv[0])
conffile = CONFIGFILE
for i, k in optlist:
if i in ('-c', '--config'):
conffile = k
if not os.path.isfile(conffile):
print "Error: cannot access config file ("+conffile+")"
usage(argv[0])
config.read(conffile)
running = 1 running = 1
print "Starting ServerSocket"
servsock = ServerSocket() servsock = ServerSocket()
servsock.start() servsock.start()
@ -182,7 +213,7 @@ def main(argv=None):
except KeyboardInterrupt: except KeyboardInterrupt:
running = 0 running = 0
print "Just cleaning up stuff" print "Cleaning up stuff"
servsock.close() servsock.close()

4
tupkg/server/tupkgs.conf Normal file
View file

@ -0,0 +1,4 @@
[mysql]
username = aur
password = aur
host = localhost