 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>
		
			
				
	
	
		
			151 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2016 Mikio Hara. All rights reserved.
 | |
| // Use of this source code is governed by a BSD-style
 | |
| // license that can be found in the LICENSE file.
 | |
| 
 | |
| package tcpopt
 | |
| 
 | |
| import "time"
 | |
| 
 | |
| // An Option represents a socket option.
 | |
| type Option interface {
 | |
| 	// Level returns the platform-specific socket option level.
 | |
| 	Level() int
 | |
| 
 | |
| 	// Name returns the platform-specific socket option name.
 | |
| 	Name() int
 | |
| 
 | |
| 	// Marshal returns the binary encoding of socket option.
 | |
| 	Marshal() ([]byte, error)
 | |
| }
 | |
| 
 | |
| // NoDelay specifies the use of Nagle's algorithm.
 | |
| type NoDelay bool
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (nd NoDelay) Level() int { return options[soNodelay].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (nd NoDelay) Name() int { return options[soNodelay].name }
 | |
| 
 | |
| // MSS specifies the maximum segment size.
 | |
| type MSS int
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (mss MSS) Level() int { return options[soMaxseg].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (mss MSS) Name() int { return options[soMaxseg].name }
 | |
| 
 | |
| // SendBuffer specifies the size of send buffer.
 | |
| type SendBuffer int
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (sb SendBuffer) Level() int { return options[soSndbuf].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (sb SendBuffer) Name() int { return options[soSndbuf].name }
 | |
| 
 | |
| // ReceiveBuffer specifies the size of receive buffer.
 | |
| type ReceiveBuffer int
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (rb ReceiveBuffer) Level() int { return options[soRcvbuf].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (rb ReceiveBuffer) Name() int { return options[soRcvbuf].name }
 | |
| 
 | |
| // KeepAlive specifies the use of keep alive.
 | |
| type KeepAlive bool
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (ka KeepAlive) Level() int { return options[soKeepalive].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (ka KeepAlive) Name() int { return options[soKeepalive].name }
 | |
| 
 | |
| // KeepAliveIdleInterval is the idle interval until the first probe is
 | |
| // sent.
 | |
| //
 | |
| // OpenBSD doesn't support this option.
 | |
| // See TCP_KEEPIDLE or TCP_KEEPALIVE for further information.
 | |
| type KeepAliveIdleInterval time.Duration
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (ka KeepAliveIdleInterval) Level() int { return options[soKeepidle].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (ka KeepAliveIdleInterval) Name() int { return options[soKeepidle].name }
 | |
| 
 | |
| // KeepAliveProbeInterval is the interval between keepalive probes.
 | |
| //
 | |
| // OpenBSD doesn't support this option.
 | |
| // See TCP_KEEPINTVL for further information.
 | |
| type KeepAliveProbeInterval time.Duration
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (ka KeepAliveProbeInterval) Level() int { return options[soKeepintvl].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (ka KeepAliveProbeInterval) Name() int { return options[soKeepintvl].name }
 | |
| 
 | |
| // KeepAliveProbeCount is the number of keepalive probes should be
 | |
| // repeated when the peer is not responding.
 | |
| //
 | |
| // OpenBSD and Windows don't support this option.
 | |
| // See TCP_KEEPCNT for further information.
 | |
| type KeepAliveProbeCount int
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (ka KeepAliveProbeCount) Level() int { return options[soKeepcnt].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (ka KeepAliveProbeCount) Name() int { return options[soKeepcnt].name }
 | |
| 
 | |
| // Cork specifies the use of TCP_CORK or TCP_NOPUSH option.
 | |
| //
 | |
| // On DragonFly BSD, the caller may need to adjust the
 | |
| // net.inet.tcp.disable_nopush kernel state.
 | |
| // NetBSD and Windows don't support this option.
 | |
| type Cork bool
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (ck Cork) Level() int { return options[soCork].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (ck Cork) Name() int { return options[soCork].name }
 | |
| 
 | |
| // NotSentLowWMK specifies the amount of unsent bytes in transmission
 | |
| // queue. The network poller such as kqueue or epoll doesn't report
 | |
| // that the connection is writable while the amount of unsent data
 | |
| // size is greater than NotSentLowWMK.
 | |
| //
 | |
| // Only Darwin and Linux support this option.
 | |
| // See TCP_NOTSENT_LOWAT for further information.
 | |
| type NotSentLowWMK int
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (ns NotSentLowWMK) Level() int { return options[soNotsentLOWAT].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (ns NotSentLowWMK) Name() int { return options[soNotsentLOWAT].name }
 | |
| 
 | |
| // Error represents an error on the socket.
 | |
| type Error int
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (e Error) Level() int { return options[soError].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (e Error) Name() int { return options[soError].name }
 | |
| 
 | |
| // ECN specifies the use of ECN.
 | |
| //
 | |
| // Only Darwin supports this option.
 | |
| type ECN bool
 | |
| 
 | |
| // Level implements the Level method of Option interface.
 | |
| func (cn ECN) Level() int { return options[soECN].level }
 | |
| 
 | |
| // Name implements the Name method of Option interface.
 | |
| func (cn ECN) Name() int { return options[soECN].name }
 |