рабочий вариант, но скороть 10 МБит
This commit is contained in:
@@ -23,7 +23,7 @@ func FabricTransportTargetFromRegistryEndpoint(endpoint FabricRegistryEndpoint)
|
||||
return FabricTransportTarget{
|
||||
EndpointID: strings.TrimSpace(endpoint.EndpointID),
|
||||
PeerID: strings.TrimSpace(endpoint.EndpointID),
|
||||
Endpoint: strings.TrimSpace(endpoint.Address),
|
||||
Endpoint: fabricControlEndpointAddress(endpoint),
|
||||
Transport: strings.TrimSpace(endpoint.Transport),
|
||||
PeerCertSHA256: strings.TrimSpace(endpoint.PeerCertSHA256),
|
||||
Timeout: 5 * time.Second,
|
||||
@@ -32,6 +32,28 @@ func FabricTransportTargetFromRegistryEndpoint(endpoint FabricRegistryEndpoint)
|
||||
}
|
||||
}
|
||||
|
||||
func fabricControlEndpointAddress(endpoint FabricRegistryEndpoint) string {
|
||||
if mapped := fabricControlMetadataString(endpoint.Metadata, "maps_to"); mapped != "" {
|
||||
if strings.Contains(mapped, "://") {
|
||||
return mapped
|
||||
}
|
||||
return "quic://" + mapped
|
||||
}
|
||||
return strings.TrimSpace(endpoint.Address)
|
||||
}
|
||||
|
||||
func fabricControlMetadataString(raw json.RawMessage, key string) string {
|
||||
if len(raw) == 0 {
|
||||
return ""
|
||||
}
|
||||
var metadata map[string]any
|
||||
if err := json.Unmarshal(raw, &metadata); err != nil {
|
||||
return ""
|
||||
}
|
||||
value, _ := metadata[key].(string)
|
||||
return strings.TrimSpace(value)
|
||||
}
|
||||
|
||||
func SendFabricControlForward(ctx context.Context, transport FabricTransport, endpoint FabricRegistryEndpoint, payload []byte, timeout time.Duration) (FabricControlForwardResult, error) {
|
||||
if transport == nil {
|
||||
return FabricControlForwardResult{}, fmt.Errorf("fabric control transport is unavailable")
|
||||
|
||||
Reference in New Issue
Block a user