Changeset 55


Ignore:
Timestamp:
06/21/10 10:11:14 (11 years ago)
Author:
sc
Message:

client_thinkgear:

  • default response cleanup
  • comment cleanup

configuration:

  • Special socket handling for Flash applications

server_thinkgear:

  • Special socket handling for Flash applications
Location:
remote_control
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • remote_control/puzzlebox_brainstorms_client_thinkgear.py

    r54 r55  
    9090                         
    9191                d = self.send_command(command) 
    92                 #d.addCallback(self.print_response) 
     92                d.addCallback(self.print_response) 
    9393         
    9494         
     
    227227        thinkgear_parameters = THINKGEAR_PARAMETERS 
    228228         
    229         #log.info("Command parameters: %s" % command_parameters) 
    230  
    231229        thinkgear_client = puzzlebox_brainstorms_client_thinkgear( \ 
    232230                    log, \ 
     
    237235 
    238236        reactor.callWhenRunning( \ 
    239                 thinkgear_client.send_command, \ 
    240                         thinkgear_parameters) 
     237                thinkgear_client.send_command, \ 
     238                thinkgear_parameters) 
    241239 
    242240 
  • remote_control/puzzlebox_brainstorms_configuration.py

    r48 r55  
    99# For more information please refer to http://www.gnu.org/copyleft/gpl.html 
    1010# 
    11 # Last Update: 2010.06.16 
     11# Last Update: 2010.06.21 
    1212# 
    1313##################################################################### 
     
    187187} # BUTTON_LAYOUT 
    188188 
     189 
     190##################################################################### 
     191 
     192FLASH_POLICY_FILE_REQUEST = '<policy-file-request/>' 
     193FLASH_SOCKET_POLICY_FILE = '''<?xml version="1.0"?> 
     194<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"> 
     195<cross-domain-policy> 
     196   <site-control permitted-cross-domain-policies="master-only" /> 
     197   <allow-access-from domain="*" to-ports="%i" /> 
     198</cross-domain-policy> 
     199''' % THINKGEAR_SERVER_PORT 
    189200 
    190201##################################################################### 
  • remote_control/puzzlebox_brainstorms_server_thinkgear.py

    r54 r55  
    99# For more information please refer to http://www.gnu.org/copyleft/gpl.html 
    1010# 
    11 # Last Update: 2010.06.18 
     11# Last Update: 2010.06.21 
    1212# 
    1313##################################################################### 
     
    3030SERVER_INTERFACE = configuration.SERVER_INTERFACE 
    3131SERVER_PORT = configuration.THINKGEAR_SERVER_PORT 
     32 
     33FLASH_POLICY_FILE_REQUEST = configuration.FLASH_POLICY_FILE_REQUEST 
     34FLASH_SOCKET_POLICY_FILE = configuration.FLASH_SOCKET_POLICY_FILE 
    3235 
    3336THINKGEAR_DELIMITER = '\r' 
     
    104107                 
    105108                d = defer.Deferred() 
    106                  
    107                 response = DEFAULT_RESPONSE_MESSAGE 
     109 
     110 
     111                # Special socket handling for Flash applications 
     112                if (data.startswith(FLASH_POLICY_FILE_REQUEST)): 
     113                        response = FLASH_SOCKET_POLICY_FILE 
     114 
     115                else: 
     116                        response = DEFAULT_RESPONSE_MESSAGE 
     117 
    108118                 
    109119                if self.DEBUG: 
     
    154164                 
    155165                self.DEBUG = DEBUG 
    156                 self.data = None 
    157166                self.data_chunk = "" 
    158167 
     
    189198                        return 
    190199                 
    191                 self.data = json.loads(line) 
     200                data = json.loads(line) 
    192201 
    193202                if self.DEBUG: 
    194203                        print "line received:", 
    195                         print self.data 
    196  
    197                 d = self.factory.process_data("%s" % self.data) 
     204                        print data 
     205 
     206                d = self.factory.process_data("%s" % data) 
    198207                d.addCallback(self.send_response) 
    199208 
     
    201210        ################################################################## 
    202211         
    203         def dataReceived(self, data): 
    204                  
    205                 self.data_chunk += data 
     212        def dataReceived(self, data_received): 
     213 
     214                data_to_process = None 
     215                 
     216                self.data_chunk += data_received 
    206217                 
    207218                try: 
    208                         self.data = json.loads(self.data_chunk) 
     219                        data_to_process = json.loads(self.data_chunk) 
    209220                 
    210221                except Exception, e: 
    211                         if DEBUG: 
    212                                 print "Partial data received (or error:", 
    213                                 print e 
    214                                 print ")." 
    215                  
    216                 else: 
     222 
     223                        # Special socket handling for Flash applications 
     224                        if (data_received.startswith( \ 
     225                                FLASH_POLICY_FILE_REQUEST)): 
     226                                 
     227                                if self.DEBUG: 
     228                                        print "Flash policy file requested" 
     229                                         
     230                                data_to_process = data_received 
     231                                 
     232                                 
     233                        else: 
     234                                if self.DEBUG: 
     235                                        print "Partial data received (or error:", 
     236                                        print e 
     237                                        print ")." 
     238 
     239                                        print "data_chunk:", 
     240                                        print self.data_chunk 
     241 
     242 
     243                if (data_to_process != None): 
     244 
    217245                        self.data_chunk = "" 
    218                          
    219                         d = self.factory.process_data("%s" % self.data) 
     246 
     247                        d = self.factory.process_data("%s" % data_to_process) 
    220248                        d.addCallback(self.send_response) 
    221249         
     
    224252         
    225253        def send_response(self, response): 
     254 
     255                # Special socket handling for Flash applications 
     256                if (response == FLASH_SOCKET_POLICY_FILE): 
     257##                        self.sendLine(response) 
     258                        self.transport.write(response) 
     259                else: 
     260                        response = json.dumps(response) 
     261                        self.sendLine(response) 
    226262 
    227263                if self.factory.client_connected: 
     
    229265                                print "--> [ThinkGear Emulator] Sending:", 
    230266                                print response 
    231                          
    232                 response = json.dumps(response) 
    233                 self.sendLine(response) 
    234267 
    235268                reactor.callLater(MESSAGE_FREQUENCY_TIMER, \ 
     
    237270                                  self.factory.status_packet) 
    238271 
    239          
    240272         
    241273        ################################################################## 
Note: See TracChangeset for help on using the changeset viewer.