amfree(dle->device);
amfree(dle->program);
g_slist_free(dle->estimatelist);
- g_slist_free_full(dle->levellist);
+ slist_free_full(dle->levellist, g_free);
amfree(dle->dumpdate);
amfree(dle->compprog);
amfree(dle->srv_encrypt);
amfree(dle->srv_decrypt_opt);
amfree(dle->clnt_decrypt_opt);
amfree(dle->auth);
+ amfree(dle->application_client_name);
free_sl(dle->exclude_file);
free_sl(dle->exclude_list);
free_sl(dle->include_file);
scriptlist = scriptlist->next) {
free_script_data((script_t *)scriptlist->data);
}
- g_slist_free_full(dle->scriptlist);
- g_slist_free_full(dle->directtcp_list);
+ slist_free_full(dle->scriptlist, g_free);
+ slist_free_full(dle->directtcp_list, g_free);
amfree(dle);
}
script_t *script)
{
amfree(script->plugin);
+ amfree(script->client_name);
if (script->property)
g_hash_table_destroy(script->property);
}
dle->scriptlist = NULL;
dle->data_path = DATA_PATH_AMANDA;
dle->directtcp_list = NULL;
+ dle->application_client_name = NULL;
dle->next = NULL;
}
data_user->script->execute_on = 0;
data_user->script->execute_where = ES_CLIENT;
data_user->script->property = NULL;
+ data_user->script->client_name = NULL;
data_user->script->result = NULL;
data_user->has_plugin = 0;
} else if (strcmp(element_name, "execute_on") == 0) {
"XML: Invalid %s element", element_name);
return;
}
+ } else if (strcmp(element_name, "client_name") == 0) {
} else {
g_set_error(gerror, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
"XML: Invalid %s element", element_name);
sep = strchr(tt1,',');
if (sep)
*sep = '\0';
- if (strcmp(tt1,"PRE-DLE-AMCHECK") == 0)
+ if (strcmp(tt1,"PRE-AMCHECK") == 0)
+ data_user->script->execute_on |= EXECUTE_ON_PRE_AMCHECK;
+ else if (strcmp(tt1,"PRE-DLE-AMCHECK") == 0)
data_user->script->execute_on |= EXECUTE_ON_PRE_DLE_AMCHECK;
else if (strcmp(tt1,"PRE-HOST-AMCHECK") == 0)
data_user->script->execute_on |= EXECUTE_ON_PRE_HOST_AMCHECK;
+ else if (strcmp(tt1,"POST-AMCHECK") == 0)
+ data_user->script->execute_on |= EXECUTE_ON_POST_AMCHECK;
else if (strcmp(tt1,"POST-DLE-AMCHECK") == 0)
data_user->script->execute_on |= EXECUTE_ON_POST_DLE_AMCHECK;
else if (strcmp(tt1,"POST-HOST-AMCHECK") == 0)
data_user->script->execute_on |= EXECUTE_ON_POST_HOST_AMCHECK;
+ else if (strcmp(tt1,"PRE-ESTIMATE") == 0)
+ data_user->script->execute_on |= EXECUTE_ON_PRE_ESTIMATE;
else if (strcmp(tt1,"PRE-DLE-ESTIMATE") == 0)
data_user->script->execute_on |= EXECUTE_ON_PRE_DLE_ESTIMATE;
else if (strcmp(tt1,"PRE-HOST-ESTIMATE") == 0)
data_user->script->execute_on |= EXECUTE_ON_PRE_HOST_ESTIMATE;
+ else if (strcmp(tt1,"POST-ESTIMATE") == 0)
+ data_user->script->execute_on |= EXECUTE_ON_POST_ESTIMATE;
else if (strcmp(tt1,"POST-DLE-ESTIMATE") == 0)
data_user->script->execute_on |= EXECUTE_ON_POST_DLE_ESTIMATE;
else if (strcmp(tt1,"POST-HOST-ESTIMATE") == 0)
data_user->script->execute_on |= EXECUTE_ON_POST_HOST_ESTIMATE;
+ else if (strcmp(tt1,"PRE-BACKUP") == 0)
+ data_user->script->execute_on |= EXECUTE_ON_PRE_BACKUP;
else if (strcmp(tt1,"PRE-DLE-BACKUP") == 0)
data_user->script->execute_on |= EXECUTE_ON_PRE_DLE_BACKUP;
else if (strcmp(tt1,"PRE-HOST-BACKUP") == 0)
data_user->script->execute_on |= EXECUTE_ON_PRE_HOST_BACKUP;
+ else if (strcmp(tt1,"POST-BACKUP") == 0)
+ data_user->script->execute_on |= EXECUTE_ON_POST_BACKUP;
else if (strcmp(tt1,"POST-DLE-BACKUP") == 0)
data_user->script->execute_on |= EXECUTE_ON_POST_DLE_BACKUP;
else if (strcmp(tt1,"POST-HOST-BACKUP") == 0)
amfree(tt);
} else if(strcmp(last_element_name, "directtcp") == 0) {
dle->directtcp_list = g_slist_append(dle->directtcp_list, tt);
+ } else if(strcmp(last_element_name, "client_name") == 0) {
+ last_element2 = g_slist_nth(data_user->element_names, 1);
+ if (!last_element2) {
+ error("Invalid client_name text");
+ }
+ last_element2_name = last_element2->data;
+ if (strcmp(last_element2_name, "backup-program") == 0) {
+ dle->application_client_name = tt;
+g_debug("set dle->application_client_name: %s", dle->application_client_name);
+ } else if (strcmp(last_element2_name, "script") == 0) {
+ data_user->script->client_name = tt;
+g_debug("set data_user->script->client_name: %s", data_user->script->client_name);
+ } else {
+ error("client_name outside of script or backup-program");
+ }
} else {
g_set_error(gerror, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
"XML: amtext not defined for '%s'", last_element_name);