It's working, it's working !
- put_vnode() also had a signature change, - add backup server (commented) in config file, - disable trace build, - some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36077 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
078dbb2d0e
commit
8b1460ce94
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
# IP of the google server to query
|
# IP of the google server to query
|
||||||
server 66.102.11.99
|
server 66.102.11.99
|
||||||
|
# alternative one:
|
||||||
|
#server 74.125.45.100
|
||||||
|
|
||||||
# max number of vnodes allowed in the fs (to limit RAM usage)
|
# max number of vnodes allowed in the fs (to limit RAM usage)
|
||||||
# 10 <= allowed <= 1000000
|
# 10 <= allowed <= 1000000
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
/* just publish fake entries; for debugging */
|
/* just publish fake entries; for debugging */
|
||||||
//#define NO_SEARCH
|
//#define NO_SEARCH
|
||||||
|
|
||||||
#define TRACE_GOOGLEFS
|
//#define TRACE_GOOGLEFS
|
||||||
#ifdef TRACE_GOOGLEFS
|
#ifdef TRACE_GOOGLEFS
|
||||||
# define TRACE(x) dprintf x
|
# define TRACE(x) dprintf x
|
||||||
#else
|
#else
|
||||||
@ -201,7 +201,7 @@ status_t googlefs_unmount(fs_volume *_volume)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Unlike in BeOS, we need to put the reference to our root node ourselves
|
// Unlike in BeOS, we need to put the reference to our root node ourselves
|
||||||
put_vnode(ns->nsid, ns->rootid);
|
put_vnode(_volume, ns->rootid);
|
||||||
|
|
||||||
free_lock(&ns->l);
|
free_lock(&ns->l);
|
||||||
vnidpool_free(ns->vnids);
|
vnidpool_free(ns->vnids);
|
||||||
@ -295,7 +295,7 @@ int googlefs_release_vnode(fs_volume *_volume, fs_vnode *_node, bool reenter)
|
|||||||
static int compare_fs_node_by_name(fs_node *node, char *name)
|
static int compare_fs_node_by_name(fs_node *node, char *name)
|
||||||
{
|
{
|
||||||
//return memcmp(node->name, name, GOOGLEFS_NAME_LEN);
|
//return memcmp(node->name, name, GOOGLEFS_NAME_LEN);
|
||||||
TRACE((PFS"find_by_name: '%s' <> '%s'\n", node->name, name));
|
//TRACE((PFS"find_by_name: '%s' <> '%s'\n", node->name, name));
|
||||||
return strncmp(node->name, name, GOOGLEFS_NAME_LEN);
|
return strncmp(node->name, name, GOOGLEFS_NAME_LEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1276,10 +1276,10 @@ int googlefs_open_query(fs_volume *_volume, const char *query, ulong flags,
|
|||||||
else if (strcmp(p, "\")&&(BEOS:TYPE==\"application/x-vnd.Be-bookmark\"))"))
|
else if (strcmp(p, "\")&&(BEOS:TYPE==\"application/x-vnd.Be-bookmark\"))"))
|
||||||
accepted = false;
|
accepted = false;
|
||||||
else {
|
else {
|
||||||
if (qstring[0] == '*')
|
//if (qstring[0] == '*')
|
||||||
strcpy(qstring+1, qstring);
|
// strcpy(qstring+1, qstring);
|
||||||
if (qstring[strlen(qstring)-1] == '*')
|
//if (qstring[strlen(qstring)-1] == '*')
|
||||||
qstring[strlen(qstring)-1] = '\0';
|
// qstring[strlen(qstring)-1] = '\0';
|
||||||
if (!query_strip_bracketed_Cc(qstring))
|
if (!query_strip_bracketed_Cc(qstring))
|
||||||
goto err_qs;
|
goto err_qs;
|
||||||
}
|
}
|
||||||
@ -1378,7 +1378,7 @@ err_gro:
|
|||||||
if (qn->request)
|
if (qn->request)
|
||||||
google_request_close(qn->request);
|
google_request_close(qn->request);
|
||||||
err_gn:
|
err_gn:
|
||||||
put_vnode(ns->nsid, qn->vnid);
|
put_vnode(_volume, qn->vnid);
|
||||||
err_mkdir:
|
err_mkdir:
|
||||||
if (!reused)
|
if (!reused)
|
||||||
googlefs_unlink_gen(_volume, ns->root, qn->name);
|
googlefs_unlink_gen(_volume, ns->root, qn->name);
|
||||||
@ -1410,7 +1410,7 @@ int googlefs_close_query(fs_volume *_volume, fs_query_cookie *cookie)
|
|||||||
/* if last cookie on the query and sync_unlink, trash all */
|
/* if last cookie on the query and sync_unlink, trash all */
|
||||||
if (sync_unlink_queries && !q->opened)
|
if (sync_unlink_queries && !q->opened)
|
||||||
err = googlefs_unlink_node_rec(_volume, q);
|
err = googlefs_unlink_node_rec(_volume, q);
|
||||||
err = put_vnode(ns->nsid, q->vnid);
|
err = put_vnode(_volume, q->vnid);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1565,118 +1565,6 @@ googlefs_std_ops(int32 op, ...)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static file_system_module_info sGoogleFSModule = {
|
|
||||||
{
|
|
||||||
"file_systems/googlefs" B_CURRENT_FS_API_VERSION,
|
|
||||||
0,
|
|
||||||
googlefs_std_ops,
|
|
||||||
},
|
|
||||||
|
|
||||||
"googlefs", // short_name
|
|
||||||
GOOGLEFS_PRETTY_NAME, // pretty_name
|
|
||||||
0, // DDM flags
|
|
||||||
|
|
||||||
// scanning
|
|
||||||
NULL, // fs_identify_partition,
|
|
||||||
NULL, // fs_scan_partition,
|
|
||||||
NULL, // fs_free_identify_partition_cookie,
|
|
||||||
NULL, // free_partition_content_cookie()
|
|
||||||
|
|
||||||
&googlefs_mount,
|
|
||||||
&googlefs_unmount,
|
|
||||||
&googlefs_rfsstat,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
|
|
||||||
/* vnode operations */
|
|
||||||
&googlefs_walk,
|
|
||||||
&googlefs_get_vnode_name,
|
|
||||||
&googlefs_read_vnode,
|
|
||||||
&googlefs_release_vnode,
|
|
||||||
&googlefs_remove_vnode,
|
|
||||||
|
|
||||||
/* VM file access */
|
|
||||||
NULL, // &googlefs_can_page
|
|
||||||
NULL, // &googlefs_read_pages
|
|
||||||
NULL, // &googlefs_write_pages
|
|
||||||
|
|
||||||
NULL, // &googlefs_get_file_map,
|
|
||||||
|
|
||||||
NULL, // &googlefs_ioctl
|
|
||||||
&googlefs_setflags,
|
|
||||||
NULL, // &googlefs_select
|
|
||||||
NULL, // &googlefs_deselect
|
|
||||||
NULL, // &googlefs_fsync
|
|
||||||
|
|
||||||
NULL, // &googlefs_read_link,
|
|
||||||
NULL, // &googlefs_create_symlink,
|
|
||||||
|
|
||||||
NULL, // &googlefs_link,
|
|
||||||
NULL, // &googlefs_unlink,
|
|
||||||
NULL, // &googlefs_rename,
|
|
||||||
|
|
||||||
&googlefs_access,
|
|
||||||
&googlefs_rstat,
|
|
||||||
&googlefs_wstat,
|
|
||||||
|
|
||||||
/* file operations */
|
|
||||||
&googlefs_create,
|
|
||||||
&googlefs_open,
|
|
||||||
&googlefs_close,
|
|
||||||
&googlefs_free_cookie,
|
|
||||||
&googlefs_read,
|
|
||||||
NULL, // &googlefs_write,
|
|
||||||
|
|
||||||
/* directory operations */
|
|
||||||
&googlefs_mkdir,
|
|
||||||
&googlefs_rmdir,
|
|
||||||
&googlefs_opendir,
|
|
||||||
&googlefs_closedir,
|
|
||||||
&googlefs_free_dircookie,
|
|
||||||
&googlefs_readdir,
|
|
||||||
&googlefs_rewinddir,
|
|
||||||
|
|
||||||
/* attribute directory operations */
|
|
||||||
&googlefs_open_attrdir,
|
|
||||||
&googlefs_close_attrdir,
|
|
||||||
&googlefs_free_attrdircookie,
|
|
||||||
&googlefs_read_attrdir,
|
|
||||||
&googlefs_rewind_attrdir,
|
|
||||||
|
|
||||||
/* attribute operations */
|
|
||||||
NULL, // &googlefs_create_attr
|
|
||||||
&googlefs_open_attr_h,
|
|
||||||
&googlefs_close_attr_h,
|
|
||||||
&googlefs_free_attr_cookie_h,
|
|
||||||
&googlefs_read_attr_h,
|
|
||||||
NULL, // &googlefs_write_attr_h,
|
|
||||||
|
|
||||||
&googlefs_read_attr_stat_h,
|
|
||||||
NULL, // &googlefs_write_attr_stat
|
|
||||||
NULL, // &googlefs_rename_attr
|
|
||||||
NULL, // &googlefs_remove_attr
|
|
||||||
|
|
||||||
/* index directory & index operations */
|
|
||||||
NULL, // &googlefs_open_index_dir
|
|
||||||
NULL, // &googlefs_close_index_dir
|
|
||||||
NULL, // &googlefs_free_index_dir_cookie
|
|
||||||
NULL, // &googlefs_read_index_dir
|
|
||||||
NULL, // &googlefs_rewind_index_dir
|
|
||||||
|
|
||||||
NULL, // &googlefs_create_index
|
|
||||||
NULL, // &googlefs_remove_index
|
|
||||||
NULL, // &googlefs_stat_index
|
|
||||||
|
|
||||||
/* query operations */
|
|
||||||
&googlefs_open_query,
|
|
||||||
&googlefs_close_query,
|
|
||||||
&googlefs_free_query_cookie,
|
|
||||||
&googlefs_read_query,
|
|
||||||
NULL, // &googlefs_rewind_query,
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static fs_volume_ops sGoogleFSVolumeOps = {
|
static fs_volume_ops sGoogleFSVolumeOps = {
|
||||||
&googlefs_unmount,
|
&googlefs_unmount,
|
||||||
@ -1697,10 +1585,10 @@ static fs_volume_ops sGoogleFSVolumeOps = {
|
|||||||
NULL, // &googlefs_stat_index
|
NULL, // &googlefs_stat_index
|
||||||
|
|
||||||
/* query operations */
|
/* query operations */
|
||||||
NULL, // &googlefs_open_query,
|
&googlefs_open_query,
|
||||||
NULL, // &googlefs_close_query,
|
&googlefs_close_query,
|
||||||
NULL, // &googlefs_free_query_cookie,
|
&googlefs_free_query_cookie,
|
||||||
NULL, // &googlefs_read_query,
|
&googlefs_read_query,
|
||||||
NULL, // &googlefs_rewind_query,
|
NULL, // &googlefs_rewind_query,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,6 +35,10 @@ char *query_unescape_string(const char *q, const char **newq, char delim)
|
|||||||
int backslash = 0;
|
int backslash = 0;
|
||||||
int i;
|
int i;
|
||||||
char *p, *p2;
|
char *p, *p2;
|
||||||
|
|
||||||
|
if (*q == '*')
|
||||||
|
q++;
|
||||||
|
|
||||||
p = malloc(10);
|
p = malloc(10);
|
||||||
if (!p)
|
if (!p)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -59,10 +63,14 @@ char *query_unescape_string(const char *q, const char **newq, char delim)
|
|||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
p[i] = *q;
|
p[i] = *q;
|
||||||
|
if (p[i] == '*')
|
||||||
|
p[i] = ' ';
|
||||||
}
|
}
|
||||||
q++;
|
q++;
|
||||||
}
|
}
|
||||||
p[i] = '\0';
|
p[i] = '\0';
|
||||||
|
if (i > 0 && p[i-1] == ' ')
|
||||||
|
p[i-1] = '\0';
|
||||||
if (newq)
|
if (newq)
|
||||||
*newq = q;
|
*newq = q;
|
||||||
if (i)
|
if (i)
|
||||||
|
Loading…
Reference in New Issue
Block a user