Exemple #1
0
 def do_GET(self):
     if self.path == '/':
         self.send_response(301)
         self.send_header("Location", "/cgi-bin/index.py")
         self.end_headers()            
     else:
         CGIHTTPRequestHandler.do_GET(self)
Exemple #2
0
 def do_GET(self):
     """Serve a GET request."""
     if not self.allow_path():
         self.send_error(403)
     elif self.is_brat():
         self.run_brat_direct()
     else:
         CGIHTTPRequestHandler.do_GET(self)
 def do_GET(self):
     """Serve a GET request."""
     if not self.allow_path():
         self.send_error(403)
     elif self.is_brat():
         self.run_brat_direct()
     else:
         CGIHTTPRequestHandler.do_GET(self)
 def do_POST(self):
     debug('__do_POST__\n%s'% self.headers)
     if self.request_filter(): return
     if self.path.find('.php') != -1:
         self.requete = self.rfile.read(int(self.headers['Content-Length']))
         self.php_request()
     else:
         CGIHTTPRequestHandler.do_POST(self)
Exemple #5
0
 def send_error(self, code, message=None):
     if code == 404 and self.path in ('/', ''):
         self.send_response(code, message)
         self.send_header("Content-Type", "text/html")
         self.send_header('Connection', 'close')
         self.end_headers()
         self.wfile.write('<meta http-equiv="refresh" content="0; URL=%s">' % self.gitweb_url)
     else:
         CGIHTTPRequestHandler.send_error(self, code, message)
Exemple #6
0
 def do_GET(self):
     """ Present frontpage with user authentication. """
     if self.headers.getheader('Authorization') == None:
         self.do_AUTHHEAD()
         self.wfile.write('no auth header received')
     elif self.headers.getheader('Authorization') == self._basic_auth_key:
         CGIHTTPRequestHandler.do_GET(self)
     else:
         self.do_AUTHHEAD()
         self.wfile.write('Not authenticated')
Exemple #7
0
    def run_cgi(self):
        """Version of run_cgi that provides more HTTP headers."""
        headers_str = ''
        for a in self.headers.items():
            headers_str += "%s: %s\n" % a

        os.environ['HTTP_ALL_HEADERS'] = headers_str

        # run the rest of run_cgi
        CGIHTTPRequestHandler.run_cgi(self)
 def do_GET(self):
     debug('__do_GET__\n%s'% self.headers)
     if self.request_filter(): return
     if self.path.find('.php') != -1:
         if self.path.find('?') != -1:
             self.path, self.requete = self.path.split('?', 1)
         else:
             self.requete = ''
         self.php_request()
     else:
         CGIHTTPRequestHandler.do_GET(self)
Exemple #9
0
 def do_GET(self):
     auth = self.headers.getheader('Authorization')
     if auth is None:
         self.do_AUTHHEAD()
         self.wfile.write('no auth')
     elif auth in self.KEYS:
         CGIHTTPRequestHandler.do_GET(self)
     else:
         self.do_AUTHHEAD()
         self.wfile.write(auth)
         self.wfile.write('bad auth')
Exemple #10
0
    def do_GET(self, *args, **kwargs):
        if self.path == "/favicon.ico":
            protocol, data = favicon.split(",")
            scheme, info = protocol.split(":")
            mimetype, rest = info.split(";")

            self.send_response(200)
            self.send_header("Content-type", mimetype)
            httpdate = format_date_time(mktime(datetime.utcnow().timetuple()))
            self.send_header("Last-Modified", httpdate)
            self.end_headers()
            self.wfile.write(data.decode("base64"))
            return
        CGIHTTPRequestHandler.do_GET(self, *args, **kwargs)
Exemple #11
0
 def do_GET(self, *args, **kwargs):
     if self.path == '/favicon.ico':
         protocol, data = favicon.split(',')
         scheme, info = protocol.split(':')
         mimetype, rest = info.split(';')
         
         self.send_response(200)
         self.send_header('Content-type', mimetype)
         httpdate = format_date_time(mktime(datetime.utcnow().timetuple()))
         self.send_header('Last-Modified', httpdate)
         self.end_headers()
         self.wfile.write(data.decode('base64'))
         return
     CGIHTTPRequestHandler.do_GET(self, *args, **kwargs)
