Expose the raw SPTPS send interface from net_packet.
net_packet doesn't actually use send_sptps_data(); it only uses send_sptps_data_priv(). In addition, the only user of send_sptps_data() is protocol_key. Therefore it makes sense to expose send_sptps_data_priv() directly, and move send_sptps_data() (which is basically just boilerplate) as a local function in protocol_key.
This commit is contained in:
		
							parent
							
								
									8e43a2fc74
								
							
						
					
					
						commit
						1296f715b5
					
				
					 3 changed files with 9 additions and 9 deletions
				
			
		|  | @ -191,7 +191,7 @@ extern void handle_new_meta_connection(void *, int); | ||||||
| extern void handle_new_unix_connection(void *, int); | extern void handle_new_unix_connection(void *, int); | ||||||
| extern int setup_listen_socket(const sockaddr_t *); | extern int setup_listen_socket(const sockaddr_t *); | ||||||
| extern int setup_vpn_in_socket(const sockaddr_t *); | extern int setup_vpn_in_socket(const sockaddr_t *); | ||||||
| extern bool send_sptps_data(void *handle, uint8_t type, const void *data, size_t len); | extern bool send_sptps_data(node_t *to, node_t *from, int type, const void *data, size_t len); | ||||||
| extern bool receive_sptps_record(void *handle, uint8_t type, const void *data, uint16_t len); | extern bool receive_sptps_record(void *handle, uint8_t type, const void *data, uint16_t len); | ||||||
| extern void send_packet(struct node_t *, vpn_packet_t *); | extern void send_packet(struct node_t *, vpn_packet_t *); | ||||||
| extern void receive_tcppacket(struct connection_t *, const char *, int); | extern void receive_tcppacket(struct connection_t *, const char *, int); | ||||||
|  |  | ||||||
|  | @ -681,7 +681,7 @@ end: | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static bool send_sptps_data_priv(node_t *to, node_t *from, int type, const void *data, size_t len) { | bool send_sptps_data(node_t *to, node_t *from, int type, const void *data, size_t len) { | ||||||
| 	node_t *relay = (to->via != myself && (type == PKT_PROBE || (len - SPTPS_DATAGRAM_OVERHEAD) <= to->via->minmtu)) ? to->via : to->nexthop; | 	node_t *relay = (to->via != myself && (type == PKT_PROBE || (len - SPTPS_DATAGRAM_OVERHEAD) <= to->via->minmtu)) ? to->via : to->nexthop; | ||||||
| 	bool direct = from == myself && to == relay; | 	bool direct = from == myself && to == relay; | ||||||
| 	bool relay_supported = (relay->options >> 24) >= 4; | 	bool relay_supported = (relay->options >> 24) >= 4; | ||||||
|  | @ -744,10 +744,6 @@ static bool send_sptps_data_priv(node_t *to, node_t *from, int type, const void | ||||||
| 	return true; | 	return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool send_sptps_data(void *handle, uint8_t type, const void *data, size_t len) { |  | ||||||
| 	return send_sptps_data_priv(handle, myself, type, data, len); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool receive_sptps_record(void *handle, uint8_t type, const void *data, uint16_t len) { | bool receive_sptps_record(void *handle, uint8_t type, const void *data, uint16_t len) { | ||||||
| 	node_t *from = handle; | 	node_t *from = handle; | ||||||
| 
 | 
 | ||||||
|  | @ -1404,7 +1400,7 @@ skip_harder: | ||||||
| 		/* If we're not the final recipient, relay the packet. */ | 		/* If we're not the final recipient, relay the packet. */ | ||||||
| 
 | 
 | ||||||
| 		if(to != myself) { | 		if(to != myself) { | ||||||
| 			send_sptps_data_priv(to, from, 0, DATA(&pkt), pkt.len - 2 * sizeof(node_id_t)); | 			send_sptps_data(to, from, 0, DATA(&pkt), pkt.len - 2 * sizeof(node_id_t)); | ||||||
| 			try_tx_sptps(to, true); | 			try_tx_sptps(to, true); | ||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -87,9 +87,13 @@ bool key_changed_h(connection_t *c, const char *request) { | ||||||
| 	return true; | 	return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | static bool send_sptps_data_myself(void *handle, uint8_t type, const void *data, size_t len) { | ||||||
|  | 	return send_sptps_data(handle, myself, type, data, len); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| static bool send_initial_sptps_data(void *handle, uint8_t type, const void *data, size_t len) { | static bool send_initial_sptps_data(void *handle, uint8_t type, const void *data, size_t len) { | ||||||
| 	node_t *to = handle; | 	node_t *to = handle; | ||||||
| 	to->sptps.send_data = send_sptps_data; | 	to->sptps.send_data = send_sptps_data_myself; | ||||||
| 	char buf[len * 4 / 3 + 5]; | 	char buf[len * 4 / 3 + 5]; | ||||||
| 	b64encode(data, buf, len); | 	b64encode(data, buf, len); | ||||||
| 	return send_request(to->nexthop->connection, "%d %s %s %d %s", REQ_KEY, myself->name, to->name, REQ_KEY, buf); | 	return send_request(to->nexthop->connection, "%d %s %s %d %s", REQ_KEY, myself->name, to->name, REQ_KEY, buf); | ||||||
|  | @ -176,7 +180,7 @@ static bool req_key_ext_h(connection_t *c, const char *request, node_t *from, in | ||||||
| 			from->status.validkey = false; | 			from->status.validkey = false; | ||||||
| 			from->status.waitingforkey = true; | 			from->status.waitingforkey = true; | ||||||
| 			from->last_req_key = now.tv_sec; | 			from->last_req_key = now.tv_sec; | ||||||
| 			sptps_start(&from->sptps, from, false, true, myself->connection->ecdsa, from->ecdsa, label, sizeof label, send_sptps_data, receive_sptps_record); | 			sptps_start(&from->sptps, from, false, true, myself->connection->ecdsa, from->ecdsa, label, sizeof label, send_sptps_data_myself, receive_sptps_record); | ||||||
| 			sptps_receive_data(&from->sptps, buf, len); | 			sptps_receive_data(&from->sptps, buf, len); | ||||||
| 			send_mtu_info(myself, from, MTU); | 			send_mtu_info(myself, from, MTU); | ||||||
| 			return true; | 			return true; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue