/* Client or File daemon "Global" resources */
static struct res_items cli_items[] = {
- {"name", store_name, ITEM(res_client.hdr.name), 0, ITEM_REQUIRED, 0},
+ {"name", store_name, ITEM(res_client.hdr.name), 0, ITEM_REQUIRED, 0},
{"description", store_str, ITEM(res_client.hdr.desc), 0, 0, 0},
- {"fdport", store_pint, ITEM(res_client.FDport), 0, ITEM_REQUIRED, 0},
+ {"fdport", store_pint, ITEM(res_client.FDport), 0, ITEM_DEFAULT, 9102},
+ {"fdaddress", store_str, ITEM(res_client.FDaddr), 0, 0, 0},
{"workingdirectory", store_dir, ITEM(res_client.working_directory), 0, ITEM_REQUIRED, 0},
- {"piddirectory", store_dir, ITEM(res_client.pid_directory), 0, ITEM_REQUIRED, 0},
- {"subsysdirectory", store_dir, ITEM(res_client.subsys_directory), 0, ITEM_REQUIRED, 0},
+ {"piddirectory", store_dir, ITEM(res_client.pid_directory), 0, ITEM_REQUIRED, 0},
+ {"subsysdirectory", store_dir, ITEM(res_client.subsys_directory), 0, 0, 0},
+ {"requiressl", store_yesno, ITEM(res_client.require_ssl), 1, ITEM_DEFAULT, 0},
+ {"maximumconcurrentjobs", store_pint, ITEM(res_client.MaxConcurrentJobs), 0, ITEM_DEFAULT, 10},
{"messages", store_res, ITEM(res_client.messages), R_MSGS, 0, 0},
+ {"heartbeatinterval", store_time, ITEM(res_client.heartbeat_interval), 0, ITEM_DEFAULT, 0},
+ {"sdconnecttimeout", store_time,ITEM(res_client.SDConnectTimeout), 0, ITEM_DEFAULT, 60 * 30},
{NULL, NULL, NULL, 0, 0, 0}
};
{"description", store_str, ITEM(res_dir.hdr.desc), 0, 0, 0},
{"password", store_password, ITEM(res_dir.password), 0, ITEM_REQUIRED, 0},
{"address", store_str, ITEM(res_dir.address), 0, 0, 0},
+ {"enablessl", store_yesno, ITEM(res_dir.enable_ssl),1, ITEM_DEFAULT, 0},
{NULL, NULL, NULL, 0, 0, 0}
};
/* common stuff -- free the resource name */
nres = (RES *)res->res_dir.hdr.next;
- if (res->res_dir.hdr.name)
+ if (res->res_dir.hdr.name) {
free(res->res_dir.hdr.name);
- if (res->res_dir.hdr.desc)
+ }
+ if (res->res_dir.hdr.desc) {
free(res->res_dir.hdr.desc);
+ }
switch (type) {
case R_DIRECTOR:
- if (res->res_dir.password)
+ if (res->res_dir.password) {
free(res->res_dir.password);
- if (res->res_dir.address)
+ }
+ if (res->res_dir.address) {
free(res->res_dir.address);
+ }
break;
case R_CLIENT:
- if (res->res_client.working_directory)
+ if (res->res_client.working_directory) {
free(res->res_client.working_directory);
- if (res->res_client.pid_directory)
+ }
+ if (res->res_client.pid_directory) {
free(res->res_client.pid_directory);
- if (res->res_client.subsys_directory)
+ }
+ if (res->res_client.subsys_directory) {
free(res->res_client.subsys_directory);
+ }
+ if (res->res_client.FDaddr) {
+ free(res->res_client.FDaddr);
+ }
break;
case R_MSGS:
if (res->res_msgs.mail_cmd)
} else {
RES *next;
/* Add new res to end of chain */
- for (next=resources[rindex].res_head; next->next; next=next->next)
- { }
+ for (next=resources[rindex].res_head; next->next; next=next->next) {
+ if (strcmp(next->name, res->res_dir.hdr.name) == 0) {
+ Emsg2(M_ERROR_TERM, 0,
+ _("Attempt to define second %s resource named \"%s\" is not permitted.\n"),
+ resources[rindex].name, res->res_dir.hdr.name);
+ }
+ }
next->next = (RES *)res;
Dmsg2(90, "Inserting %s res: %s\n", res_to_str(type),
res->res_dir.hdr.name);