Просмотр исходного кода

Fix a couple merge problems with the previous update to clm with the
conn_info structure.
the track list was not being initialized. When track start was called
the tracking wasn't added to a list. When track stop was called
the tracking was not deleted.
The result of all this is that cluster membership tracking was broken
previously.

(Logical change 1.27)


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@80 fd59a12c-fef9-0310-b244-a6a79926bd2f

Steven Dake 21 лет назад
Родитель
Сommit
e95e1e25cc
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      exec/clm.c

+ 6 - 0
exec/clm.c

@@ -419,6 +419,8 @@ static int message_handler_req_clm_init (struct conn_info *conn_info, void *mess
 
 	libais_send_response (conn_info, &res_lib_init, sizeof (res_lib_init));
 
+	list_init (&conn_info->conn_list);
+
 	if (conn_info->authenticated) {
 		return (0);
 	}
@@ -447,6 +449,8 @@ int message_handler_req_clm_trackstart (struct conn_info *conn_info, void *messa
 	conn_info->ais_ci.u.libclm_ci.trackFlags = req_clm_trackstart->trackFlags;
 	conn_info->ais_ci.u.libclm_ci.notificationBufferAddress = req_clm_trackstart->notificationBufferAddress;
 
+	list_add (&conn_info->conn_list, &library_notification_send_listhead);
+
 	libraryNotificationCurrentState (conn_info);
 
 	return (0);
@@ -457,6 +461,8 @@ static int message_handler_req_clm_trackstop (struct conn_info *conn_info, void
 	conn_info->ais_ci.u.libclm_ci.trackFlags = 0;
 	conn_info->ais_ci.u.libclm_ci.notificationBufferAddress = 0;
 
+	list_del (&conn_info->conn_list);
+
 	return (0);
 }