[o2on-svn] [171] parse first line before encoding.

Back to archive index

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')




o2on-svn メーリングリストの案内
Back to archive index