Hi,

I posted a comment with my RCA for TS-3932 (TOS bits not being set on releases 
> 5.3.0) recently.

I have been considering whether this issue can be fixed by moving the call to 
set dynamic socket options from Connection::open() to Connection::connect(). 
Note that the underlying issue is that Connection::apply_options() tests for 
whether the address is IPv4 before setting the TOS bits, but this test will 
fail because the con.addr is un-initialized in open() until it is set to the 
target address in connect().

I have tested by making the following change in Connection::connect() in 
iocore/net/UnixConnection.cc --

   this->setRemote(target); // this causes the this.addr to be initialized
+  apply_options(opt);

So the apply_options() can be either copied/moved from open() to connect(). 
Seems to work. But before we do any in-depth testing, does this seem like the 
right approach, or are there draw-backs (such as extra calls to apply_options) 
by moving it from open to connect? Perhaps apply_options() or open() should be 
modified instead to avoid the issue?

Thanks,
Peter Chou
AT&T

Reply via email to