Generalised transport transmit handler
This commit is contained in:
		
							parent
							
								
									8e5b3b4e83
								
							
						
					
					
						commit
						b701cdd07f
					
				| @ -472,6 +472,10 @@ class Transport: | |||||||
|         for packet in outgoing: |         for packet in outgoing: | ||||||
|             packet.send() |             packet.send() | ||||||
| 
 | 
 | ||||||
|  |     @staticmethod | ||||||
|  |     def transmit(interface, raw): | ||||||
|  |         interface.processOutgoing(raw) | ||||||
|  | 
 | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def outbound(packet): |     def outbound(packet): | ||||||
|         while (Transport.jobs_running): |         while (Transport.jobs_running): | ||||||
| @ -501,7 +505,7 @@ class Transport: | |||||||
|                     new_raw += packet.raw[1:2] |                     new_raw += packet.raw[1:2] | ||||||
|                     new_raw += Transport.destination_table[packet.destination_hash][1] |                     new_raw += Transport.destination_table[packet.destination_hash][1] | ||||||
|                     new_raw += packet.raw[2:] |                     new_raw += packet.raw[2:] | ||||||
|                     outbound_interface.processOutgoing(new_raw) |                     Transport.transmit(outbound_interface, new_raw) | ||||||
|                     Transport.destination_table[packet.destination_hash][0] = time.time() |                     Transport.destination_table[packet.destination_hash][0] = time.time() | ||||||
|                     sent = True |                     sent = True | ||||||
| 
 | 
 | ||||||
| @ -520,7 +524,7 @@ class Transport: | |||||||
|                     new_raw += packet.raw[1:2] |                     new_raw += packet.raw[1:2] | ||||||
|                     new_raw += Transport.destination_table[packet.destination_hash][1] |                     new_raw += Transport.destination_table[packet.destination_hash][1] | ||||||
|                     new_raw += packet.raw[2:] |                     new_raw += packet.raw[2:] | ||||||
|                     outbound_interface.processOutgoing(new_raw) |                     Transport.transmit(outbound_interface, new_raw) | ||||||
|                     Transport.destination_table[packet.destination_hash][0] = time.time() |                     Transport.destination_table[packet.destination_hash][0] = time.time() | ||||||
|                     sent = True |                     sent = True | ||||||
| 
 | 
 | ||||||
| @ -528,7 +532,7 @@ class Transport: | |||||||
|             # directly reachable, and also on which interface, so we |             # directly reachable, and also on which interface, so we | ||||||
|             # simply transmit the packet directly on that one. |             # simply transmit the packet directly on that one. | ||||||
|             else: |             else: | ||||||
|                 outbound_interface.processOutgoing(packet.raw) |                 Transport.transmit(outbound_interface, packet.raw) | ||||||
|                 sent = True |                 sent = True | ||||||
| 
 | 
 | ||||||
|         # If we don't have a known path for the destination, we'll |         # If we don't have a known path for the destination, we'll | ||||||
| @ -616,7 +620,7 @@ class Transport: | |||||||
|                             stored_hash = True |                             stored_hash = True | ||||||
| 
 | 
 | ||||||
|                         def send_packet(): |                         def send_packet(): | ||||||
|                             interface.processOutgoing(packet.raw) |                             Transport.transmit(interface, packet.raw) | ||||||
| 
 | 
 | ||||||
