bblog: inherit TCP_LOG option from listener
When the TCP_LOG option is used to enable logging on a listening socket, inherit this if the listener is not auto selected and does not have a log id set. Reviewed by: cc MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D38436
This commit is contained in:
parent
c2399dd2e2
commit
e044a0bce4
@ -90,6 +90,9 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <netinet/tcp_var.h>
|
#include <netinet/tcp_var.h>
|
||||||
#include <netinet/tcp_syncache.h>
|
#include <netinet/tcp_syncache.h>
|
||||||
#include <netinet/tcp_ecn.h>
|
#include <netinet/tcp_ecn.h>
|
||||||
|
#ifdef TCP_BLACKBOX
|
||||||
|
#include <netinet/tcp_log_buf.h>
|
||||||
|
#endif
|
||||||
#ifdef TCP_OFFLOAD
|
#ifdef TCP_OFFLOAD
|
||||||
#include <netinet/toecore.h>
|
#include <netinet/toecore.h>
|
||||||
#endif
|
#endif
|
||||||
@ -1013,6 +1016,20 @@ syncache_socket(struct syncache *sc, struct socket *lso, struct mbuf *m)
|
|||||||
|
|
||||||
tod->tod_offload_socket(tod, sc->sc_todctx, so);
|
tod->tod_offload_socket(tod, sc->sc_todctx, so);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef TCP_BLACKBOX
|
||||||
|
/*
|
||||||
|
* Inherit the log state from the listening socket, if
|
||||||
|
* - the log state of the listening socket is not off and
|
||||||
|
* - the listening socket was not auto selected from all sessions and
|
||||||
|
* - a log id is not set on the listening socket.
|
||||||
|
* This avoids inheriting a log state which was automatically set.
|
||||||
|
*/
|
||||||
|
if ((tcp_get_bblog_state(sototcpcb(lso)) != TCP_LOG_STATE_OFF) &&
|
||||||
|
((sototcpcb(lso)->t_flags2 & TF2_LOG_AUTO) == 0) &&
|
||||||
|
(sototcpcb(lso)->t_lib == NULL)) {
|
||||||
|
tcp_log_state_change(tp, tcp_get_bblog_state(sototcpcb(lso)));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
* Copy and activate timers.
|
* Copy and activate timers.
|
||||||
|
Loading…
Reference in New Issue
Block a user