[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-users] How to enable KEEP-ALIVE
From: |
Kieran Mansley |
Subject: |
Re: [lwip-users] How to enable KEEP-ALIVE |
Date: |
Tue, 13 Dec 2011 20:31:06 +0000 |
On 11 Dec 2011, at 14:17, narke wrote:
> Hi,
>
> In raw API. I am confused how to enable the tcp KEEP-ALIVE feature.
> It's seems the LWIP_TCP_KEEPALIVE switch is not designed for turning
> on or off the feature. It's just for using or not using "keep_intvl"
> and "keep_cnt" fields of a pcb. To my understanding, turning on or
> off the LWIP_TCP_KEEPALIVE switch, makes no difference to the final
> result.
>
> And, according to the 1.4.0 code, the keep-alive segments will be sent
> out only if the so_options of a pcb has a SOF_KEEPALIVE bit set. The
> problem is, I don't find a place in the code that SOF_KEEPALIVE (or
> SO_KEEPALIVE) was set.
It's part of the sockets API so there isn't a supported way to set it via the
raw API, but you can probably get what you want by doing
pcb->so_options |= SOF_KEEPALIVE;
In general modifying pcb fields directly is discouraged but in this case there
isn't an easy alternative. We should probably add a function to allow users to
set these options in a supported manner.
Kieran