|                         thread = threading.Thread(target=send_packet) |                         thread = threading.Thread(target=send_packet) | ||||||
|                         thread.daemon = True |                         thread.daemon = True | ||||||
| @ -763,12 +767,12 @@ class Transport: | |||||||
|                     if from_local_client: |                     if from_local_client: | ||||||
|                         for interface in Transport.interfaces: |                         for interface in Transport.interfaces: | ||||||
|                             if interface != packet.receiving_interface: |                             if interface != packet.receiving_interface: | ||||||
|                                 interface.processOutgoing(packet.raw) |                                 Transport.transmit(interface, packet.raw) | ||||||
|                     # If the packet was not from a local client, send |                     # If the packet was not from a local client, send | ||||||
|                     # it directly to all local clients |                     # it directly to all local clients | ||||||
|                     else: |                     else: | ||||||
|                         for interface in Transport.local_client_interfaces: |                         for interface in Transport.local_client_interfaces: | ||||||
|                             interface.processOutgoing(packet.raw) |                             Transport.transmit(interface, packet.raw) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|             # General transport handling. Takes care of directing |             # General transport handling. Takes care of directing | ||||||
| @ -821,7 +825,7 @@ class Transport: | |||||||
|                                 new_raw += packet.raw[2:] |                                 new_raw += packet.raw[2:] | ||||||
| 
 | 
 | ||||||
|                             outbound_interface = Transport.destination_table[packet.destination_hash][5] |                             outbound_interface = Transport.destination_table[packet.destination_hash][5] | ||||||
|                             outbound_interface.processOutgoing(new_raw) |                             Transport.transmit(outbound_interface, new_raw) | ||||||
|                             Transport.destination_table[packet.destination_hash][0] = time.time() |                             Transport.destination_table[packet.destination_hash][0] = time.time() | ||||||
| 
 | 
 | ||||||
|                             if packet.packet_type == RNS.Packet.LINKREQUEST: |                             if packet.packet_type == RNS.Packet.LINKREQUEST: | ||||||
| @ -882,7 +886,7 @@ class Transport: | |||||||
|                             new_raw = packet.raw[0:1] |                             new_raw = packet.raw[0:1] | ||||||
|                             new_raw += struct.pack("!B", packet.hops) |                             new_raw += struct.pack("!B", packet.hops) | ||||||
|                             new_raw += packet.raw[2:] |                             new_raw += packet.raw[2:] | ||||||
|                             outbound_interface.processOutgoing(new_raw) |                             Transport.transmit(outbound_interface, new_raw) | ||||||
|                             Transport.link_table[packet.destination_hash][0] = time.time() |                             Transport.link_table[packet.destination_hash][0] = time.time() | ||||||
|                         else: |                         else: | ||||||
|                             pass |                             pass | ||||||
| @ -1175,7 +1179,7 @@ class Transport: | |||||||
|                             new_raw += struct.pack("!B", packet.hops) |                             new_raw += struct.pack("!B", packet.hops) | ||||||
|                             new_raw += packet.raw[2:] |                             new_raw += packet.raw[2:] | ||||||
|                             Transport.link_table[packet.destination_hash][7] = True |                             Transport.link_table[packet.destination_hash][7] = True | ||||||
|                             link_entry[4].processOutgoing(new_raw) |                             Transport.transmit(link_entry[4], new_raw) | ||||||
|                         else: |                         else: | ||||||
|                             RNS.log("Link request proof received on wrong interface, not transporting it.", RNS.LOG_DEBUG) |                             RNS.log("Link request proof received on wrong interface, not transporting it.", RNS.LOG_DEBUG) | ||||||
|                     else: |                     else: | ||||||
| @ -1208,7 +1212,7 @@ class Transport: | |||||||
|                             new_raw = packet.raw[0:1] |                             new_raw = packet.raw[0:1] | ||||||
|                             new_raw += struct.pack("!B", packet.hops) |                             new_raw += struct.pack("!B", packet.hops) | ||||||
|                             new_raw += packet.raw[2:] |                             new_raw += packet.raw[2:] | ||||||
|                             reverse_entry[0].processOutgoing(new_raw) |                             Transport.transmit(reverse_entry[0], new_raw) | ||||||
|                         else: |                         else: | ||||||
|                             RNS.log("Proof received on wrong interface, not transporting it.", RNS.LOG_DEBUG) |                             RNS.log("Proof received on wrong interface, not transporting it.", RNS.LOG_DEBUG) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user