47 [
CRM_alert_rc] = {
"CRM_notify_rc",
"CRM_alert_rc", NULL},
55 free_envvar_entry(envvar_t *entry)
70 g_list_free_full(entry->
envvars,
71 (GDestroyNotify) free_envvar_entry);
80 g_list_free_full(
crm_alert_list, (GDestroyNotify) crm_free_alert_list_entry);
86 copy_envvar_entry(envvar_t * src,
89 envvar_t *dst = calloc(1,
sizeof(envvar_t));
92 dst->name = strdup(src->name);
93 dst->value = src->value?strdup(src->value):NULL;
94 return (gpointer) dst;
101 entrys->
envvars = g_list_prepend(entrys->
envvars, copy_envvar_entry(entry, NULL));
111 (entry->
envvars) && ((count < 0) || (i < count));
113 free_envvar_entry((envvar_t *) g_list_first(entry->
envvars)->data);
133 for (ls = g_list_first(entry->
envvars); ls; ls = g_list_next(ls)) {
134 for (ld = g_list_first(dst); ld; ld = g_list_next(ld)) {
135 if (!strcmp(((envvar_t *)(ls->data))->name,
136 ((envvar_t *)(ld->data))->name)) {
141 dst = g_list_prepend(dst,
142 copy_envvar_entry((envvar_t *)(ls->data), NULL));
157 .
id = strdup(entry->
id),
158 .path = strdup(entry->
path),
163 copy_envvar_list_remove_dupes(entry)
181 pair; pair = __xml_next(pair)) {
183 envvar_t envvar_entry = (envvar_t) {
187 crm_trace(
"Found environment variable %s = '%s'", envvar_entry.name,
188 envvar_entry.value?envvar_entry.value:
"");
190 add_dup_envvar(entry, &envvar_entry);
202 crm_trace(
"Setting alert key %s = '%s'", *key, value);
228 crm_trace(
"Unsetting alert key %s", *key);
239 for (l = g_list_first(entry->
envvars); l; l = g_list_next(l)) {
240 envvar_t *env = (envvar_t *)(l->data);
242 crm_trace(
"Setting environment variable %s = '%s'", env->name,
243 env->value?env->value:
"");
245 setenv(env->name, env->value, 1);
257 for (l = g_list_first(entry->
envvars); l; l = g_list_next(l)) {
258 envvar_t *env = (envvar_t *)(l->data);
260 crm_trace(
"Unsetting environment variable %s", env->name);
void crm_unset_envvar_list(crm_alert_entry_t *entry)
#define CRM_ALERT_DEFAULT_TIMEOUT_MS
#define XML_NVPAIR_ATTR_NAME
#define XML_CIB_TAG_NVPAIR
void crm_add_dup_alert_list_entry(crm_alert_entry_t *entry)
#define XML_TAG_ATTR_SETS
void crm_unset_alert_keys()
void crm_set_alert_key(enum crm_alert_keys_e name, const char *value)
#define crm_trace(fmt, args...)
int setenv(const char *name, const char *value, int why)
const char * crm_element_value(xmlNode *data, const char *name)
void crm_set_alert_key_int(enum crm_alert_keys_e name, int value)
const char * crm_alert_keys[14][3]
#define XML_NVPAIR_ATTR_VALUE
xmlNode * first_named_child(xmlNode *parent, const char *name)
guint crm_alert_max_alert_timeout
GListPtr crm_drop_envvars(crm_alert_entry_t *entry, int count)
char * crm_itoa(int an_int)
void crm_set_envvar_list(crm_alert_entry_t *entry)
void crm_free_alert_list()
GListPtr crm_get_envvars_from_cib(xmlNode *basenode, crm_alert_entry_t *entry, int *count)