NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

http.py (1937B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\script\net\http.py
      2 import cherrypy
      3 from carbon.common.script.net import machoNet
      4 from eveprefs import prefs
      5 
      6 def Referer():
      7     request = cherrypy.request
      8     return request.headers.get('Referer', '')
      9 
     10 
     11 def Host():
     12     request = cherrypy.request
     13     host = request.headers.get('X-Forwarded-Host', '')
     14     if not host:
     15         host = request.headers.get('Host', '')
     16     return host
     17 
     18 
     19 def AddHeader(headerKey, headerValue):
     20     response = cherrypy.response
     21     response.headers[headerKey] = headerValue
     22 
     23 
     24 def ESPUrl(session, polarisID = None):
     25     if machoNet.mode == 'proxy':
     26         if polarisID is None:
     27             polarisID = session.ConnectToSolServerService('DB2').CallProc('zcluster.Nodes_PolarisID')
     28     elif polarisID is None:
     29         polarisID = sm.GetService('DB2').CallProc('zcluster.Nodes_PolarisID')
     30     if cherrypy.request.app is None:
     31         if sm.IsServiceRunning('tcpRawProxyService'):
     32             tcpproxy = sm.services['tcpRawProxyService']
     33         else:
     34             proxyID = sm.services['machoNet'].GetConnectedProxyNodes()[0]
     35             tcpproxy = sm.StartService('debug').session.ConnectToRemoteService('tcpRawProxyService', proxyID)
     36         host, ports = tcpproxy.GetESPTunnelingAddressByNodeID()
     37         port = ports.get(polarisID)
     38         return 'http://%s:%s' % (host, port)
     39     machoNetSvc = session.ConnectToProxyServerService('machoNet', polarisID)
     40     transport_key = 'tcp:raw:http2' if prefs.GetValue('httpServerMode', 'ccp').lower() == 'ccp' else 'tcp:raw:http'
     41     host, port = machoNetSvc.GetConnectionProperties()['internaladdress'].split(':')
     42     refHost = Host().split(':')[0]
     43     if refHost == 'localhost':
     44         host = refHost
     45     sub_number = 1 if cherrypy.request.app else 2
     46     port = int(port) + machoNet.offsetMap[machoNet.mode][transport_key] - sub_number
     47     return 'http://%s:%s' % (host, port)