16 #include "wvlinklist.h"
18 #include "wvstringlist.h"
23 #warning "disabling wvconfemu transparent emulation"
25 #undef WvConfigSection
26 #undef WvConfigSectionList
28 #undef WvConfigEntryList
42 void set(WvStringParm _value)
61 const char *get(WvStringParm entry,
const char *def_val = NULL);
62 void set(WvStringParm entry, WvStringParm value);
66 void quick_set(WvStringParm entry, WvStringParm value);
75 typedef wv::function<void(
void*, WvStringParm, WvStringParm, WvStringParm, WvStringParm)> WvConfCallback;
81 WvConfCallback callback;
82 void *userdata, *cookie;
86 WvStringParm _section, WvStringParm _entry,
88 : callback(_callback), section(_section), entry(_entry)
89 { userdata = _userdata; cookie = _cookie; }
98 class WvAuthDaemonSvc;
104 class WvConf :
public WvConfigSectionList
107 WvConf(WvStringParm _filename,
int _create_mode = 0666);
113 {
return isok() && !dirty; }
114 void save(WvStringParm filename);
120 static int check_for_bool_string(
const char *s);
121 int parse_wvconf_request(
char *request,
char *§ion,
char *&entry,
124 int getint(WvStringParm section, WvStringParm entry,
int def_val);
126 const char *get(WvStringParm section, WvStringParm entry,
127 const char *def_val = NULL);
130 int fuzzy_getint(
WvStringList §, WvStringParm entry,
132 const char *fuzzy_get(
WvStringList §, WvStringParm entry,
133 const char *def_val = NULL);
138 const char *def_val = NULL);
140 void setint(WvStringParm section, WvStringParm entry,
int value);
141 void set(WvStringParm section, WvStringParm entry,
143 void setraw(
WvString wvconfstr,
const char *&value,
int &parse_error);
145 void maybesetint(WvStringParm section, WvStringParm entry,
147 void maybeset(WvStringParm section, WvStringParm entry,
150 void delete_section(WvStringParm section);
156 void add_callback(WvConfCallback callback,
void *userdata,
157 WvStringParm section, WvStringParm entry,
void *cookie);
158 void del_callback(WvStringParm section, WvStringParm entry,
void *cookie);
159 void run_callbacks(WvStringParm section, WvStringParm entry,
160 WvStringParm oldvalue, WvStringParm newvalue);
161 void run_all_callbacks();
164 void setbool(
void *userdata,
165 WvStringParm section, WvStringParm entry,
166 WvStringParm oldval, WvStringParm newval);
169 void addname(
void *userdata,
170 WvStringParm section, WvStringParm entry,
171 WvStringParm oldval, WvStringParm newval);
174 void addfile(
void *userdata,
175 WvStringParm section, WvStringParm entry,
176 WvStringParm oldval, WvStringParm newval);
178 void add_addfile(
WvString *filename, WvStringParm sect, WvStringParm ent)
179 { add_callback(wv::bind(&WvConf::addfile,
this, _1, _2, _3, _4, _5),
180 filename, sect, ent,
new int); }
182 void add_addname(
WvStringList *list, WvStringParm sect, WvStringParm ent)
183 { add_callback(wv::bind(&WvConf::addname,
this, _1, _2, _3, _4, _5),
184 list, sect, ent, list); }
185 void del_addname(
WvStringList *list, WvStringParm sect, WvStringParm ent)
186 { del_callback(sect, ent, list); }
188 void add_setbool(
bool *b, WvStringParm section, WvStringParm entry)
189 { add_callback(wv::bind(&WvConf::setbool,
this, _1, _2, _3, _4, _5),
190 b, section, entry, b); }
191 void del_setbool(
bool *b, WvStringParm section, WvStringParm entry)
192 { del_callback(section, entry, b); }
195 { load_file(filename); }
196 void load_file(WvStringParm filename);
199 WvString get_passwd(WvStringParm sect, WvStringParm user);
200 WvString get_passwd(WvStringParm user)
201 {
return get_passwd(
"Users", user); }
207 bool check_passwd(WvStringParm sect, WvStringParm user,
208 WvStringParm passwd);
209 bool check_passwd(WvStringParm user, WvStringParm passwd)
211 return check_passwd(
"Users", user, passwd);
215 bool user_exists(WvStringParm sect, WvStringParm user);
216 bool user_exists(WvStringParm user)
218 return user_exists(
"Users", user);
222 void set_passwd(WvStringParm sect, WvStringParm user, WvStringParm passwd);
223 void set_passwd(WvStringParm user, WvStringParm passwd)
224 { set_passwd(
"Users", user, passwd); }
225 WvString set_passwd2(WvStringParm passwd);
228 void convert_to_old_pw();
244 WvConfCallbackInfoList callbacks;
246 char *parse_section(
char *s);
247 char *parse_value(
char *s);
258 WvAuthDaemon *wvauthd;
260 friend class WvAuthDaemonSvc;