slirp: replace compile time DO_KEEPALIVE

Use a global variable instead (similar to slirp_debug)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
This commit is contained in:
Marc-André Lureau 2018-11-14 16:36:28 +04:00 committed by Samuel Thibault
parent 0826c2400d
commit 987d3a51d5
5 changed files with 8 additions and 17 deletions

View File

@ -35,6 +35,9 @@
#include <net/if.h>
#endif
/* Define to 1 if you want KEEPALIVE timers */
bool slirp_do_keepalive;
/* host loopback address */
struct in_addr loopback_addr;
/* host loopback network mask */

View File

@ -1,8 +1,6 @@
#ifndef SLIRP_H
#define SLIRP_H
#include "slirp_config.h"
#ifdef _WIN32
typedef char *caddr_t;
@ -219,7 +217,9 @@ void ncsi_input(Slirp *slirp, const uint8_t *pkt, int pkt_len);
#include <netdb.h>
#endif
#define SO_OPTIONS DO_KEEPALIVE
extern bool slirp_do_keepalive;
#define TCP_MAXIDLE (TCPTV_KEEPCNT * TCPTV_KEEPINTVL)
/* dnssearch.c */

View File

@ -1,12 +0,0 @@
/*
* User definable configuration options
*/
/* Define to 1 if you want KEEPALIVE timers */
#define DO_KEEPALIVE 0
/*********************************************************/
/*
* Autoconf defined configuration options
* You shouldn't need to touch any of these
*/

View File

@ -481,7 +481,7 @@ findso:
* Reset idle time and keep-alive timer.
*/
tp->t_idle = 0;
if (SO_OPTIONS)
if (slirp_do_keepalive)
tp->t_timer[TCPT_KEEP] = TCPTV_KEEPINTVL;
else
tp->t_timer[TCPT_KEEP] = TCPTV_KEEP_IDLE;

View File

@ -262,7 +262,7 @@ tcp_timers(register struct tcpcb *tp, int timer)
if (tp->t_state < TCPS_ESTABLISHED)
goto dropit;
if ((SO_OPTIONS) && tp->t_state <= TCPS_CLOSE_WAIT) {
if (slirp_do_keepalive && tp->t_state <= TCPS_CLOSE_WAIT) {
if (tp->t_idle >= TCPTV_KEEP_IDLE + TCP_MAXIDLE)
goto dropit;
/*