fix wireguard set configuration
This commit is contained in:
		
							parent
							
								
									f5986a83f2
								
							
						
					
					
						commit
						97a5b5c7cb
					
				| @ -24,12 +24,10 @@ pub fn set_params(mut wg_pub_key: [u8; 32], | |||||||
|                                                         CString::new(peer_ip).unwrap().into_raw(), |                                                         CString::new(peer_ip).unwrap().into_raw(), | ||||||
|                                                         51820); |                                                         51820); | ||||||
| 
 | 
 | ||||||
|         println!("crea la semilla"); |  | ||||||
|         let mut device = wireguard_wrapper::generate_new_device(&mut wg_priv_key, |         let mut device = wireguard_wrapper::generate_new_device(&mut wg_priv_key, | ||||||
|                                                                 CString::new(interface_name).unwrap().into_raw(), |                                                                 CString::new(interface_name).unwrap().into_raw(), | ||||||
|                                                                 51820, peer); |                                                                 51820, peer); | ||||||
| 
 | 
 | ||||||
|         println!("crea la interfaz de red"); |  | ||||||
|         //let status_add_device = wireguard_wrapper::wg_add_device(device.name.as_ptr());
 |         //let status_add_device = wireguard_wrapper::wg_add_device(device.name.as_ptr());
 | ||||||
|         let status_set_device = wireguard_wrapper::wg_set_device(&mut device); |         let status_set_device = wireguard_wrapper::wg_set_device(&mut device); | ||||||
|         //println!("dispositivo: {}", CString::from_raw(device.name.as_mut_ptr()).to_str().unwrap());
 |         //println!("dispositivo: {}", CString::from_raw(device.name.as_mut_ptr()).to_str().unwrap());
 | ||||||
| @ -40,6 +38,7 @@ pub fn set_params(mut wg_pub_key: [u8; 32], | |||||||
|         }*/ |         }*/ | ||||||
|         //ret = status_add_device >= 0 && status_set_device >= 0;
 |         //ret = status_add_device >= 0 && status_set_device >= 0;
 | ||||||
|         ret = status_set_device >= 0; |         ret = status_set_device >= 0; | ||||||
|  |         log::debug!("Status: {}", ret); | ||||||
|         wireguard_wrapper::clean_device(&mut peer); |         wireguard_wrapper::clean_device(&mut peer); | ||||||
|     } |     } | ||||||
|     ret |     ret | ||||||
|  | |||||||
| @ -19,15 +19,18 @@ wg_peer generate_new_peer(wg_key *pub_key, char *ip, unsigned short port) { | |||||||
|   ipv4->next_allowedip = ipv6; |   ipv4->next_allowedip = ipv6; | ||||||
| 
 | 
 | ||||||
|   wg_peer new_peer = { |   wg_peer new_peer = { | ||||||
| 		.flags = WGPEER_HAS_PUBLIC_KEY | WGPEER_REPLACE_ALLOWEDIPS, | 		.flags = WGPEER_HAS_PUBLIC_KEY, | ||||||
|     //.public_key = pub_key,
 |     //.public_key = pub_key,
 | ||||||
|     .first_allowedip = ipv4, |     .first_allowedip = ipv4, | ||||||
|     .last_allowedip = ipv6, |     .last_allowedip = ipv6, | ||||||
|     .endpoint = generate_endponit (ip, port), |     .endpoint = generate_endponit (ip, port), | ||||||
| 	}; | 	}; | ||||||
| 
 |   printf("protocol 0.101: %d\n",new_peer.endpoint.addr.sa_family); | ||||||
|   strcpy(new_peer.public_key, pub_key); |   printf("protocol 0.102: %d\n",new_peer.endpoint.addr4.sin_family); | ||||||
| 
 |   //strcpy(new_peer.public_key, pub_key);
 | ||||||
|  |   memcpy(new_peer.public_key, pub_key, sizeof (wg_key)); | ||||||
|  |   printf("protocol 0.111: %d\n",new_peer.endpoint.addr.sa_family); | ||||||
|  |   printf("protocol 0.112: %d\n",new_peer.endpoint.addr4.sin_family); | ||||||
|   return new_peer; |   return new_peer; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -43,23 +46,31 @@ wg_device generate_new_device(wg_key *priv_key, | |||||||
|     .first_peer = &peer, |     .first_peer = &peer, | ||||||
|     .last_peer = &peer, |     .last_peer = &peer, | ||||||
|   }; |   }; | ||||||
|   strcpy(new_device.name, device_name); |   memcpy(new_device.name, device_name, sizeof (char[IFNAMSIZ])); | ||||||
|   strcpy(new_device.private_key, priv_key); |   //strcpy(new_device.name, device_name);
 | ||||||
|  |   memcpy(new_device.private_key, priv_key, sizeof (wg_key)); | ||||||
|  |   //strcpy(new_device.private_key, priv_key);
 | ||||||
|   printf("str2: %s\n",new_device.name); |   printf("str2: %s\n",new_device.name); | ||||||
|   wg_key_b64_string key, key2; |   wg_key_b64_string key, key2; | ||||||
|   wg_key_to_base64(key, new_device.first_peer->public_key); |   wg_key_to_base64(key, new_device.first_peer->public_key); | ||||||
|   printf("str2: %s\n",key); |   printf("str2: %s\n",key); | ||||||
|   wg_key_to_base64(key2, new_device.private_key); |   wg_key_to_base64(key2, new_device.private_key); | ||||||
|   printf("str3: %s\n",key2); |   printf("str3: %s\n",key2); | ||||||
|  |   printf("port: %d\n",new_device.first_peer->endpoint.addr4.sin_port); | ||||||
|  |   printf("protocol 1: %d\n",new_device.first_peer->endpoint.addr.sa_family); | ||||||
|  |   printf("protocol 2: %d\n",new_device.first_peer->endpoint.addr4.sin_family); | ||||||
|  |   char str[INET_ADDRSTRLEN]; | ||||||
|  |   inet_ntop(AF_INET, &(new_device.first_peer->endpoint.addr4.sin_addr), str, INET_ADDRSTRLEN); | ||||||
|  |   printf("ip: %s\n", str); | ||||||
|   return new_device; |   return new_device; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| wg_endpoint generate_endponit(char *ip, unsigned short port) { | wg_endpoint generate_endponit(char *ip, unsigned short port) { | ||||||
|   struct in_addr ipv4; |   struct in_addr ipv4; | ||||||
|   inet_pton (AF_INET, ip, &ipv4); |   inet_pton (AF_INET, ip, &ipv4); | ||||||
|     struct sockaddr_in address ={ |   struct sockaddr_in address = { | ||||||
|     .sin_family = AF_INET, |     .sin_family = AF_INET, | ||||||
|     .sin_port = port, |     .sin_port = htons(port), | ||||||
|     .sin_addr = ipv4, |     .sin_addr = ipv4, | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| @ -67,6 +78,9 @@ wg_endpoint generate_endponit(char *ip, unsigned short port) { | |||||||
|     .addr4 = address, |     .addr4 = address, | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   printf("protocol 0.1: %d\n",ret.addr.sa_family); | ||||||
|  |   printf("protocol 0.2: %d\n",ret.addr4.sin_family); | ||||||
|  | 
 | ||||||
|   return ret; |   return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user