aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/session/application_interface.c
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2017-11-08 17:55:03 -0800
committerDave Wallace <dwallacelf@gmail.com>2017-11-09 14:47:31 +0000
commita2ff7b8cfc829ffbb6d5de7534efb51f7cba9cf3 (patch)
treea502a4e1aee3c8743377b90467301a2122e48860 /src/vnet/session/application_interface.c
parent264080855e4b33cef5cb19a948f2df2ae597073f (diff)
session: lookup/rules table improvements and cleanup
Change-Id: I5217364220023df34d5bee071cb750df1661b093 Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/application_interface.c')
-rw-r--r--src/vnet/session/application_interface.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/vnet/session/application_interface.c b/src/vnet/session/application_interface.c
index a9dda022751..8dab3d67bce 100644
--- a/src/vnet/session/application_interface.c
+++ b/src/vnet/session/application_interface.c
@@ -109,7 +109,7 @@ vnet_bind_i (u32 app_index, session_endpoint_t * sep, u64 * handle)
table_index = application_session_table (app,
session_endpoint_fib_proto (sep));
- listener = session_lookup_session_endpoint (table_index, sep);
+ listener = session_lookup_endpoint_listener (table_index, sep, 1);
if (listener != SESSION_INVALID_HANDLE)
return VNET_API_ERROR_ADDRESS_IN_USE;
@@ -120,7 +120,7 @@ vnet_bind_i (u32 app_index, session_endpoint_t * sep, u64 * handle)
if (application_has_local_scope (app) && session_endpoint_is_zero (sep))
{
table_index = application_local_session_table (app);
- listener = session_lookup_session_endpoint (table_index, sep);
+ listener = session_lookup_endpoint_listener (table_index, sep, 1);
if (listener != SESSION_INVALID_HANDLE)
return VNET_API_ERROR_ADDRESS_IN_USE;
session_lookup_add_session_endpoint (table_index, sep, app->index);
@@ -223,7 +223,9 @@ vnet_connect_i (u32 app_index, u32 api_context, session_endpoint_t * sep,
if (application_has_local_scope (app))
{
table_index = application_local_session_table (app);
- server_index = session_lookup_local_session_endpoint (table_index, sep);
+ server_index = session_lookup_local_endpoint (table_index, sep);
+ if (server_index == APP_DROP_INDEX)
+ return VNET_API_ERROR_APP_CONNECT_FILTERED;
/*
* Break loop if rule in local table points to connecting app. This