Transparent Proxy for connected UDP flow scenario

I am implementing a Transparent Proxy Provider, and capture UDP traffic. When client application being proxied creates regular UDP socket and uses sendto API everything works fine, packets are captured and responses are delivered to recipient.

When client establishes connected UDP socket and uses connect and send APIs the connect API fails with error code 36 (EINPROGRESS) . I see that provider handles UDP request.

When client establishes connected UDP socket and uses connect and send APIs the connect API fails with error code 36 (EINPROGRESS) . I see that provider handles UDP request.

Is the socket actually failing or is it being used as a non-blocking socket? If it is being used as an non-blocking socket then code 36 (EINPROGRESS) is expected when calling connect on a socket until the socket goes into the writable state.

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
Transparent Proxy for connected UDP flow scenario
 
 
Q