Re: Wrong outgoing interface with multiple routing tables

2009-07-28 Thread Oleg Sharoyko
Julian Elischer wrote: ok so here's my final patch. This is taken against -current. so it may not patch exactly cleanly. it's not quite minimal as I'm cleaning up something too, but could you check it works? Works with 7.2. Thanks! if you have ipv6 it might be nice to check that ipv6 doesn

Re: Wrong outgoing interface with multiple routing tables

2009-07-28 Thread Oleg Sharoyko
Julian Elischer wrote: I'll get that checked in! Please, also take a look at _syncache_add() in tcp_syncache.c There is some code which looks strange, at least at first sight. Won't bcopy() overwrite assigned value of sc->sc_inc.inc_fibnum ? /* XXX-BZ this fib assignment is just u

Re: Wrong outgoing interface with multiple routing tables

2009-07-28 Thread Oleg Sharoyko
CK still uses wrong interface. ip_output() uses struct inpcb *inp argument to set fib. But when syncache_respond() sends SYN+ACK, ip_output() is being called without inp (from netinet/tcp_syncache.c, syncache_respond()): error = ip_output(m, sc->sc_ipopts, NULL, 0, NULL, NULL); It I add M_SETFIB(m,

Re: Wrong outgoing interface with multiple routing tables

2009-07-27 Thread Oleg Sharoyko
Julian Elischer wrote: great.. in your simple server, can you do the sockopt on the socket AFTER you did the listen()? (just as a test). Doesn't help. I have also tried to add setsockopt() after accept() (for a new socket) and in this case the only packet that is being sent out via wrong i

Re: Wrong outgoing interface with multiple routing tables

2009-07-27 Thread Oleg Sharoyko
Julian Elischer wrote: does it still fail if you run it in foreground mode (no daemonizing)? Yes. I actually test sshd in foreground mode (-D tells sshd to not go into background). I have also checked a very simple client/server where server called setsockopt(SO_SETFIB, 1) and got the same

Re: Wrong outgoing interface with multiple routing tables

2009-07-27 Thread Oleg Sharoyko
Julian Elischer wrote: r61net-fbsdhost-1, / # setfib 1 /usr/sbin/sshd -o 'ListenAddress 195.208.245.229:' -D Are you running this from inetd?. (doesnt look like it) No, I run this from shell merely for test purposes. First I tried to start sshd in a usual way in a jail, but came to thi

Wrong outgoing interface with multiple routing tables

2009-07-27 Thread Oleg Sharoyko
7961(0) ack 2484180117 win 65535 18:01:56.665798 IP brain.cc.rsu.ru.50435 > stat.r61.net.: . ack 1 win 8326 and no packets at em0. TCP connection establishes but no data packets come from daemon which is rather weird. I would appreciate any help with this issue. -- Oleg Sharo