[libvirt] [PATCH 03/10] Check status when attempting to set SO_REUSEADDR flag on outgoing connection On failure, VIR_WARN(), but continue to connect.
Michal Privoznik
mprivozn at redhat.com
Fri Jan 4 09:46:25 UTC 2013
On 03.01.2013 20:34, Daniel P. Berrange wrote:
> On Thu, Jan 03, 2013 at 02:16:15PM -0500, John Ferlan wrote:
>> ---
>> src/rpc/virnetsocket.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
>> index ef93892..6684eef 100644
>> --- a/src/rpc/virnetsocket.c
>> +++ b/src/rpc/virnetsocket.c
>> @@ -470,7 +470,9 @@ int virNetSocketNewConnectTCP(const char *nodename,
>> goto error;
>> }
>>
>> - setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
>> + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) {
>> + VIR_WARN("Unable to enable port reuse");
>> + }
>>
>> if (connect(fd, runp->ai_addr, runp->ai_addrlen) >= 0)
>> break;
>
> Hmm, not sure I agree with this. If this is something that should
> not occurr, then we should virReportError. If it is something we
> expect to occur, then VIR_WARN will annoy people with irrelevant
> messages.
>
> My inclination is to treat it as a fatal error
>
> Daniel
>
I don't think so. This is on the sender side where REUSEADDR is just a
hint and really takes effect if the sender is overflowed with TCP
connections. Inability to set this, doesn't necessary mean we will fail
to establish new connection. IOW it's not a show stopper.
If this was on the receiver side, the scenario would be completely
different.
Michal
More information about the libvir-list
mailing list