Exemple #12
0
 def is_cgi(self):
     # Having a CGI suffix is really a big hint of being a CGI script.
     if self.path.endswith('.cgi'):
         self.cgi_info = _url_collapse_path_split(self.path)
         return True
     else:
         return CGIHTTPRequestHandler.is_cgi(self)
Exemple #13
0
    def is_cgi(self):

        if urlparse(self.path).path.endswith('.cgi'):
            self.cgi_info = _url_collapse_path_split(self.path)
            return True
        else:
            return CGIHTTPRequestHandler.is_cgi(self)
Exemple #14
0
 def is_cgi(self):
     # Having a CGI suffix is really a big hint of being a CGI script.
     if urlparse(self.path).path.endswith('.cgi'):
         self.cgi_info = _url_collapse_path_split(self.path)
         return True
     else:
         return CGIHTTPRequestHandler.is_cgi(self)
  def __init__(self, request, client_address, server):
    if ElServer.isAcceptable(client_address[0]):
      CGIHTTPRequestHandler.__init__(self, request, client_address,server)
    else:
      f = open('error.html','rb')
      errorPage = f.read()
      f.close()

      wfile = request.makefile('wb',0)
      rfile = request.makefile('rb',-1)
      try:
        raw_requestline = rfile.readline(65537)
        wfile.write("HTTP/1.0 200 OK\r\n")
        wfile.write("Connection: close\r\n")
        wfile.write("Content-Type: text/html; charset=UTF-8\r\n")
        wfile.write("Content-Length: %d\r\n"%(len(errorPage)))
        wfile.write("\r\n")
        wfile.write(errorPage)
      except socket.timeout,e: pass
      finally:
        if not wfile.closed:
Exemple #16
0
	def build_cgi_env(self, scriptname, *args, **kwargs):
		"""
		Adds SCRIPT_FILENAME to the env created by CGIHTTPRequestHandler
		
		CGIHTTPServer doesn't set the 'SCRIPT_FILENAME' environment
		variable, which causes php-cgi (on Ubuntu, at least) to fail
		with "No input file specified."
		
		Details:
		http://community.activestate.com/faq/cgi-debugging-no-input-fi
		"""
		env = CGIHTTPRequestHandler.build_cgi_env(self, scriptname, *args, **kwargs)
		env['SCRIPT_FILENAME'] = self.translate_path(scriptname)
		return env
Exemple #17
0
 def log_message(self, format, *args):
     if self.verbose:
         CGIHTTPRequestHandler.log_message(self, format, *args)
Exemple #18
0
	def translate_path(self, path):
		if path.startswith(self.repo_vfolder ):
			r = GIT_HTTP_BACKEND
		else:
			r = CGIHTTPRequestHandler.translate_path(self, path)
		return r
Exemple #19
0
	def do_POST(self):
		self._do_pages()	or CGIHTTPRequestHandler.do_GET(self)		
 def log_request(self, code='-', size='-'):
     if _VERBOSE_HANDLER:
         CGIHTTPRequestHandler.log_request(self, code, size)
     else:
         # just ignore logging
         pass
 def do_HEAD(self):
     """Serve a HEAD request."""
     if not self.allow_path():
         self.send_error(403)
     else:
         CGIHTTPRequestHandler.do_HEAD(self)
