aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/vnet/session/session_api.c6
-rw-r--r--src/vnet/session/transport.c7
-rwxr-xr-xsrc/vnet/tcp/tcp_debug.h19
3 files changed, 22 insertions, 10 deletions
diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c
index 5201ec60751..a1225f83e8c 100755
--- a/src/vnet/session/session_api.c
+++ b/src/vnet/session/session_api.c
@@ -354,6 +354,10 @@ vl_api_application_attach_t_handler (vl_api_application_attach_t * mp)
clib_error_t *error = 0;
int rv = 0;
+ reg = vl_api_client_index_to_registration (mp->client_index);
+ if (!reg)
+ return;
+
if (session_manager_is_enabled () == 0)
{
rv = VNET_API_ERROR_FEATURE_DISABLED;
@@ -410,8 +414,6 @@ done:
if (rv)
return;
- reg = vl_api_client_index_to_registration (mp->client_index);
-
/* Send fifo segment fd if needed */
if (ssvm_type (a->segment) == SSVM_SEGMENT_MEMFD)
session_send_memfd_fd (reg, a->segment);
diff --git a/src/vnet/session/transport.c b/src/vnet/session/transport.c
index c31964c88b6..acbb4f65e7a 100644
--- a/src/vnet/session/transport.c
+++ b/src/vnet/session/transport.c
@@ -310,6 +310,13 @@ transport_alloc_local_endpoint (u8 proto, transport_endpoint_t * rmt,
{
ip4_address_t *ip4;
ip4 = ip_interface_get_first_ip (sw_if_index, 1);
+ if (!ip4)
+ {
+ clib_warning ("no routable ip4 address on %U",
+ format_vnet_sw_if_index_name, vnet_get_main (),
+ sw_if_index);
+ return -1;
+ }
lcl_addr->ip4.as_u32 = ip4->as_u32;
}
else
diff --git a/src/vnet/tcp/tcp_debug.h b/src/vnet/tcp/tcp_debug.h
index 5d4f7d6879d..e37b3cd9a9b 100755
--- a/src/vnet/tcp/tcp_debug.h
+++ b/src/vnet/tcp/tcp_debug.h
@@ -328,15 +328,18 @@ typedef enum _tcp_dbg_evt
#define TCP_EVT_RST_SENT_HANDLER(_tc, ...) \
{ \
- ELOG_TYPE_DECLARE (_e) = \
+if (_tc) \
{ \
- .format = "rst-tx: snd_nxt %d rcv_nxt %d", \
- .format_args = "i4i4", \
- }; \
- DECLARE_ETD(_tc, _e, 2); \
- ed->data[0] = _tc->snd_nxt - _tc->iss; \
- ed->data[1] = _tc->rcv_nxt - _tc->irs; \
- TCP_EVT_STATE_CHANGE_HANDLER(_tc); \
+ ELOG_TYPE_DECLARE (_e) = \
+ { \
+ .format = "rst-tx: snd_nxt %d rcv_nxt %d", \
+ .format_args = "i4i4", \
+ }; \
+ DECLARE_ETD(_tc, _e, 2); \
+ ed->data[0] = _tc->snd_nxt - _tc->iss; \
+ ed->data[1] = _tc->rcv_nxt - _tc->irs; \
+ TCP_EVT_STATE_CHANGE_HANDLER(_tc); \
+ } \
}
#define TCP_EVT_FIN_RCVD_HANDLER(_tc, ...) \