[Pvfs2-cvs] commit by atchley in pvfs2/src/io/bmi/bmi_mx: mx.c
CVS commit program
cvs at parl.clemson.edu
Fri Feb 22 16:40:32 EST 2008
Update of /projects/cvsroot/pvfs2/src/io/bmi/bmi_mx
In directory parlweb1:/tmp/cvs-serv8937
Modified Files:
mx.c
Log Message:
Eliminate unneeded strcpy(), fix two small memory leaks, add debug statements
when using bmi_method_addr_[reg|forget]_callback(), fix compiler warnings
when using mx_get_endpoint_addr_context()
Index: mx.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/bmi/bmi_mx/mx.c,v
diff -p -u -r1.16 -r1.17
--- mx.c 22 Feb 2008 14:18:28 -0000 1.16
+++ mx.c 22 Feb 2008 21:40:32 -0000 1.17
@@ -522,7 +522,6 @@ bmx_parse_peername(const char *peername,
free(s);
return -1;
}
- strcpy(host, s);
if (colon1_found) {
bd = (uint32_t) strtol(colon1, NULL, 0);
@@ -1031,6 +1030,9 @@ BMI_mx_finalize(void)
}
#endif
+ if (bmi_mx->bmx_hostname) free(bmi_mx->bmx_hostname);
+ if (bmi_mx->bmx_peername) free(bmi_mx->bmx_peername);
+
bmi_mx = NULL;
gen_mutex_unlock(&tmp->bmx_lock);
@@ -1132,15 +1134,25 @@ BMI_mx_set_info(int option, void *inout_
peer = mxmap->mxm_peer;
if (peer != NULL) {
addr = peer->mxp_bmi_addr;
- if (addr != 0)
+ if (addr != 0) {
+ debug(BMX_DB_PEER, "calling "
+ "bmi_method_addr_forget_callback"
+ "on %s", peer->mxp_mxmap->mxm_peername);
bmi_method_addr_forget_callback(addr);
+ }
}
bmx_peer_disconnect(peer, 1, BMI_ENETRESET);
}
- if (!mxmap->mxm_peername) free((void *) mxmap->mxm_peername);
- mxmap->mxm_peername = NULL;
- if (!mxmap->mxm_hostname) free((void *) mxmap->mxm_hostname);
- mxmap->mxm_hostname = NULL;
+ if (mxmap->mxm_peername) {
+ debug(BMX_DB_MEM, "freeing mxm_peername");
+ free((void *) mxmap->mxm_peername);
+ mxmap->mxm_peername = NULL;
+ }
+ if (mxmap->mxm_hostname) {
+ debug(BMX_DB_MEM, "freeing mxm_hostname");
+ free((void *) mxmap->mxm_hostname);
+ mxmap->mxm_hostname = NULL;
+ }
debug(BMX_DB_PEER, "freeing map 0x%p", map);
free(map);
}
@@ -1896,7 +1908,8 @@ bmx_post_unexpected_recv(mx_endpoint_add
rx = bmx_get_idle_rx();
if (rx != NULL) {
- mx_get_endpoint_addr_context(source, (void **) &peer);
+ void *foo = &peer;
+ mx_get_endpoint_addr_context(source, &foo);
if (peer == NULL) {
debug(BMX_DB_PEER, "unknown peer sent message 0x%llx "
"length %u", llu(match), length);
@@ -1996,7 +2009,10 @@ bmx_unexpected_recv(void *context, mx_en
debug(BMX_DB_ERR, "server receiving CONN_ACK");
exit(1);
}
- mx_get_endpoint_addr_context(source, (void **) &peer);
+ {
+ void *foo = &peer;
+ mx_get_endpoint_addr_context(source, &foo);
+ }
if (peer == NULL) {
debug((BMX_DB_CONN|BMX_DB_PEER), "receiving CONN_ACK but "
"the endpoint context does not have a peer");
@@ -2021,7 +2037,8 @@ bmx_unexpected_recv(void *context, mx_en
break;
case BMX_MSG_UNEXPECTED:
if (!bmi_mx->bmx_is_server) {
- mx_get_endpoint_addr_context(source, (void **) &peer);
+ void *foo = &peer;
+ mx_get_endpoint_addr_context(source, &foo);
debug(BMX_DB_ERR, "client receiving unexpected message "
"from %s with mask 0x%llx length %u",
peer == NULL ? "unknown" : peer->mxp_mxmap->mxm_peername,
@@ -2227,7 +2244,10 @@ bmx_handle_conn_req(void)
bmx_put_idle_rx(rx);
continue;
}
- mx_get_endpoint_addr_context(status.source, (void **) &peer);
+ {
+ void *foo = &peer;
+ mx_get_endpoint_addr_context(status.source, &foo);
+ }
if (peer == NULL) { /* new peer */
int ret = 0;
char *host = NULL;
@@ -2365,6 +2385,8 @@ bmx_handle_icon_ack(void)
mx_isend(bmi_mx->bmx_ep, &tx->mxc_seg, tx->mxc_nseg, peer->mxp_epa,
tx->mxc_match, (void *) tx, &tx->mxc_mxreq);
if (!peer->mxp_exist) {
+ debug(BMX_DB_PEER, "calling bmi_method_addr_reg_callback"
+ "on %s", peer->mxp_mxmap->mxm_peername);
peer->mxp_bmi_addr =
bmi_method_addr_reg_callback(peer->mxp_map);
if (peer->mxp_bmi_addr == 0) {
More information about the Pvfs2-cvs
mailing list