|
@@ -181,28 +181,30 @@ qdevice_net_pr_poll_array_create(struct qdevice_net_instance *instance)
|
|
|
poll_array = &instance->poll_array;
|
|
poll_array = &instance->poll_array;
|
|
|
ipc_client_list = &instance->qdevice_instance_ptr->local_ipc.clients;
|
|
ipc_client_list = &instance->qdevice_instance_ptr->local_ipc.clients;
|
|
|
|
|
|
|
|
- pr_poll_array_clean(poll_array);
|
|
|
|
|
|
|
+ if (qdevice_ipc_is_closed(instance->qdevice_instance_ptr)) {
|
|
|
|
|
+ qdevice_log(LOG_DEBUG, "Local socket is closed");
|
|
|
|
|
+ instance->schedule_disconnect = 1;
|
|
|
|
|
+ instance->disconnect_reason = QDEVICE_NET_DISCONNECT_REASON_LOCAL_SOCKET_CLOSED;
|
|
|
|
|
|
|
|
- if (pr_poll_array_add(poll_array, &poll_desc, (void **)&user_data) < 0) {
|
|
|
|
|
return (NULL);
|
|
return (NULL);
|
|
|
}
|
|
}
|
|
|
- poll_desc->fd = instance->votequorum_poll_fd;
|
|
|
|
|
- poll_desc->in_flags = PR_POLL_READ;
|
|
|
|
|
- user_data->type = QDEVICE_NET_POLL_ARRAY_USER_DATA_TYPE_VOTEQUORUM;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ pr_poll_array_clean(poll_array);
|
|
|
|
|
|
|
|
if (pr_poll_array_add(poll_array, &poll_desc, (void **)&user_data) < 0) {
|
|
if (pr_poll_array_add(poll_array, &poll_desc, (void **)&user_data) < 0) {
|
|
|
return (NULL);
|
|
return (NULL);
|
|
|
}
|
|
}
|
|
|
- poll_desc->fd = instance->cmap_poll_fd;
|
|
|
|
|
|
|
+ poll_desc->fd = instance->votequorum_poll_fd;
|
|
|
poll_desc->in_flags = PR_POLL_READ;
|
|
poll_desc->in_flags = PR_POLL_READ;
|
|
|
- user_data->type = QDEVICE_NET_POLL_ARRAY_USER_DATA_TYPE_CMAP;
|
|
|
|
|
-
|
|
|
|
|
- if (qdevice_ipc_is_closed(instance->qdevice_instance_ptr)) {
|
|
|
|
|
- qdevice_log(LOG_DEBUG, "Local socket is closed");
|
|
|
|
|
- instance->schedule_disconnect = 1;
|
|
|
|
|
- instance->disconnect_reason = QDEVICE_NET_DISCONNECT_REASON_LOCAL_SOCKET_CLOSED;
|
|
|
|
|
|
|
+ user_data->type = QDEVICE_NET_POLL_ARRAY_USER_DATA_TYPE_VOTEQUORUM;
|
|
|
|
|
|
|
|
- return (NULL);
|
|
|
|
|
|
|
+ if (!instance->qdevice_instance_ptr->sync_in_progress) {
|
|
|
|
|
+ if (pr_poll_array_add(poll_array, &poll_desc, (void **)&user_data) < 0) {
|
|
|
|
|
+ return (NULL);
|
|
|
|
|
+ }
|
|
|
|
|
+ poll_desc->fd = instance->cmap_poll_fd;
|
|
|
|
|
+ poll_desc->in_flags = PR_POLL_READ;
|
|
|
|
|
+ user_data->type = QDEVICE_NET_POLL_ARRAY_USER_DATA_TYPE_CMAP;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (pr_poll_array_add(poll_array, &poll_desc, (void **)&user_data) < 0) {
|
|
if (pr_poll_array_add(poll_array, &poll_desc, (void **)&user_data) < 0) {
|