Re: bind() not working for outbound socket connections...
site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Giuliano _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... At 6:54 pm -0700 2005/05/21, Justin Walker wrote: On May 21, 2005, at 18:28, Philip George wrote: i have a system with two ports, one is connected to a router that CAN see the internet and and one is connected to a router that CANNOT see the internet. if i try to bind() a socket to the port that connects to the "dead" router, the system still autoroutes it through the good interface to get the message to the web server out on the internet. for most practical purposes, that feature rocks, but for my particular needs, i have to be sure that the messages are being routed out through a specific interface. if there is no good route to the destination address thru the chosen interface, then the subsequent connect() should fail (as opposed to looking for another route). i **don't** want these particular messages autorouted thru any random interface. You really do need to read enough to understand IP routing. You can complain all you want, but the kernel routing engine is still going to pick an outbound interface that takes your packets in the direction of the destination address. The interfaces aren't chosen randomly; they are chosen in a deterministic way by the routing engine. well, would it not be enough to add manually a route for the particular remote ip/net going through the dead router (and thus the interface he wants)? This email sent to site_archiver@lists.apple.com
participants (1)
-
Giuliano Gavazzi