1/*
2 * Copyright 2004-2008, Fran��ois Revol, <revol@free.fr>.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include <stdlib.h>
7#include <driver_settings.h>
8#include "settings.h"
9
10#define DEFAULT_GOOGLE_SERVER "66.102.11.99"
11#define DEFAULT_MAX_VNODES 5000
12char google_server[20] = DEFAULT_GOOGLE_SERVER;
13int google_server_port = 80;
14uint32 max_vnodes = DEFAULT_MAX_VNODES;
15uint32 max_results = 50;
16bool sync_unlink_queries = false;
17
18status_t load_settings(void)
19{
20	void *handle;
21	char *val;
22	handle = load_driver_settings("googlefs");
23	if (!handle)
24		return ENOENT;
25
26	dprintf("googlefs: loaded settings\n");
27
28	val = get_driver_parameter(handle, "server", \
29			DEFAULT_GOOGLE_SERVER, DEFAULT_GOOGLE_SERVER);
30	strncpy(google_server, val, 20);
31	google_server[20-1] = '\0';
32
33	val = get_driver_parameter(handle, "port", "80", "80");
34	google_server_port = strtoul(val, NULL, 10);
35
36	val = get_driver_parameter(handle, "max_nodes", "5000", "5000");
37	max_vnodes = strtoul(val, NULL, 10);
38	max_vnodes = MIN(max_vnodes, 1000000);
39	max_vnodes = MAX(max_vnodes, 10);
40
41	val = get_driver_parameter(handle, "max_results", "50", "50");
42	max_results = strtoul(val, NULL, 10);
43	max_results = MIN(max_results, 1000);
44	max_results = MAX(max_results, 5);
45
46	sync_unlink_queries = get_driver_boolean_parameter(handle, "sync_unlink", false, true);
47
48	dprintf("googlefs: settings: server = %s\n", google_server);
49	dprintf("googlefs: settings: max_nodes = %lu\n", max_vnodes);
50	dprintf("googlefs: settings: max_results = %lu\n", max_results);
51	dprintf("googlefs: settings: sync_unlink = %c\n", sync_unlink_queries?'t':'f');
52	unload_driver_settings(handle);
53	return B_OK;
54}
55
56