[Cluster-devel] cluster/ccs/daemon cnx_mgr.c
cfeist at sourceware.org
cfeist at sourceware.org
Tue Feb 5 22:16:51 UTC 2008
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL46
Changes by: cfeist at sourceware.org 2008-02-05 22:16:51
Modified files:
ccs/daemon : cnx_mgr.c
Log message:
Pulled from RHEL4 branch.
BZ 418961
Fix issue with endian conversion that caused problems for mixed architecture
nodes on same subnet. Need to correct swap byte ordering of comm_header_t
structure before copying into buffer and when dereferencing.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/ccs/daemon/cnx_mgr.c.diff?cvsroot=cluster&only_with_tag=RHEL46&r1=1.24.2.15&r2=1.24.2.15.4.1
--- cluster/ccs/daemon/cnx_mgr.c 2007/03/19 20:03:15 1.24.2.15
+++ cluster/ccs/daemon/cnx_mgr.c 2008/02/05 22:16:50 1.24.2.15.4.1
@@ -1363,18 +1363,19 @@
ch->comm_flags |= COMM_BROADCAST_FROM_QUORATE;
}
+ swab_header(ch);
memcpy(buffer, ch, sizeof(comm_header_t));
+ swab_header(ch); /* Swab back to dip into ch for payload_size */
memcpy(buffer+sizeof(comm_header_t), payload, ch->comm_payload_size);
log_dbg("Sending cluster.conf (version %d)...\n", get_doc_version(master_doc->od_doc));
sendlen = ch->comm_payload_size + sizeof(comm_header_t);
- swab_header(ch);
if(sendto(sfd, buffer, sendlen, 0,
(struct sockaddr *)&addr, (socklen_t)len) < 0){
log_sys_err("Sendto failed");
error = -errno;
}
-
+
fail:
if(buffer) free(buffer);
if(payload) free(payload);
More information about the Cluster-devel
mailing list