Integrate BACKBEAT SDK and resolve KACHING license validation
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>
This commit is contained in:
102
vendor/github.com/multiformats/go-multiaddr/protocol.go
generated
vendored
Normal file
102
vendor/github.com/multiformats/go-multiaddr/protocol.go
generated
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
package multiaddr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// These are special sizes
|
||||
const (
|
||||
LengthPrefixedVarSize = -1
|
||||
)
|
||||
|
||||
// Protocol is a Multiaddr protocol description structure.
|
||||
type Protocol struct {
|
||||
// Name is the string representation of the protocol code. E.g., ip4,
|
||||
// ip6, tcp, udp, etc.
|
||||
Name string
|
||||
|
||||
// Code is the protocol's multicodec (a normal, non-varint number).
|
||||
Code int
|
||||
|
||||
// VCode is a precomputed varint encoded version of Code.
|
||||
VCode []byte
|
||||
|
||||
// Size is the size of the argument to this protocol.
|
||||
//
|
||||
// * Size == 0 means this protocol takes no argument.
|
||||
// * Size > 0 means this protocol takes a constant sized argument.
|
||||
// * Size < 0 means this protocol takes a variable length, varint
|
||||
// prefixed argument.
|
||||
Size int // a size of -1 indicates a length-prefixed variable size
|
||||
|
||||
// Path indicates a path protocol (e.g., unix). When parsing multiaddr
|
||||
// strings, path protocols consume the remainder of the address instead
|
||||
// of stopping at the next forward slash.
|
||||
//
|
||||
// Size must be LengthPrefixedVarSize.
|
||||
Path bool
|
||||
|
||||
// Transcoder converts between the byte representation and the string
|
||||
// representation of this protocol's argument (if any).
|
||||
//
|
||||
// This should only be non-nil if Size != 0
|
||||
Transcoder Transcoder
|
||||
}
|
||||
|
||||
var protocolsByName = map[string]Protocol{}
|
||||
var protocolsByCode = map[int]Protocol{}
|
||||
|
||||
// Protocols is the list of multiaddr protocols supported by this module.
|
||||
var Protocols = []Protocol{}
|
||||
|
||||
func AddProtocol(p Protocol) error {
|
||||
if _, ok := protocolsByName[p.Name]; ok {
|
||||
return fmt.Errorf("protocol by the name %q already exists", p.Name)
|
||||
}
|
||||
|
||||
if _, ok := protocolsByCode[p.Code]; ok {
|
||||
return fmt.Errorf("protocol code %d already taken by %q", p.Code, p.Code)
|
||||
}
|
||||
|
||||
if p.Size != 0 && p.Transcoder == nil {
|
||||
return fmt.Errorf("protocols with arguments must define transcoders")
|
||||
}
|
||||
if p.Path && p.Size >= 0 {
|
||||
return fmt.Errorf("path protocols must have variable-length sizes")
|
||||
}
|
||||
|
||||
Protocols = append(Protocols, p)
|
||||
protocolsByName[p.Name] = p
|
||||
protocolsByCode[p.Code] = p
|
||||
return nil
|
||||
}
|
||||
|
||||
// ProtocolWithName returns the Protocol description with given string name.
|
||||
func ProtocolWithName(s string) Protocol {
|
||||
return protocolsByName[s]
|
||||
}
|
||||
|
||||
// ProtocolWithCode returns the Protocol description with given protocol code.
|
||||
func ProtocolWithCode(c int) Protocol {
|
||||
return protocolsByCode[c]
|
||||
}
|
||||
|
||||
// ProtocolsWithString returns a slice of protocols matching given string.
|
||||
func ProtocolsWithString(s string) ([]Protocol, error) {
|
||||
s = strings.Trim(s, "/")
|
||||
sp := strings.Split(s, "/")
|
||||
if len(sp) == 0 {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
t := make([]Protocol, len(sp))
|
||||
for i, name := range sp {
|
||||
p := ProtocolWithName(name)
|
||||
if p.Code == 0 {
|
||||
return nil, fmt.Errorf("no protocol with name: %s", name)
|
||||
}
|
||||
t[i] = p
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
Reference in New Issue
Block a user