[Twisted-web] mailman with twisted

Tommi Virtanen tv at twistedmatrix.com
Thu Feb 10 16:10:38 MST 2005


Andrea Arcangeli wrote:
> Index: Nevow/nevow/vhost.py
> ===================================================================
> --- Nevow/nevow/vhost.py	(revision 1192)
> +++ Nevow/nevow/vhost.py	(working copy)
> @@ -19,7 +19,7 @@
>  """
>  
>      def getStyleSheet(self):
> -        return self.stylesheet
> +        return VirtualHostList.stylesheet
>   
>      def data_hostlist(self, context, data):
>          return self.nvh.hosts.keys()

Why would you do that?

self.stylesheet allows subclasses to override the stylesheet easily.

> Index: Nevow/nevow/static.py
> ===================================================================
> --- Nevow/nevow/static.py	(revision 1192)
> +++ Nevow/nevow/static.py	(working copy)
> @@ -271,7 +271,7 @@
>              return self.redirect(request)
>  
>          #for content-length
> -        fsize = size = self.getFileSize()
> +        fsize = csize = self.getFileSize()
>  
>          request.setHeader('accept-ranges','bytes')
>  
> @@ -302,20 +302,20 @@
>                         "Syntactically invalid http range header!"
>                  start, end = string.split(bytesrange[1],'-')
>                  if start:
> -                    f.seek(int(start))
> +                    start = int(start)
> +                    f.seek(start)
>                  if end:
> -                    end = int(end)
> -                    size = end
> +                    csize = int(end) - start + 1
>                  else:
> -                    end = size
> +                    csize -= start
>                  request.setResponseCode(http.PARTIAL_CONTENT)
>                  request.setHeader('content-range',"bytes %s-%s/%s " % (
> -                    str(start), str(end), str(size)))
> +                    str(start), str(end), str(fsize)))
>                  #content-length should be the actual size of the stuff we're
>                  #sending, not the full size of the on-server entity.
>                  fsize = end - int(start)
>  
> -            request.setHeader('content-length', str(fsize))
> +            request.setHeader('content-length', str(csize))
>          except:
>              traceback.print_exc(file=log.logfile)
>  
> @@ -323,7 +323,7 @@
>              return ''
>  
>          # return data
> -        FileTransfer(f, size, request)
> +        FileTransfer(f, csize, request)
>          # and make sure the connection doesn't get closed
>          return request.deferred
>  

This part I just wrote independently and committed.

> @@ -354,17 +354,16 @@
>          self.file = file
>          self.size = size
>          self.request = request
> -        self.written = self.file.tell()
>          request.registerProducer(self, 0)
>  
>      def resumeProducing(self):
>          if not self.request:
>              return
> -        data = self.file.read(min(abstract.FileDescriptor.bufferSize, self.size - self.written))
> +        data = self.file.read(min(abstract.FileDescriptor.bufferSize, self.size))
>          if data:
> -            self.written += len(data)
>              self.request.write(data)
> -        if self.file.tell() == self.size:
> +            self.size -= len(data)
> +        if self.size <= 0:
>              self.request.unregisterProducer()
>              self.request.finish()
>              self.request = None

..and now this part, too. r1197



More information about the Twisted-web mailing list