uapi: insert peer version placeholder
While we don't want people to ever use old protocols, people will complain if the API "changes", so explicitly make the unset protocol mean the latest, and add a dummy mechanism of specifying the protocol on a per-peer basis, which we hope nobody actually ever uses.
This commit is contained in:
		
							parent
							
								
									15da869b31
								
							
						
					
					
						commit
						063becdc73
					
				
							
								
								
									
										8
									
								
								uapi.go
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								uapi.go
									
									
									
									
									
								
							@ -75,6 +75,7 @@ func ipcGetOperation(device *Device, socket *bufio.ReadWriter) *IPCError {
 | 
			
		||||
 | 
			
		||||
			send("public_key=" + peer.handshake.remoteStatic.ToHex())
 | 
			
		||||
			send("preshared_key=" + peer.handshake.presharedKey.ToHex())
 | 
			
		||||
			send("protocol_version=1")
 | 
			
		||||
			if peer.endpoint != nil {
 | 
			
		||||
				send("endpoint=" + peer.endpoint.DstToString())
 | 
			
		||||
			}
 | 
			
		||||
@ -362,6 +363,13 @@ func ipcSetOperation(device *Device, socket *bufio.ReadWriter) *IPCError {
 | 
			
		||||
				ones, _ := network.Mask.Size()
 | 
			
		||||
				device.allowedips.Insert(network.IP, uint(ones), peer)
 | 
			
		||||
 | 
			
		||||
			case "protocol_version":
 | 
			
		||||
 | 
			
		||||
				if value != "1" {
 | 
			
		||||
					logError.Println("Invalid protocol version:", value)
 | 
			
		||||
					return &IPCError{Code: ipcErrorInvalid}
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			default:
 | 
			
		||||
				logError.Println("Invalid UAPI peer key:", key)
 | 
			
		||||
				return &IPCError{Code: ipcErrorInvalid}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user