diff options
author | Simo Sorce <simo@redhat.com> | 2013-03-21 12:28:02 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2013-03-22 11:34:37 -0400 |
commit | e9623f5f05053f215c71dbf37d034ae98f1f1c36 (patch) | |
tree | 8bd8a656f726daa1e4cf1b0c2d8676f60c266be3 /proxy | |
parent | 97102f1e7e19f3ea869335afbdbeba619042d694 (diff) | |
download | gss-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.m4 | 22 | ||||
-rw-r--r-- | proxy/configure.ac | 2 | ||||
-rw-r--r-- | proxy/examples/gssproxy-example.conf | 4 | ||||
-rw-r--r-- | proxy/src/client/gpm_common.c | 6 | ||||
-rw-r--r-- | proxy/src/gp_config.c | 30 |
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; } |