if(client != NULL && safe_str_eq(client->channel_name, cib_channel_callback)) {
type = cl_get_string(update_msg, F_SUBTYPE); CRM_DEV_ASSERT(type != NULL);  if(safe_str_eq(type, T_CIB_PRE_NOTIFY)) { is_pre = TRUE;  } else if(safe_str_eq(type, T_CIB_POST_NOTIFY)) { is_post = TRUE;  } else if(safe_str_eq(type, T_CIB_UPDATE_CONFIRM)) { is_confirm = TRUE; }  if(client == NULL) { crm_warn("Skipping NULL client");  } else if(client->channel->ch_status != IPC_CONNECT) { crm_debug("Skipping notification to disconnected" " client %s/%s", client->name, client->id);  } else if( (client->pre_notify && is_pre) || (client->post_notify && is_post) || (client->confirmations && is_confirm) ) {
cib_notify_client(gpointer key, gpointer value, gpointer user_data){	HA_Message *update_msg = user_data;	cib_client_t *client = value;	CRM_DEV_ASSERT(client != NULL);	CRM_DEV_ASSERT(update_msg != NULL);	if(client != NULL	   && safe_str_eq(client->channel_name, cib_channel_callback)) {		crm_trace("Notifying client %s/%s of update",			  client->name, client->id);				if(client->channel->should_send_blocking == FALSE) {			crm_warn("Client channel %s/%s was not set to"				 " \"send blocking\"", client->name,client->id);			client->channel->should_send_blocking = TRUE;		}				if(msg2ipcchan(update_msg, client->channel) != HA_OK) {			crm_warn("Notification of client %s/%s failed",				client->name, client->id);		}	}}