 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2012 Google, Inc. All rights reserved.
 | |
| //
 | |
| // Use of this source code is governed by a BSD-style license
 | |
| // that can be found in the LICENSE file in the root of the source
 | |
| // tree.
 | |
| 
 | |
| package routing
 | |
| 
 | |
| import (
 | |
| 	"net"
 | |
| )
 | |
| 
 | |
| // Router implements simple IPv4/IPv6 routing based on the kernel's routing
 | |
| // table.  This routing library has very few features and may actually route
 | |
| // incorrectly in some cases, but it should work the majority of the time.
 | |
| type Router interface {
 | |
| 	// Route returns where to route a packet based on the packet's source
 | |
| 	// and destination IP address.
 | |
| 	//
 | |
| 	// Callers may pass in nil for src, in which case the src is treated as
 | |
| 	// either 0.0.0.0 or ::, depending on whether dst is a v4 or v6 address.
 | |
| 	//
 | |
| 	// It returns the interface on which to send the packet, the gateway IP
 | |
| 	// to send the packet to (if necessary), the preferred src IP to use (if
 | |
| 	// available).  If the preferred src address is not given in the routing
 | |
| 	// table, the first IP address of the interface is provided.
 | |
| 	//
 | |
| 	// If an error is encountered, iface, geteway, and
 | |
| 	// preferredSrc will be nil, and err will be set.
 | |
| 	Route(dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error)
 | |
| 
 | |
| 	// RouteWithSrc routes based on source information as well as destination
 | |
| 	// information.  Either or both of input/src can be nil.  If both are, this
 | |
| 	// should behave exactly like Route(dst)
 | |
| 	RouteWithSrc(input net.HardwareAddr, src, dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error)
 | |
| }
 |