Lines Matching refs:p
44 plugin_data * const p = p_d; in FREE_FUNC() local
45 free(p->cache_user[0].ptr); in FREE_FUNC()
46 free(p->cache_user[1].ptr); in FREE_FUNC()
47 free(p->cache_path[0].ptr); in FREE_FUNC()
48 free(p->cache_path[1].ptr); in FREE_FUNC()
82 static void mod_userdir_patch_config(request_st * const r, plugin_data * const p) { in mod_userdir_patch_config() argument
83 memcpy(&p->conf, &p->defaults, sizeof(plugin_config)); in mod_userdir_patch_config()
84 for (int i = 1, used = p->nconfig; i < used; ++i) { in mod_userdir_patch_config()
85 if (config_check_cond(r, (uint32_t)p->cvlist[i].k_id)) in mod_userdir_patch_config()
86 mod_userdir_merge_config(&p->conf, p->cvlist + p->cvlist[i].v.u2[0]); in mod_userdir_patch_config()
115 plugin_data * const p = p_d; in SETDEFAULTS_FUNC() local
116 if (!config_plugin_values_init(srv, p, cpk, "mod_userdir")) in SETDEFAULTS_FUNC()
121 for (int i = !p->cvlist[0].v.u2[1]; i < p->nconfig; ++i) { in SETDEFAULTS_FUNC()
122 config_plugin_value_t *cpv = p->cvlist + p->cvlist[i].v.u2[0]; in SETDEFAULTS_FUNC()
145 p->defaults.active = 1; in SETDEFAULTS_FUNC()
148 if (p->nconfig > 0 && p->cvlist->v.u2[1]) { in SETDEFAULTS_FUNC()
149 const config_plugin_value_t *cpv = p->cvlist + p->cvlist->v.u2[0]; in SETDEFAULTS_FUNC()
151 mod_userdir_merge_config(&p->defaults, cpv); in SETDEFAULTS_FUNC()
174 static handler_t mod_userdir_docroot_construct(request_st * const r, plugin_data * const p, const c… in mod_userdir_docroot_construct() argument
184 if (!p->conf.basepath) { in mod_userdir_docroot_construct()
189 const int cache_sz =(int)(sizeof(p->cache_user)/sizeof(*p->cache_user)); in mod_userdir_docroot_construct()
191 if (cur_ts - p->cache_ts[i] < 60 && p->cache_user[i].used in mod_userdir_docroot_construct()
192 && buffer_eq_slen(&p->cache_user[i], u, ulen)) { in mod_userdir_docroot_construct()
199 buffer_copy_path_len2(b, BUF_PTR_LEN(&p->cache_path[cached]), in mod_userdir_docroot_construct()
200 BUF_PTR_LEN(p->conf.path)); in mod_userdir_docroot_construct()
205 BUF_PTR_LEN(p->conf.path)); in mod_userdir_docroot_construct()
211 unix_time64_t cache_ts = p->cache_ts[0]; in mod_userdir_docroot_construct()
213 if (cache_ts > p->cache_ts[i]) { in mod_userdir_docroot_construct()
214 cache_ts = p->cache_ts[i]; in mod_userdir_docroot_construct()
218 p->cache_ts[cached] = cur_ts; in mod_userdir_docroot_construct()
219 buffer_copy_string_len(&p->cache_path[cached], b->ptr, plen); in mod_userdir_docroot_construct()
220 buffer_copy_string_len(&p->cache_user[cached], u, ulen); in mod_userdir_docroot_construct()
246 buffer_copy_buffer(b, p->conf.basepath); in mod_userdir_docroot_construct()
247 if (p->conf.letterhomes) { in mod_userdir_docroot_construct()
252 buffer_append_path_len(b, BUF_PTR_LEN(p->conf.path)); in mod_userdir_docroot_construct()
290 plugin_data * const p = p_d; in URIHANDLER_FUNC() local
291 mod_userdir_patch_config(r, p); in URIHANDLER_FUNC()
296 if (!p->conf.active || !p->conf.path) return HANDLER_GO_ON; in URIHANDLER_FUNC()
315 if (p->conf.exclude_user) { in URIHANDLER_FUNC()
319 ? mod_userdir_in_vlist(p->conf.exclude_user, uptr, ulen) in URIHANDLER_FUNC()
320 : mod_userdir_in_vlist_nc(p->conf.exclude_user, uptr, ulen)) in URIHANDLER_FUNC()
324 if (p->conf.include_user) { in URIHANDLER_FUNC()
325 if (!mod_userdir_in_vlist(p->conf.include_user, uptr, ulen)) in URIHANDLER_FUNC()
329 return mod_userdir_docroot_construct(r, p, uptr, ulen); in URIHANDLER_FUNC()
334 int mod_userdir_plugin_init(plugin *p);
335 int mod_userdir_plugin_init(plugin *p) { in mod_userdir_plugin_init() argument
336 p->version = LIGHTTPD_VERSION_ID; in mod_userdir_plugin_init()
337 p->name = "userdir"; in mod_userdir_plugin_init()
339 p->init = mod_userdir_init; in mod_userdir_plugin_init()
340 p->cleanup = mod_userdir_free; in mod_userdir_plugin_init()
341 p->handle_physical = mod_userdir_docroot_handler; in mod_userdir_plugin_init()
342 p->set_defaults = mod_userdir_set_defaults; in mod_userdir_plugin_init()