From cd23596484b4c18ccd668760f8ebc89a2a9f739c Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 24 Feb 2006 20:26:56 +0000 Subject: add new DNSSDUserDir directive git-svn-id: file:///home/lennart/svn/public/mod_dnssd/trunk@47 634eccf8-0006-0410-930e-e16565b0b7de --- src/mod_dnssd.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/mod_dnssd.c b/src/mod_dnssd.c index b6fcc66..5a8bbff 100644 --- a/src/mod_dnssd.c +++ b/src/mod_dnssd.c @@ -70,6 +70,7 @@ struct global_config_data { int enabled; int user_dir; int vhost; + const char *user_dir_path; }; static int sigterm_pipe_fds[2] = { -1, -1 }; @@ -246,7 +247,7 @@ static void assemble_services(struct runtime_data *r) { if (*pw->pw_dir == 0 || strcmp(pw->pw_dir, "/") == 0) continue; - path = apr_pstrcat(p_loop, pw->pw_dir, "/public_html", NULL); + path = apr_pstrcat(p_loop, pw->pw_dir, "/", r->global_config_data->user_dir_path, NULL); if (apr_stat(&finfo, path, APR_FINFO_TYPE, p_loop) != APR_SUCCESS) continue; @@ -669,6 +670,7 @@ static void *create_server_config(apr_pool_t *p, AVAHI_GCC_UNUSED server_rec *s) d->enabled = 0; d->user_dir = 1; d->vhost = 1; + d->user_dir_path = "public_html"; return d; } @@ -718,6 +720,25 @@ static const char *cmd_dnssd_enable_vhost( return NULL; } +static const char *cmd_dnssd_user_dir_path( + cmd_parms *cmd, + AVAHI_GCC_UNUSED void *mconfig, + const char *value) { + + struct global_config_data *d = GET_CONFIG_DATA(cmd->server); + const char *err; + + if ((err = ap_check_cmd_context(cmd, GLOBAL_ONLY))) + return err; + + if (value[0] == '~') + return "Bad syntax"; + + d->user_dir_path = value; + + return NULL; +} + static const char *cmd_dnssd_service_name( cmd_parms *cmd, AVAHI_GCC_UNUSED void *mconfig, @@ -790,6 +811,13 @@ static const command_rec commands[] = { NULL, RSRC_CONF, "Enable/disable DNS-SD registration of all virtual hosts (default: yes)"), + + AP_INIT_TAKE1( + "DNSSDUserDir", + cmd_dnssd_user_dir_path, + NULL, + RSRC_CONF, + "Set the user directory to use instead of public_html"), AP_INIT_TAKE1( "DNSSDServiceName", -- cgit