return NULL;
/* Copy the client_info so that if the configuration changes,
* then the data stays valid. */
- client_info->taglist = regional_alloc_init(region, cinfo->taglist,
- cinfo->taglen);
- if(!client_info->taglist)
- return NULL;
- client_info->tag_actions = regional_alloc_init(region, cinfo->tag_actions,
- cinfo->tag_actions_size);
- if(!client_info->tag_actions)
- return NULL;
- client_info->tag_datas = regional_alloc_zero(region,
- sizeof(struct config_strlist*)*cinfo->tag_datas_size);
- if(!client_info->tag_datas)
- return NULL;
- for(i=0; i<cinfo->tag_datas_size; i++) {
- if(cinfo->tag_datas[i]) {
- client_info->tag_datas[i] = cfg_region_strlist_copy(
- region, cinfo->tag_datas[i]);
- if(!client_info->tag_datas[i])
- return NULL;
+ if(cinfo->taglist) {
+ client_info->taglist = regional_alloc_init(region, cinfo->taglist,
+ cinfo->taglen);
+ if(!client_info->taglist)
+ return NULL;
+ }
+ if(cinfo->tag_actions) {
+ client_info->tag_actions = regional_alloc_init(region, cinfo->tag_actions,
+ cinfo->tag_actions_size);
+ if(!client_info->tag_actions)
+ return NULL;
+ }
+ if(cinfo->tag_datas) {
+ client_info->tag_datas = regional_alloc_zero(region,
+ sizeof(struct config_strlist*)*cinfo->tag_datas_size);
+ if(!client_info->tag_datas)
+ return NULL;
+ for(i=0; i<cinfo->tag_datas_size; i++) {
+ if(cinfo->tag_datas[i]) {
+ client_info->tag_datas[i] = cfg_region_strlist_copy(
+ region, cinfo->tag_datas[i]);
+ if(!client_info->tag_datas[i])
+ return NULL;
+ }
}
}
if(cinfo->view) {