static void _send_reply(int new_fd, char *msg) { uint32_t data_sent, msg_size = 0; char header[10]; if (msg) msg_size = strlen(msg) + 1; (void) sprintf(header, "%08u\n", msg_size); if (_write_bytes((int) new_fd, header, 9) != 9) { info("slurmctld/nonstop: failed to write message header %m"); return; } data_sent = _write_bytes((int) new_fd, msg, msg_size); if (data_sent != msg_size) { info("slurmctld/nonstop: unable to write data message " "(%u of %u) %m", data_sent, msg_size); } }
static size_t _send_msg(int fd, char *buf, size_t size) { char header[10]; size_t data_sent; (void) sprintf(header, "%08lu\n", (uint32_t) size); if (_write_bytes(fd, header, 9) != 9) { perror("writing message header"); exit(1); } data_sent = _write_bytes(fd, buf, size); if (data_sent != size) { perror("writing message"); exit(1); } return data_sent; }
/*****************************************************************************\ * Send a message (response) to specified file descriptor * * RET - Number of data bytes written (excludes header) \*****************************************************************************/ static size_t _send_msg(slurm_fd_t new_fd, char *buf, size_t size) { char header[10]; size_t data_sent; if (slurm_get_debug_flags() & DEBUG_FLAG_WIKI) info("wiki msg send:%s", buf); (void) sprintf(header, "%08lu\n", (unsigned long) size); if (_write_bytes((int) new_fd, header, 9) != 9) { error("wiki: failed to write message header %m"); return 0; } data_sent = _write_bytes((int) new_fd, buf, size); if (data_sent != size) { error("wiki: unable to write data message (%lu of %lu) %m", (long unsigned) data_sent, (long unsigned) size); } return data_sent; }
/*****************************************************************************\ * Send a message (response) to specified file descriptor * * RET - Number of data bytes written (excludes header) \*****************************************************************************/ static size_t _send_msg(slurm_fd_t new_fd, char *buf, size_t size) { size_t data_sent; info("dynalloc msg send:%s", buf); data_sent = _write_bytes((int) new_fd, buf, size); if (data_sent != size) { error("dynalloc: unable to write data message (%lu of %lu) %m", (long unsigned) data_sent, (long unsigned) size); } return data_sent; }