nasa / bplib

Apache License 2.0
27 stars 13 forks source link

Use "sendto" rather than connecting the UDP socket in bpcat #247

Closed jphickey closed 12 months ago

jphickey commented 1 year ago

Is your feature request related to a problem? Please describe. The "bpcat" test program currently associates the remote UDP IP using the connect() system call, then using send() to send bundles to that remote endpoint.

The side effect of this is that it expects the reverse to also be the same - that the remote endpoint will send return traffic to the this node via the same IP+port. If the return traffic comes from a different port, it will not get processed.

Describe the solution you'd like Instead of using connect() and send(), use sendto(). This will permit the socket to receive data from any IP+port, not just the specific IP+port that was specified as the remote node.

Describe alternatives you've considered N/A

Additional context When doing interoperability testing with other DTN software that does not bind to a specific source port, this means the OS IP stack does not forward the return traffic to bpcat, causing the test to fail.

Requester Info Joseph Hickey, Vantage Systems, Inc.