Transparent Proxy Provider and data limits?

I wrote a very dumb transparent proxy. The extension simply sends data to a daemon, and that daemon sends network data back to the proxy. It worked with small test connections, and I was fairly pleased.

Then I tried transferring a ~4mbyte file (using curl), and it got a way in, and then the daemon did a network read of something like 400kbytes, and went to send that to the extension, and the flow.write method never called the completion handler.

If I limit the read size to 64k max, it works.

The most frustrating thing is I don't see any logging information related to it, so I can only guess what's going on.

Any ideas, thoughts, or clear stupidities on my part?

If I limit the read size to 64k max, it works.

Right, the max TCP packet size is set to 65535 bytes so if you try and read more than this amount it will likely not work.

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com

Then shouldn't that be mentioned somewhere? 😄

Especially since I can read a lot more than that off a socket, and the VPN extensions present themselves as data, not IP, based?

Transparent Proxy Provider and data limits?
 
 
Q