o2on svn commit
o2on-****@lists*****
2009年 9月 13日 (日) 13:39:10 JST
Revision: 171 http://sourceforge.jp/projects/o2on/svn/view?view=rev&revision=171 Author: nawota Date: 2009-09-13 13:39:10 +0900 (Sun, 13 Sep 2009) Log Message: ----------- parse first line before encoding. return 404 when client_address could not get. Modified Paths: -------------- trunk/opy2on/lib/o2on_key.py trunk/opy2on/lib/o2on_server.py Modified: trunk/opy2on/lib/o2on_key.py =================================================================== --- trunk/opy2on/lib/o2on_key.py 2009-09-05 12:47:03 UTC (rev 170) +++ trunk/opy2on/lib/o2on_key.py 2009-09-13 04:39:10 UTC (rev 171) @@ -64,6 +64,9 @@ data = dat.data() self.size = len(data) first = data.split("\n",1)[0] + m = re.compile(r'^.*<>.*<>.*<>.*<>(.*)$').match(first) + if m: first = m.group(1) + else: self.title = None try: first = first.decode('cp932').encode('utf-8') except UnicodeDecodeError, inst: @@ -71,8 +74,7 @@ first = first.decode('euc_jp').encode('utf-8') except UnicodeDecodeError, inst: first = first.decode('cp932','opy2on_replace').encode('utf-8') - m = re.compile(r'^.*<>.*<>.*<>.*<>(.*)$').match(first) - if m: self.title = m.group(1) + self.title = first self.url = "http://xxx.%s/test/read.cgi/%s/%s/" % (dat.domain, dat.board, dat.datnum) @@ -174,7 +176,8 @@ res = [] for x in sorted(self.publishmap.keys()): for y in self.publishmap[x]: - res.append(self.keys[y]) + tmp = self.keys.get(y) + if tmp: res.append(tmp) return res def published(self, idkeyhash, publish_time): if len(idkeyhash) != 20: raise Exception Modified: trunk/opy2on/lib/o2on_server.py =================================================================== --- trunk/opy2on/lib/o2on_server.py 2009-09-05 12:47:03 UTC (rev 170) +++ trunk/opy2on/lib/o2on_server.py 2009-09-13 04:39:10 UTC (rev 171) @@ -386,8 +386,6 @@ if ".." in datpath: return self.response_400("datpath include ..") if not dat.setpath(datpath): return self.response_400("invalid datpath") if not dat.save(data): - logger.log("P2PSERVER", - "I don't like this omiyage dat %s" % self.client_address[0]) return self.response_400("invalid omiyage") else: self.server.glob.datdb.add_dat(dat) @@ -573,7 +571,7 @@ def response_400(self, reason=""): logger = self.server.glob.logger logger.log("P2PSERVER", - "response 400 %s (%s)" % (self.client_address[0], reason)) + "response 400 %s (%s)" % (hexlify(self.client_address[0]), reason)) logger.log("P2PSERVER", "\tpath was %s" % self.path) logger.log("P2PSERVER", "\theader was %s" % self.headers) header = common_header.copy() @@ -582,7 +580,6 @@ self.wfile.write("\r\n") self.wfile.close() def response_404(self): - #print "p2p server response 404 %s" % self.client_address[0] header = common_header.copy() self.wfile.write("HTTP/1.0 404 Not Found\r\n") for h in header: self.wfile.write("%s: %s\r\n" % (h,header[h])) @@ -598,6 +595,8 @@ def do_POST(self): self.do_GET() def do_GET(self): + if not self.client_address: return self.response_404() + self.server.glob.logger.log("P2PSERVER", "connection came %s" % (self.path)) nid = self.headers.getheader('X-O2-Node-ID')