@@ -55,7 +55,8 @@ remove_unsupported_sync_points(pcmk__request_t *request)
5555static xmlNode *
5656handle_unknown_request (pcmk__request_t * request )
5757{
58- crm_err ("Unknown IPC request %s from %s %s" ,
58+ crm_err ("Unknown %s request %s from %s %s" ,
59+ (request -> ipc_client != NULL ) ? "IPC" : "CPG" ,
5960 request -> op , pcmk__request_origin_type (request ),
6061 pcmk__request_origin (request ));
6162 pcmk__format_result (& request -> result , CRM_EX_PROTOCOL , PCMK_EXEC_INVALID ,
@@ -104,54 +105,56 @@ handle_clear_failure_request(pcmk__request_t *request)
104105static xmlNode *
105106handle_confirm_request (pcmk__request_t * request )
106107{
107- if (request -> peer != NULL ) {
108- int callid ;
108+ int callid = 0 ;
109109
110- crm_debug ("Received confirmation from %s" , request -> peer );
110+ if (request -> ipc_client != NULL ) {
111+ return handle_unknown_request (request );
112+ }
111113
112- if (pcmk__xe_get_int (request -> xml , PCMK__XA_CALL_ID ,
113- & callid ) != pcmk_rc_ok ) {
114- pcmk__set_result (& request -> result , CRM_EX_PROTOCOL , PCMK_EXEC_INVALID ,
115- "Could not get callid from XML" );
116- } else {
117- attrd_handle_confirmation (callid , request -> peer );
118- }
114+ crm_debug ("Received confirmation from %s" , request -> peer );
119115
120- pcmk__set_result (& request -> result , CRM_EX_OK , PCMK_EXEC_DONE , NULL );
121- return NULL ;
116+ if (pcmk__xe_get_int (request -> xml , PCMK__XA_CALL_ID ,
117+ & callid ) != pcmk_rc_ok ) {
118+ pcmk__set_result (& request -> result , CRM_EX_PROTOCOL , PCMK_EXEC_INVALID ,
119+ "Could not get callid from XML" );
122120 } else {
123- return handle_unknown_request ( request );
121+ attrd_handle_confirmation ( callid , request -> peer );
124122 }
123+
124+ pcmk__set_result (& request -> result , CRM_EX_OK , PCMK_EXEC_DONE , NULL );
125+ return NULL ;
125126}
126127
127128static xmlNode *
128129handle_query_request (pcmk__request_t * request )
129130{
130131 if (request -> peer != NULL ) {
131132 return handle_unknown_request (request );
132- } else {
133- return attrd_client_query (request );
134133 }
134+
135+ return attrd_client_query (request );
135136}
136137
137138static xmlNode *
138139handle_remove_request (pcmk__request_t * request )
139140{
140- if (request -> peer != NULL ) {
141- const char * host = pcmk__xe_get (request -> xml , PCMK__XA_ATTR_HOST );
142- bool reap = false;
143-
144- if (pcmk__xe_get_bool (request -> xml , PCMK__XA_REAP ,
145- & reap ) != pcmk_rc_ok ) {
146- reap = true; // Default to true for backward compatibility
147- }
148- attrd_peer_remove (host , reap , request -> peer );
149- pcmk__set_result (& request -> result , CRM_EX_OK , PCMK_EXEC_DONE , NULL );
141+ const char * host = NULL ;
142+ bool reap = false;
150143
151- } else {
144+ if ( request -> ipc_client != NULL ) {
152145 attrd_client_peer_remove (request );
146+ return NULL ;
153147 }
154148
149+ host = pcmk__xe_get (request -> xml , PCMK__XA_ATTR_HOST );
150+
151+ if (pcmk__xe_get_bool (request -> xml , PCMK__XA_REAP ,
152+ & reap ) != pcmk_rc_ok ) {
153+ reap = true; // Default to true for backward compatibility
154+ }
155+
156+ attrd_peer_remove (host , reap , request -> peer );
157+ pcmk__set_result (& request -> result , CRM_EX_OK , PCMK_EXEC_DONE , NULL );
155158 return NULL ;
156159}
157160
@@ -161,31 +164,32 @@ handle_refresh_request(pcmk__request_t *request)
161164 if (request -> peer != NULL ) {
162165 return handle_unknown_request (request );
163166 }
167+
164168 attrd_client_refresh (request );
165169 return NULL ;
166170}
167171
168172static xmlNode *
169173handle_sync_response_request (pcmk__request_t * request )
170174{
175+ pcmk__node_status_t * peer = NULL ;
176+ bool peer_won = false;
177+
171178 if (request -> ipc_client != NULL ) {
172179 return handle_unknown_request (request );
173- } else {
174- if (request -> peer != NULL ) {
175- pcmk__node_status_t * peer =
176- pcmk__get_node (0 , request -> peer , NULL ,
177- pcmk__node_search_cluster_member );
178- bool peer_won = attrd_check_for_new_writer (peer , request -> xml );
179-
180- if (!pcmk__str_eq (peer -> name , attrd_cluster -> priv -> node_name ,
181- pcmk__str_casei )) {
182- attrd_peer_sync_response (peer , peer_won , request -> xml );
183- }
184- }
180+ }
185181
186- pcmk__set_result (& request -> result , CRM_EX_OK , PCMK_EXEC_DONE , NULL );
187- return NULL ;
182+ peer = pcmk__get_node (0 , request -> peer , NULL ,
183+ pcmk__node_search_cluster_member );
184+ peer_won = attrd_check_for_new_writer (peer , request -> xml );
185+
186+ if (!pcmk__str_eq (peer -> name , attrd_cluster -> priv -> node_name ,
187+ pcmk__str_casei )) {
188+ attrd_peer_sync_response (peer , peer_won , request -> xml );
188189 }
190+
191+ pcmk__set_result (& request -> result , CRM_EX_OK , PCMK_EXEC_DONE , NULL );
192+ return NULL ;
189193}
190194
191195static xmlNode *
0 commit comments