Exemple #22
0
    def do_GET(self):
        try:
            # go to default page
            if self.path.endswith("/"):
                if Indexes=="on":
                    self.send_response(200)
                    self.send_header("Content-type", "text/html")
                    self.end_headers()
                    f = self.list_directory(DocumentRoot+self.path)
                    self.copyfile(f, self.wfile)
                    f.close()
                    return
                elif indexpage != "":
                    self.send_response(302)
                    self.send_header("Location", indexpage)
                    self.end_headers()
                    return
                else:
                    self.send_response(404)
            if self.path=='/favicon.ico':
                return
            path_parts = self.path.split('.')
            try:
                content_type=contentTypes[path_parts[-1]]
            except:
                if page404=="":
                    self.send_response(404)
                else:
                    self.send_response(302)
                    self.send_header("Location", page404)
                self.end_headers()

            if cgi_moudle == "on" and self.path.endswith(cgi_extensions):
                return CGIHTTPRequestHandler.do_GET(self)
            else:
                #static content
                f = open(DocumentRoot+sep+self.path)
                fs = os.fstat(f.fileno())

                Expirestype = Expires[-1:]
                Expiresnum=Expires[:-1]

                expiration = pubutil.get_http_expiry(Expirestype, int(Expiresnum))

                CACHE_MAX_AGE = pubutil.secs_from_days(ExpiresTypes[Expirestype], int(Expiresnum))
                cache_control = 'public; max_age=%d' % (CACHE_MAX_AGE,)
                client_cache_cc = self.headers.getheader('Cache-Control')
                client_cache_p = self.headers.getheader('Pragma')
                ModifiedSince = self.headers.getheader('If-Modified-Since')

                if client_cache_cc=='no-cache' or client_cache_p == 'no-cache' or\
                        (client_cache_p == None and client_cache_cc == None and ModifiedSince == None):
                    client_modified = None
                else:
                    try:
                        client_modified = ModifiedSince.split(';')[0]
                    except:
                        client_modified = None
                file_last_modified = self.date_time_string(fs.st_mtime)

                if client_modified == file_last_modified:
                    self.send_response(304)
                    self.end_headers()
                else:
                    s = f.read()
                    if gzip == 'on':
                        compressed_content = pubutil.compressBuf(s, compresslevel)
                    else:
                        compressed_content = s
                    self.send_response(202)
                    self.send_header('Last-Modified', file_last_modified)
                    self.send_header('Cache-Control', cache_control)
                    self.send_header('Expires', expiration)
                    self.send_header('Content-type', content_type)
                    if gzip == 'on':
                        self.send_header('Content-Encoding','gzip')
                    self.send_header('Content-Length', str(len(compressed_content)))
                    self.end_headers()
                    self.wfile.write(compressed_content)
                f.close()
                return

            return
        except IOError, e:
            logger.error(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+"-"+str(e))
Exemple #23
0
 def __init__(self, request, client_address, server):
     self.manager = server.manager
     CGIHTTPRequestHandler.__init__(self, request, client_address, server)
Exemple #24
0
	def output_script(self, php, scriptfile, query):
		"""Execute a PHP script."""
		CGIHTTPRequestHandler.output_script(self, php, 'php-cgi', scriptfile)
Exemple #25
0
 def log_request(self, code='-', size='-'):
     if _VERBOSE_HANDLER:
         CGIHTTPRequestHandler.log_request(self, code, size)
     else:
         # just ignore logging
         pass
Exemple #26
0
 def __init__(self, request, client_address, server):
     """Constructor."""
     CGIHTTPRequestHandler.__init__(self, request, client_address, server)
