diff options
Diffstat (limited to 'proxy/src/gp_creds.c')
-rw-r--r-- | proxy/src/gp_creds.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/proxy/src/gp_creds.c b/proxy/src/gp_creds.c index 4a731b0..e6c12a5 100644 --- a/proxy/src/gp_creds.c +++ b/proxy/src/gp_creds.c @@ -95,12 +95,18 @@ struct gp_service *gp_creds_match_conn(struct gssproxy_ctx *gpctx, struct gp_conn *conn) { struct gp_creds *gcs; + const char *socket; int i; gcs = gp_conn_get_creds(conn); + socket = gp_conn_get_socket(conn); for (i = 0; i < gpctx->config->num_svcs; i++) { if (gpctx->config->svcs[i]->euid == gcs->ucred.uid) { + if (gpctx->config->svcs[i]->socket && + gp_same(socket, gpctx->config->svcs[i]->socket)) { + continue; + } return gpctx->config->svcs[i]; } } |