* hook into icmap to read config at runtime * we do NOT start by default, ever! */
| 228 | * we do NOT start by default, ever! |
| 229 | */ |
| 230 | static void pload_read_config( |
| 231 | int32_t event, |
| 232 | const char *key_name, |
| 233 | struct icmap_notify_value new_val, |
| 234 | struct icmap_notify_value old_val, |
| 235 | void *user_data) |
| 236 | { |
| 237 | uint32_t pload_count = 1500000; |
| 238 | uint32_t pload_size = 300; |
| 239 | char *pload_start = NULL; |
| 240 | |
| 241 | icmap_get_uint32("pload.count", &pload_count); |
| 242 | icmap_get_uint32("pload.size", &pload_size); |
| 243 | |
| 244 | if (pload_size > MESSAGE_SIZE_MAX) { |
| 245 | pload_size = MESSAGE_SIZE_MAX; |
| 246 | log_printf(LOGSYS_LEVEL_WARNING, "pload size limited to %u", pload_size); |
| 247 | } |
| 248 | |
| 249 | if ((!pload_started) && |
| 250 | (icmap_get_string("pload.start", &pload_start) == CS_OK)) { |
| 251 | if (!strcmp(pload_start, |
| 252 | "i_totally_understand_pload_will_crash_my_cluster_and_kill_corosync_on_exit")) { |
| 253 | buffer = malloc(pload_size); |
| 254 | if (buffer) { |
| 255 | log_printf(LOGSYS_LEVEL_WARNING, "Starting pload!"); |
| 256 | pload_send_start(pload_count, pload_size); |
| 257 | } else { |
| 258 | log_printf(LOGSYS_LEVEL_WARNING, |
| 259 | "Unable to allocate pload buffer!"); |
| 260 | } |
| 261 | } |
| 262 | free(pload_start); |
| 263 | } |
| 264 | } |
| 265 | |
| 266 | /* |
| 267 | * exec functions |
nothing calls this directly
no test coverage detected