( conn *grpc.ClientConn, up *ttnpb.UplinkMessage, callOpts ...grpc.CallOption, )
| 224 | } |
| 225 | |
| 226 | func relayLoopbackFunc( |
| 227 | conn *grpc.ClientConn, |
| 228 | up *ttnpb.UplinkMessage, |
| 229 | callOpts ...grpc.CallOption, |
| 230 | ) func(context.Context) error { |
| 231 | client := ttnpb.NewGsNsClient(conn) |
| 232 | return func(ctx context.Context) error { |
| 233 | switch _, err := client.HandleUplink(ctx, up, callOpts...); { |
| 234 | case err == nil, errors.IsNotFound(err), errors.IsAlreadyExists(err): |
| 235 | return nil |
| 236 | default: |
| 237 | return err |
| 238 | } |
| 239 | } |
| 240 | } |
| 241 | |
| 242 | func relayUpdateRules( |
| 243 | deviceID string, sessionKeyID []byte, rules []*ttnpb.RelayUplinkForwardingRule, |
no test coverage detected