Exemple #27
0
    def do_GET(self):
        try:
            # go to deault page.
            if self.path.endswith("/"):
                if Indexes == "on":
                    self.send_response(200)
                    self.send_header("Content-type", "text/html")
                    self.end_headers()
                    f = self.list_directory(DocumentRoot + self.path)
                    self.copyfile(f, self.wfile)
                    f.close()
                    return
                elif indexpage != "":
                    self.send_response(302)
                    self.send_header("Location", indexpage)
                    self.end_headers()
                    return
                else:
                    self.send_response(404)

            if self.path == "/favicon.ico":
                return

            path_parts = self.path.split(".")
            try:
                content_type = contentTypes[path_parts[-1]]
            except:
                if page404 == "":
                    self.send_response(404)
                else:
                    self.send_response(302)
                    self.send_header("Location", page404)
                self.end_headers()

            if cgi_moudle == "on" and self.path.endswith(cgi_extensions):
                return CGIHTTPRequestHandler.do_GET(self)

            else:

                # do static content
                f = open(DocumentRoot + sep + self.path)  # self.path has /test.html
                # note that this potentially makes every file on your computer readable by the internet
                fs = os.fstat(f.fileno())

                Expirestype = Expires[-1:]
                Expirenum = Expires[:-1]

                # set Expires
                expiration = pubutil.get_http_expiry(Expirestype, int(Expirenum))

                # set max-age
                CACHE_MAX_AGE = pubutil.secs_from_days(ExpiresTypes[Expirestype], int(Expirenum))
                cache_control = "public; max-age=%d" % (CACHE_MAX_AGE,)

                client_cache_cc = self.headers.getheader("Cache-Control")
                client_cache_p = self.headers.getheader("Pragma")
                Modified_Since = self.headers.getheader("If-Modified-Since")
                if (
                    client_cache_cc == "no-cache"
                    or client_cache_p == "no-cache"
                    or (client_cache_cc == None and client_cache_p == None and Modified_Since == None)
                ):
                    client_modified = None
                else:
                    try:
                        client_modified = Modified_Since.split(";")[0]
                    except:
                        client_modified = None
                file_last_modified = self.date_time_string(fs.st_mtime)

                if client_modified == file_last_modified:
                    self.send_response(304)
                    self.end_headers()
                else:
                    if gzip == "on":
                        compressed_content = pubutil.compressBuf(f.read(), compresslevel)
                    else:
                        compressed_content = f.read()
                    self.send_response(200)
                    self.send_header("Last-Modified", file_last_modified)
                    self.send_header("Cache-Control", cache_control)
                    self.send_header("Expires", expiration)
                    self.send_header("Content-type", content_type)
                    if gzip == "on":
                        self.send_header("Content-Encoding", "gzip")
                    self.send_header("Content-Length", str(len(compressed_content)))
                    self.end_headers()
                    self.wfile.write(compressed_content)
                f.close()
                return

            return
        except IOError, e:
            logger.error(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + "-" + str(e))
Exemple #28
0
 def __init__(self, *args, **params):
     SimpleHandler.__init__(self, *args, **params)
Exemple #29
0
 def do_GET(self):
     print "PATH", self.path
     SimpleHandler.do_GET(self)
 def __init__(self, *args, **kwargs):
     CGIHTTPRequestHandler.__init__(self, *args, **kwargs)
Exemple #31
0
 def __init__(self, req, client_addr, server):
     CGIHTTPRequestHandler.__init__(self, req, client_addr, server)
Exemple #32
0
 def send_head(self):
     # rewrite URLs: /abs/[bibcode] => script in /cgi-bin
     if self.path.startswith('/abs/'):
         self.path = '/cgi-bin/nph-data_query?link_type=ABSTRACT&bibcode=' + self.path[5:]
     return CGIHTTPRequestHandler.send_head(self)
 def end_headers (self):
     self.send_header('Access-Control-Allow-Origin', '*')
     CGIHTTPRequestHandler.end_headers(self)
Exemple #34
0
 def do_HEAD(self):
     """Serve a HEAD request."""
     if not self.allow_path():
         self.send_error(403)
     else:
         CGIHTTPRequestHandler.do_HEAD(self)
