ssize_t DpsSearchdSendPacket(int fd,const DPS_SEARCHD_PACKET_HEADER *hdr,const void *data){ ssize_t nsent = 0; if (data == NULL) { nsent = DpsSend(fd, hdr, sizeof(*hdr), 0); } else { char *ldata = (char*)DpsMalloc(sizeof(*hdr) + hdr->len); if (ldata != NULL) { dps_memcpy(ldata, hdr, sizeof(*hdr)); dps_memcpy(ldata + sizeof(*hdr), data, hdr->len); nsent = DpsSend(fd, ldata, sizeof(*hdr) + hdr->len, 0); } DPS_FREE(ldata); } return nsent; }
int socket_write(DPS_CONN *connp, const char *buf){ if (socket_select(connp, DPS_NET_READ_TIMEOUT, 'w') == -1) return -1; if (DpsSend(connp->conn_fd, buf, dps_strlen(buf), 0) == -1){ connp->err = DPS_NET_ERROR; return -1; } return 0; }