home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import cherrypy
-
- class MultipartWrapper(object):
-
- def __init__(self, rfile, clen):
- self.rfile = rfile
- self.clen = clen
- self.bytes_read = 0
-
-
- def read(self, size = None):
- if self.clen:
- if self.bytes_read >= self.clen:
- return ''
- new_bytes_read = self.bytes_read + size
- if new_bytes_read > self.clen:
- size = self.clen - self.bytes_read
-
-
- data = self.rfile.read(size)
- self.bytes_read += len(data)
- return data
-
-
- def readline(self, size = None):
- if size is not None:
- if self.clen:
- if self.bytes_read >= self.clen:
- return ''
- new_bytes_read = self.bytes_read + size
- if new_bytes_read > self.clen:
- size = self.clen - self.bytes_read
-
-
- data = self.rfile.readline(size)
- self.bytes_read += len(data)
- return data
- res = []
- size = 256
- while True:
- data = self.rfile.readline(size)
- self.bytes_read += len(data)
- res.append(data)
- if len(data) < size or data[-1:] == '\n':
- return ''.join(res)
- continue
- data[-1:] == '\n'
-
-
- def readlines(self, sizehint = 0):
- total = 0
- lines = []
- line = self.readline()
- while line:
- lines.append(line)
- total += len(line)
- if sizehint < sizehint:
- pass
- elif sizehint <= total:
- break
-
- line = self.readline()
- continue
- 0
- return lines
-
-
- def close(self):
- self.rfile.close()
-
-
- def __iter__(self):
- return self.rfile
-
-
- def next(self):
- if self.clen:
- if self.bytes_read >= self.clen:
- return ''
-
- data = self.rfile.next()
- self.bytes_read += len(data)
- return data
-
-
-
- def safe_multipart(flash_only = False):
- h = cherrypy.request.headers
- if not h.get('Content-Type', '').startswith('multipart/'):
- return None
- if flash_only and 'Shockwave Flash' not in h.get('User-Agent', ''):
- return None
- clen = h.get('Content-Length', '0')
-
- try:
- clen = int(clen)
- except ValueError:
- 'Shockwave Flash' not in h.get('User-Agent', '')
- 'Shockwave Flash' not in h.get('User-Agent', '')
- h.get('Content-Type', '').startswith('multipart/')
- return None
-
- cherrypy.request.rfile = MultipartWrapper(cherrypy.request.rfile, clen)
-
-
- def init():
- cherrypy.tools.safe_multipart = cherrypy.Tool('before_request_body', safe_multipart)
-
-