Exemple #35
0
    def do_GET(self):
        try:
            #go to deault page.
            if self.path.endswith("/") or self.path =="":
                if config.Indexes=="on":
                    self.send_response(200)
                    self.send_header("Content-type", "text/html")
                    self.end_headers()
                    f= self.list_directory(config.DocumentRoot+self.path)
                    self.copyfile(f, self.wfile)
                    f.close()
                    return
                elif config.indexpage=="":
                    self.send_response(302)
                    self.send_header("Location", indexpage)
                    self.end_headers()
                    return
                else:
                    self.send_response(404)
                self.path="/index.html"

            if self.path=='/favicon.ico':
                return
            path_parts = self.path.split('.')
            try:
                content_type=config.contentTypes[path_parts[-1]]
            except:
                if config.page404=="":
                    self.send_response(404)
                else:
                    self.send_response(302)
                    self.send_header("Location",config.page404)
                self.end_headers()


            if config.cgi_moudle=="on" and self.path.endswith(config.cgi_extensions):
                return CGIHTTPRequestHandler.do_GET(self)

            else:

                #do static content
                f = open(config.DocumentRoot + sep + self.path) #self.path has /test.html
                #note that this potentially makes every file on your computer readable by the internet
                fs = os.fstat(f.fileno())


                Expirestype=config.Expires[-1:]
                Expirenum=config.Expires[:-1]

                #set Expires
                expiration = pubutil.get_http_expiry(Expirestype,int(Expirenum))

                #set max-age
                CACHE_MAX_AGE=pubutil.secs_from_days(config.ExpiresTypes[Expirestype],int(Expirenum))
                cache_control = 'public; max-age=%d' % (CACHE_MAX_AGE, )

                client_cache_cc = self.headers.getheader('Cache-Control')
                client_cache_p = self.headers.getheader('Pragma')
                Modified_Since= self.headers.getheader('If-Modified-Since')
                if client_cache_cc=='no-cache' or client_cache_p=='no-cache' or \
                  (client_cache_cc==None and client_cache_p==None and Modified_Since==None):
                    client_modified=None
                else:
                    try:
                        client_modified = Modified_Since.split(';')[0]
                    except:
                        client_modified=None
                file_last_modified=self.date_time_string(fs.st_mtime)

                if client_modified==file_last_modified:
                    self.send_response(304)
                    self.end_headers()
                else:
                    if config.gzip=="on":
                        compressed_content = pubutil.compressBuf(f.read(),config.compresslevel)
                    else:
                        compressed_content = f.read()
                    self.send_response(200)
                    self.send_header('Last-Modified', file_last_modified)
                    self.send_header('Cache-Control', cache_control)
                    self.send_header('Expires', expiration)
                    self.send_header('Content-type',content_type)
                    if config.gzip=="on":
                        self.send_header('Content-Encoding','gzip')
                    self.send_header ("Content-Length", str(len(compressed_content)))
                    self.end_headers()
                    self.wfile.write(compressed_content)
                f.close()
                return

            return
        except IOError, e:
            logger.error(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+"-"+str(e))
 def do_GET(self):
     try:
         CGIHTTPRequestHandler.do_GET(self)
     except:
         pass  
Exemple #37
0
 def __init__(self, req, client_addr, server):
     CGIHTTPRequestHandler.__init__(self, req, client_addr, server)
    def __init__(self, a, b, c):
        global jukeboxState
        self.state = jukeboxState

        CGIHTTPRequestHandler.__init__(self, a, b, c)
Exemple #39
0
 def __init__(self, *args, **kwargs):
     CGIHTTPRequestHandler.__init__(self, *args, **kwargs)
     self.cgi_directories.append("/cgi-bin")
 def do_HEAD(self):
     if self.is_internal():
         self.send_response(501)
     else:
         CGIHTTPRequestHandler.do_HEAD(self)
Exemple #41
0
 def run_cgi(self):
     sys.stderr.flush()
     CGIHTTPRequestHandler.run_cgi(self)
 def translate_path(self, path):
     path = self.project_dir + '/' + path
     return CGIHTTPRequestHandler.translate_path(self, path)
Exemple #43
0
	def is_cgi(self):
		r = CGIHTTPRequestHandler.is_cgi(self)
		if r and self.path.startswith(self.repo_vfolder ):
			head, tail = self.cgi_info 
			self.cgi_info = head, GIT_HTTP_BACKEND_NAME + "/" + tail
		return r
 def do_POST(self):
     if self.is_internal():
         self.__do_internal()
     else:
         CGIHTTPRequestHandler.do_POST(self);
 def do_POST(self):
     if self.path == "/":
         self.path = "/cgi-bin/server.php"
     CGIHTTPRequestHandler.do_POST(self)
Exemple #46
0
 def do_POST(self):
     self.redirect_path()
     CGIHTTPRequestHandler.do_POST(self)