MCPcopy Create free account
hub / github.com/ClusterLabs/pacemaker / cib_send_plaintext

Function cib_send_plaintext

lib/common/remote.c:207–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205#endif
206
207char *
208cib_send_plaintext(int sock, xmlNode * msg)
209{
210 char *xml_text = dump_xml_unformatted(msg);
211
212 if (xml_text != NULL) {
213 int rc = 0;
214 char *unsent = xml_text;
215 int len = strlen(xml_text);
216
217 len++; /* null char */
218 crm_trace("Message on socket %d: size=%d", sock, len);
219 retry:
220 rc = write(sock, unsent, len);
221 if (rc < 0) {
222 switch (errno) {
223 case EINTR:
224 case EAGAIN:
225 crm_trace("Retry");
226 goto retry;
227 default:
228 crm_perror(LOG_ERR, "Could only write %d of the remaining %d bytes", rc, len);
229 break;
230 }
231
232 } else if (rc < len) {
233 crm_trace("Only sent %d of %d remaining bytes", rc, len);
234 len -= rc;
235 unsent += rc;
236 goto retry;
237
238 } else {
239 crm_trace("Sent %d bytes: %.100s", rc, xml_text);
240 }
241 }
242 free(xml_text);
243 return NULL;
244
245}
246
247char *
248cib_recv_plaintext(int sock)

Callers 1

crm_send_remote_msgFunction · 0.85

Calls 1

dump_xml_unformattedFunction · 0.85

Tested by

no test coverage detected