summaryrefslogtreecommitdiffstats
path: root/proxy
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2013-03-21 12:28:02 -0400
committerSimo Sorce <simo@redhat.com>2013-03-22 11:34:37 -0400
commite9623f5f05053f215c71dbf37d034ae98f1f1c36 (patch)
tree8bd8a656f726daa1e4cf1b0c2d8676f60c266be3 /proxy
parent97102f1e7e19f3ea869335afbdbeba619042d694 (diff)
downloadgss-proxy-e9623f5f05053f215c71dbf37d034ae98f1f1c36.tar.gz
gss-proxy-e9623f5f05053f215c71dbf37d034ae98f1f1c36.tar.xz
gss-proxy-e9623f5f05053f215c71dbf37d034ae98f1f1c36.zip
Make socket path a configure option
The kernel uses the fixed path named /var/run/gssproxy.sock Make this default a configure time option and default to it. Also remove the option to change the socket at configure time, neither the kernel nor proxymech.so can cope with a change anyway.
Diffstat (limited to 'proxy')
-rw-r--r--proxy/conf_macros.m422
-rw-r--r--proxy/configure.ac2
-rw-r--r--proxy/examples/gssproxy-example.conf4
-rw-r--r--proxy/src/client/gpm_common.c6
-rw-r--r--proxy/src/gp_config.c30
5 files changed, 25 insertions, 39 deletions
diff --git a/proxy/conf_macros.m4 b/proxy/conf_macros.m4
index a0575f8..27b89ed 100644
--- a/proxy/conf_macros.m4
+++ b/proxy/conf_macros.m4
@@ -60,21 +60,21 @@ AC_DEFUN([WITH_PUBCONF_PATH],
AC_DEFINE_UNQUOTED(PUBCONF_PATH, "$config_pubconfpath", [Where to store pubconf files for gssproxy])
])
-AC_DEFUN([WITH_PIPE_PATH],
- [ AC_ARG_WITH([pipe-path],
- [AC_HELP_STRING([--with-pipe-path=PATH],
- [Where to store pipe files for gssproxy interconnects [/var/lib/gssproxy/pipes]]
+AC_DEFUN([WITH_SOCKET_NAME],
+ [ AC_ARG_WITH([socket-name],
+ [AC_HELP_STRING([--with-socket-name=PATH],
+ [Name of the GSS Proxy socket file [/var/run/gssproxy.sock]]
)
]
)
- config_pipepath="\"VARDIR\"/lib/gssproxy/pipes"
- pipepath="${localstatedir}/lib/gssproxy/pipes"
- if test x"$with_pipe_path" != x; then
- config_pipepath=$with_pipe_path
- pipepath=$with_pipe_path
+ gp_socket_name="\"VARDIR\"/run/gssproxy.sock"
+ socketname="${localstatedir}/run/gssproxy.sock"
+ if test x"$with_socket_name" != x; then
+ gp_socket_name=$with_socket_name
+ socketname=$with_socket_name
fi
- AC_SUBST(pipepath)
- AC_DEFINE_UNQUOTED(PIPE_PATH, "$config_pipepath", [Where to store pipe files for gssproxy interconnects])
+ AC_SUBST(socketname)
+ AC_DEFINE_UNQUOTED(GP_SOCKET_NAME, "$gp_socket_name", [The name of the GSS Proxy socket file])
])
AC_DEFUN([WITH_INITSCRIPT],
diff --git a/proxy/configure.ac b/proxy/configure.ac
index 9290bee..ec8a115 100644
--- a/proxy/configure.ac
+++ b/proxy/configure.ac
@@ -59,7 +59,7 @@ WITH_PID_PATH
WITH_CC_PATH
WITH_LOG_PATH
WITH_PUBCONF_PATH
-WITH_PIPE_PATH
+WITH_SOCKET_NAME
WITH_INIT_DIR
WITH_TEST_DIR
WITH_MANPAGES
diff --git a/proxy/examples/gssproxy-example.conf b/proxy/examples/gssproxy-example.conf
index 7067abf..139d6e6 100644
--- a/proxy/examples/gssproxy-example.conf
+++ b/proxy/examples/gssproxy-example.conf
@@ -1,9 +1,6 @@
[gssproxy]
-# socket = /var/lib/gssproxy/pipes/gp.socket
-
[service/default]
-
mechs = krb5
krb5_keytab = /etc/krb5.keytab
krb5_ccache = /run/user/%u/krb5cc
@@ -12,7 +9,6 @@
euid = 0
[service/gssproxy]
- # socket = /x/y/z
mechs = krb5
krb5_principal = gssproxy/foo.bar.org
krb5_keytab = /etc/gssproxy/gssproxy.keytab
diff --git a/proxy/src/client/gpm_common.c b/proxy/src/client/gpm_common.c
index 3d062b2..d3dbaff 100644
--- a/proxy/src/client/gpm_common.c
+++ b/proxy/src/client/gpm_common.c
@@ -63,15 +63,11 @@ static void gpm_init_once(void)
pthread_mutexattr_destroy(&attr);
}
-#define GP_SOCKET_NAME "gssproxy.socket"
-
static int get_pipe_name(struct gpm_ctx *gpmctx, char *name)
{
int ret;
- /* TODO: get socket name from config file */
-
- ret = snprintf(name, PATH_MAX, "%s/%s", PIPE_PATH, GP_SOCKET_NAME);
+ ret = snprintf(name, PATH_MAX, "%s", GP_SOCKET_NAME);
if (ret < 0 || ret >= PATH_MAX) {
return ENAMETOOLONG;
}
diff --git a/proxy/src/gp_config.c b/proxy/src/gp_config.c
index 20e1b73..e5878c0 100644
--- a/proxy/src/gp_config.c
+++ b/proxy/src/gp_config.c
@@ -31,8 +31,6 @@
#include "gp_proxy.h"
#include "iniparser.h"
-#define GP_SOCKET_NAME "gssproxy.socket"
-
static void gp_service_free(struct gp_service *svc)
{
free(svc->name);
@@ -274,22 +272,6 @@ int load_config(struct gp_config *cfg)
}
}
- tmpstr = iniparser_getstring(d, "gssproxy:socket", NULL);
- if (tmpstr) {
- cfg->socket_name = strdup(tmpstr);
- if (!cfg->socket_name) {
- ret = ENOMEM;
- goto done;
- }
- } else {
- ret = asprintf(&cfg->socket_name, "%s/%s",
- PIPE_PATH, GP_SOCKET_NAME);
- if (ret == -1) {
- ret = ENOMEM;
- goto done;
- }
- }
-
cfg->num_workers = iniparser_getint(d, "gssproxy:worker threads", 0);
ret = load_services(cfg, d);
@@ -323,6 +305,12 @@ struct gp_config *read_config(char *config_file, int opt_daemonize)
}
}
+ cfg->socket_name = strdup(GP_SOCKET_NAME);
+ if (cfg->socket_name == NULL) {
+ ret = ENOMEM;
+ goto done;
+ }
+
switch (opt_daemonize) {
case 0:
/* daemonize by default */
@@ -339,6 +327,12 @@ struct gp_config *read_config(char *config_file, int opt_daemonize)
GPDEBUG("Config file not found! Proceeding with defaults.");
}
+done:
+ if (ret) {
+ free_config(cfg);
+ cfg = NULL;
+ }
+
return cfg;
}