--- /dev/null
+Bottom: a286739cf5a9cb2c62140f9cb9ea5cea10a48b56
+Top: b8b00f29ed93af183367d1e6b73324002c8fe6e8
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-08-29 15:17:39 -0700
+
+Refresh of addrtype
+
+---
+
+diff --git a/examples/cmatose.c b/examples/cmatose.c
+index 94fc4cd..1ff87d6 100644
+--- a/examples/cmatose.c
++++ b/examples/cmatose.c
+@@ -81,6 +81,7 @@ static uint8_t tos;
+ static uint8_t migrate = 0;
+ static char *dst_addr;
+ static char *src_addr;
++static struct rdma_addrinfo hints;
+
+ static int create_message(struct cmatest_node *node)
+ {
+@@ -501,7 +502,6 @@ static int migrate_channel(struct rdma_cm_id *listen_id)
+ static int run_server(void)
+ {
+ struct rdma_cm_id *listen_id;
+- struct rdma_addrinfo hints;
+ int i, ret;
+
+ printf("cmatose: starting server\n");
+@@ -511,9 +511,6 @@ static int run_server(void)
+ return ret;
+ }
+
+- memset(&hints, 0, sizeof hints);
+- hints.ai_flags = RAI_PASSIVE;
+- hints.ai_port_space = RDMA_PS_TCP;
+ ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai);
+ if (ret) {
+ perror("cmatose: getrdmaaddr error");
+@@ -583,13 +580,10 @@ out:
+
+ static int run_client(void)
+ {
+- struct rdma_addrinfo hints;
+ int i, ret, ret2;
+
+ printf("cmatose: starting client\n");
+
+- memset(&hints, 0, sizeof hints);
+- hints.ai_port_space = RDMA_PS_TCP;
+ ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai);
+ if (ret) {
+ perror("cmatose: getaddrinfo error");
+@@ -654,6 +648,16 @@ int main(int argc, char **argv)
+ case 'b':
+ src_addr = optarg;
+ break;
++ case 'f':
++ if (!strncasecmp("ip", optarg, 2)) {
++ hints.ai_flags = RAI_NUMERICHOST;
++ } else if (!strncasecmp("gid", optarg, 3)) {
++ hints.ai_flags = RAI_NUMERICHOST | RAI_FAMILY;
++ hints.ai_family = AF_IB;
++ } else if (strncasecmp("name", optarg, 4)) {
++ fprintf(stderr, "Warning: unknown address format\n");
++ }
++ break;
+ case 'c':
+ connections = atoi(optarg);
+ break;
+@@ -677,6 +681,8 @@ int main(int argc, char **argv)
+ printf("usage: %s\n", argv[0]);
+ printf("\t[-s server_address]\n");
+ printf("\t[-b bind_address]\n");
++ printf("\t[-f address_format]\n")
++ printf("\t name, ip, ipv6, or gid\n")
+ printf("\t[-c connections]\n");
+ printf("\t[-C message_count]\n");
+ printf("\t[-S message_size]\n");
+@@ -699,10 +705,13 @@ int main(int argc, char **argv)
+ if (alloc_nodes())
+ exit(1);
+
+- if (dst_addr)
++ hints.ai_port_space = RDMA_PS_TCP;
++ if (dst_addr) {
+ ret = run_client();
+- else
++ } else {
++ hints.ai_flags |= RAI_PASSIVE;
+ ret = run_server();
++ }
+
+ printf("test complete\n");
+ destroy_nodes();
+diff --git a/examples/common.c b/examples/common.c
+index 3eeb1e9..eeee046 100644
+--- a/examples/common.c
++++ b/examples/common.c
+@@ -56,7 +56,7 @@ int get_rdma_addr(char *src, char *dst, char *port,
+
+ rai_hints = *hints;
+ if (src) {
+- rai_hints.ai_flags = RAI_PASSIVE;
++ rai_hints.ai_flags |= RAI_PASSIVE;
+ ret = rdma_getaddrinfo(src, NULL, &rai_hints, &res);
+ if (ret)
+ return ret;