summaryrefslogtreecommitdiffstats
path: root/mod_glusterfs
diff options
context:
space:
mode:
authorRaghavendra G <raghavendra@zresearch.com>2009-04-22 07:33:03 -0700
committerAnand V. Avati <avati@amp.gluster.com>2009-04-23 10:41:44 +0530
commitb817670c609dda2a1038fb94bd5a7dc6fa522518 (patch)
tree86ca3ca8cd441047a46b7e814424f0c740198a00 /mod_glusterfs
parent725a1fcb1e84507c28f009d0f83692e0b57e474b (diff)
mod_glusterfs: port apache/2.2/mod_glusterfs to use virtual mount points
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'mod_glusterfs')
-rw-r--r--mod_glusterfs/apache/2.2/src/mod_glusterfs.c82
1 files changed, 24 insertions, 58 deletions
diff --git a/mod_glusterfs/apache/2.2/src/mod_glusterfs.c b/mod_glusterfs/apache/2.2/src/mod_glusterfs.c
index e845504..9beb16a 100644
--- a/mod_glusterfs/apache/2.2/src/mod_glusterfs.c
+++ b/mod_glusterfs/apache/2.2/src/mod_glusterfs.c
@@ -147,7 +147,6 @@ typedef struct glusterfs_dir_config {
size_t xattr_file_size;
uint32_t cache_timeout;
- glusterfs_handle_t handle;
/* mod_dir options */
apr_array_header_t *index_names;
@@ -690,7 +689,6 @@ mod_glfs_create_dir_config(apr_pool_t *p, char *dirspec)
dir_config->mount_dir = dirspec;
dir_config->logfile = dir_config->specfile = (char *)0;
dir_config->loglevel = "warning";
- dir_config->handle = (glusterfs_handle_t) 0;
dir_config->cache_timeout = 0;
dir_config->buf = NULL;
@@ -754,7 +752,6 @@ mod_glfs_merge_dir_config(apr_pool_t *p, void *parent_conf,
new->xattr_file_size = add->xattr_file_size;
new->cache_timeout = add->cache_timeout;
- new->handle = add->handle;
new->buf = add->buf;
/* mod_dir */
@@ -863,7 +860,7 @@ mod_glfs_merge_dir_config(apr_pool_t *p, void *parent_conf,
static void
mod_glfs_child_init(apr_pool_t *p, server_rec *s)
{
- int i = 0, num_sec = 0;
+ int i = 0, num_sec = 0, ret = 0;
core_server_config *sconf = NULL;
ap_conf_vector_t **sec_ent = NULL;
glusterfs_dir_config_t *dir_config = NULL;
@@ -887,8 +884,8 @@ mod_glfs_child_init(apr_pool_t *p, server_rec *s)
ctx.stat_timeout = dir_config->cache_timeout;
ctx.specfile = dir_config->specfile;
- dir_config->handle = glusterfs_init (&ctx);
- if (!dir_config->handle) {
+ ret = glusterfs_mount (dir_config->mount_dir, &ctx);
+ if (ret != 0) {
ap_log_error(APLOG_MARK, APLOG_ERR,
APR_EGENERAL, s,
"mod_glfs_child_init: "
@@ -919,11 +916,9 @@ mod_glfs_child_exit(server_rec *s, apr_pool_t *p)
for (i = 0; i < num_sec; i++) {
dir_config = ap_get_module_config (sec_ent[i],
&glusterfs_module);
- if (dir_config && dir_config->handle) {
- glusterfs_fini (dir_config->handle);
- dir_config->handle = 0;
+ if (dir_config) {
+ glusterfs_umount (dir_config->mount_dir);
}
- dir_config = NULL;
}
}
@@ -1052,8 +1047,7 @@ mod_glfs_map_to_storage(request_rec *r)
GLUSTERFS_HANDLER)))
return DECLINED;
- if (dir_config->mount_dir)
- path = r->uri + strlen (dir_config->mount_dir);
+ path = r->uri;
memset (&r->finfo, 0, sizeof (r->finfo));
@@ -1062,15 +1056,7 @@ mod_glfs_map_to_storage(request_rec *r)
return HTTP_INTERNAL_SERVER_ERROR;
}
- if (!dir_config->handle) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, APR_EGENERAL, r,
- "mod_glfs_map_to_storage: glusterfs handle is "
- "NULL, check glusterfs logfile %s",
- dir_config->logfile);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- ret = glusterfs_get (dir_config->handle, path, dir_config->buf,
+ ret = glusterfs_get (path, dir_config->buf,
dir_config->xattr_file_size, &st);
if (ret == -1 || st.st_size > dir_config->xattr_file_size
@@ -1502,7 +1488,7 @@ static char *find_item(request_rec *r, apr_array_header_t *list, int path_only)
char *path = NULL;
int i = 0;
struct mod_glfs_ai_item *items = NULL;
- struct mod_glfs_ai_item *p = NULL
+ struct mod_glfs_ai_item *p = NULL;
content_type = ap_field_noparam(r->pool, r->content_type);
content_encoding = r->content_encoding;
@@ -1761,7 +1747,6 @@ static void emit_head(request_rec *r, char *header_fname, int suppress_amble,
int emit_H1 = 1;
const char *r_accept = NULL;
const char *r_accept_enc = NULL;
- ap_filter_t *f = NULL;
/*
* If there's a header file, send a subrequest to look for it. If it's
@@ -1792,6 +1777,8 @@ static void emit_head(request_rec *r, char *header_fname, int suppress_amble,
if (!strcasecmp(ap_field_noparam(r->pool,
rr->content_type),
"text/html")) {
+ ap_filter_t *f = NULL;
+
/* Hope everything will work... */
emit_amble = 0;
emit_H1 = 0;
@@ -2275,9 +2262,9 @@ static void output_directories(struct ent **ar, int n,
int x = 0;
apr_size_t rv = APR_SUCCESS;
char *name = NULL, *tp = NULL;
- int static_columns = 0
+ int static_columns = 0;
apr_pool_t *scratch = NULL;
- int name_width = 0, desc_width = 0, t = 0, cols = 0;
+ int name_width = 0, desc_width = 0, cols = 0;
char *name_scratch = NULL, *pad_scratch = NULL, *breakrow = "";
char *anchor = NULL, *t = NULL, *t2 = NULL;
int nwidth = 0;
@@ -2299,6 +2286,7 @@ static void output_directories(struct ent **ar, int n,
== FANCY_INDEXING) {
if (d->name_adjust == K_ADJUST) {
for (x = 0; x < n; x++) {
+ int t = 0;
t = strlen(ar[x]->name);
if (t > name_width) {
name_width = t;
@@ -2309,6 +2297,7 @@ static void output_directories(struct ent **ar, int n,
if (d->desc_adjust == K_ADJUST) {
for (x = 0; x < n; x++) {
if (ar[x]->desc != NULL) {
+ int t = 0;
t = strlen(ar[x]->desc);
if (t > desc_width) {
desc_width = t;
@@ -2782,10 +2771,10 @@ mod_glfs_index_directory (request_rec *r,
{
char *title_name = NULL, *title_endp = NULL;
char *pstring = NULL, *colargs = NULL;
- char *path = NULL, fname = NULL, *charset = NULL;
- char *fullpath = NULL, *name = NULL;
+ char *path = NULL, *fname = NULL, *charset = NULL;
+ char *fullpath = NULL, *name = NULL, *ctype = NULL;
apr_finfo_t dirent;
- glusterfs_file_t fd = -1;
+ glusterfs_file_t fd = NULL;
apr_status_t status = APR_SUCCESS;
int num_ent = 0, x;
struct ent *head = NULL, *p = NULL;
@@ -2803,21 +2792,12 @@ mod_glfs_index_directory (request_rec *r,
title_name = ap_escape_html(r->pool, r->uri);
ctype = "text/html";
dir_config = mod_glfs_dconfig (r);
- if (!dir_config || !dir_config->handle) {
+ if (dir_config == NULL) {
return HTTP_INTERNAL_SERVER_ERROR;
}
- path = r->uri + strlen (dir_config->mount_dir);
- if (!dir_config->handle) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r,
- "mod_glfs_index_directory: glusterfs handler is "
- "NULL, check glusterfs logfile %s for more "
- "details",
- dir_config->logfile);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- fd = glusterfs_open (dir_config->handle, path, O_RDONLY, 0);
+ path = r->uri;
+ fd = glusterfs_open (path, O_RDONLY, 0);
if (fd == 0) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"file permissions deny server access: %s",
@@ -3021,7 +3001,7 @@ mod_glfs_index_directory (request_rec *r,
fname = apr_pstrcat (r->pool, path, entry.d_name);
- ret = glusterfs_stat (dir_config->handle, fname, &st);
+ ret = glusterfs_stat (fname, &st);
if (ret != 0) {
break;
}
@@ -3119,7 +3099,7 @@ mod_glfs_handler (request_rec *r)
apr_bucket *e;
core_dir_config *d;
int errstatus;
- glusterfs_file_t fd = -1;
+ glusterfs_file_t fd = NULL;
apr_status_t status;
glusterfs_dir_config_t *dir_config = NULL;
char *path = NULL;
@@ -3175,12 +3155,6 @@ mod_glfs_handler (request_rec *r)
}
}
- if (!dir_config->handle) {
- ap_log_rerror (APLOG_MARK, APLOG_ERR, 0, r,
- "glusterfs initialization failed\n");
- return HTTP_FORBIDDEN;
- }
-
d = (core_dir_config *)ap_get_module_config(r->per_dir_config,
&core_module);
bld_content_md5 = (d->content_md5 & 1)
@@ -3274,18 +3248,10 @@ mod_glfs_handler (request_rec *r)
}
}
- if (!dir_config->handle) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r,
- "mod_glfs_handler: glusterfs handler is NULL, "
- "check glusterfs logfile %s for more details",
- dir_config->logfile);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
/* do standard open/read/close to fetch content */
- path = r->uri + strlen (dir_config->mount_dir);
+ path = r->uri;
- fd = glusterfs_open (dir_config->handle, path , O_RDONLY, 0);
+ fd = glusterfs_open (path, O_RDONLY, 0);
if (fd == 0) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"file permissions deny server access: %s",