diff options
author | Goblin911 <[email protected]> | 2013-08-26 22:03:11 +0800 |
---|---|---|
committer | Goblin911 <[email protected]> | 2013-08-26 22:03:11 +0800 |
commit | a33623ec00b323272fe1cf5188c64f2e495da18f (patch) | |
tree | 5259512eca35861f5c56b67197b62be1588d926e /server | |
parent | 9b17e1808a93840c265123925c2b60e55c2ec930 (diff) | |
parent | cf77f61bff7822b35020f2877ca4e6e683981be1 (diff) |
Merge branch 'master' of ssh://github.com/Determinant/piztor
Diffstat (limited to 'server')
-rw-r--r-- | server/piztor/prob.py | 95 | ||||
-rw-r--r-- | server/piztor/server.py | 10 |
2 files changed, 55 insertions, 50 deletions
diff --git a/server/piztor/prob.py b/server/piztor/prob.py index 0ed328f..20b6779 100644 --- a/server/piztor/prob.py +++ b/server/piztor/prob.py @@ -6,7 +6,7 @@ def get_hex(data): return "".join([hex(ord(c))[2:].zfill(2) for c in data]) host = "localhost" -port = 9990 +port = 2222 def gen_auth(username, password): length = 4 + 1 + len(username) + 1 + len(password) + 1 @@ -56,52 +56,59 @@ def send(data): from sys import argv -if len(argv) == 2: - host = argv[1] - username = "hello" password = "world" gid = 1 -resp = send(gen_auth(username, password)) -pl, optcode, status, uid, token = unpack("!LBBL32s", resp) -print "size: " + str((pl, len(resp))) -print "opt: " + str(optcode) -print "status: " + str(status) -print "uid: " + str(uid) -print "token: " + get_hex(token) - -resp = send(gen_update_location(token, username, random(), random())) -pl, optcode, status = unpack("!LBB", resp) -print "size: " + str((pl, len(resp))) -print "opt: " + str(optcode) -print "status: " + str(status) - -resp = send(gen_request_location(token, username, gid)) -print len(resp) -pl, optcode, status = unpack("!LBB", resp[:6]) -print "size: " + str((pl, len(resp))) -idx = 6 -print "length: " + str(len(resp[6:])) -while idx < pl: - print len(resp[idx:idx + 20]) - uid, lat, lng = unpack("!Ldd", resp[idx:idx + 20]) - idx += 20 - print (uid, lat, lng) - -resp = send(gen_request_user_info(token, username, uid)) -pl, optcode, status = unpack("!LBB", resp[:6]) -print "size: " + str((pl, len(resp))) +if len(argv) == 2: + host = argv[1] -idx = 6 -while idx < pl: - info_key, = unpack("!B", resp[idx:idx + 1]) - idx += 1 - print info_key - if info_key == 0x00: - info_value, = unpack("!L", resp[idx:idx + 4]) - idx += 4 - elif info_key == 0x01: - info_value, = unpack("!B", resp[idx:idx + 1]) +if len(argv) == 3: + username = argv[1] + password = argv[2] + +for i in xrange(10): + resp = send(gen_auth(username, password)) + pl, optcode, status, uid, token = unpack("!LBBL32s", resp) + print "size: " + str((pl, len(resp))) + print "opt: " + str(optcode) + print "status: " + str(status) + print "uid: " + str(uid) + print "token: " + get_hex(token) + + resp = send(gen_update_location(token, username, random(), random())) + pl, optcode, status = unpack("!LBB", resp) + print "size: " + str((pl, len(resp))) + print "opt: " + str(optcode) + print "status: " + str(status) + + resp = send(gen_request_location(token, username, gid)) + print len(resp) + pl, optcode, status = unpack("!LBB", resp[:6]) + print "size: " + str((pl, len(resp))) + idx = 6 + print "length: " + str(len(resp[6:])) + while idx < pl: + print len(resp[idx:idx + 20]) + uid, lat, lng = unpack("!Ldd", resp[idx:idx + 20]) + idx += 20 + print (uid, lat, lng) + + resp = send(gen_request_user_info(token, username, uid)) + pl, optcode, status = unpack("!LBB", resp[:6]) + print "size: " + str((pl, len(resp))) + + idx = 6 + while idx < pl: + info_key, = unpack("!B", resp[idx:idx + 1]) idx += 1 - print (info_key, info_value) + print info_key + if info_key == 0x00: + info_value, = unpack("!L", resp[idx:idx + 4]) + idx += 4 + elif info_key == 0x01: + info_value, = unpack("!B", resp[idx:idx + 1]) + idx += 1 + print (info_key, info_value) + from time import sleep + sleep(10) diff --git a/server/piztor/server.py b/server/piztor/server.py index 5d2382d..d0cfc34 100644 --- a/server/piztor/server.py +++ b/server/piztor/server.py @@ -139,7 +139,7 @@ class UserAuthHandler(RequestHandler): logger.info("Logged in sucessfully: {0}".format(username)) uauth.regen_token() session.commit() - logger.info("new token generated: " + get_hex(uauth.token)) + logger.info("New token generated: " + get_hex(uauth.token)) return struct.pack("!LBBL32s", UserAuthHandler._response_size, _OptCode.user_auth, _StatusCode.sucess, @@ -333,7 +333,7 @@ class PTP(Protocol, TimeoutMixin): def dataReceived(self, data): self.buff += data self.resetTimeout() - print len(self.buff) + logger.info("Buffer length is now: %d", len(self.buff)) if len(self.buff) > 4: try: self.length, self.optcode = struct.unpack("!LB", self.buff[:5]) @@ -342,9 +342,7 @@ class PTP(Protocol, TimeoutMixin): except struct.error: logger.warning("Invalid request header") raise BadReqError("Malformed request header") - print self.length - if self.length == -1: - return + if self.length == -1: return if len(self.buff) == self.length: h = handlers[self.optcode]() reply = h.handle(self.buff[5:]) @@ -366,6 +364,6 @@ class PTPFactory(Factory): def buildProtocol(self, addr): return PTP(self) -endpoint = TCP4ServerEndpoint(reactor, 9990) +endpoint = TCP4ServerEndpoint(reactor, 2222) endpoint.listen(PTPFactory()) reactor.run() |