From 6bb9ab48d6be8f401ee7c11852fc3990864de9b7 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Thu, 27 Jun 2013 23:25:29 -0700 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 ++- patches/refresh-temp | 100 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index 7e94086..180ff17 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: 4553544b581f4095734c8f1bf0d53fd908fdfc18 -Head: 4346db471bb2cccdb4fb2bc328ea8272f2e0e376 +Previous: ac935341b303c5fdb1075a60df7bab521d56f4a4 +Head: 8362303c82cb2d32d45494bd88b7c8a6e0fdf82d Applied: rmcfg: 84d811fcdc9f212f243f82594d613b68aea367c4 acm_notes-txt-change-dos-forma: d76f683c246786876219d6db213643600734d894 @@ -11,6 +11,7 @@ Applied: add-description-of-preloading-: 5765f7d237b191c036c032e0c4beb00123f68baf increase-buffer-space-for-inet: 70596420225d4a1a4fac908e56eb9578e18a8994 ib_acme-c-support-ipv6-address: 4346db471bb2cccdb4fb2bc328ea8272f2e0e376 + refresh-temp: 8362303c82cb2d32d45494bd88b7c8a6e0fdf82d Unapplied: convert-linux-header-files-fro: aed0b8ab0d23ffa04905fcc3750fa7936cd1bf05 add-support-for-preloading-ipv: a8e1f8072435c8beae5fe6cdc91c993b7134b4bd diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 0000000..0411312 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,100 @@ +Bottom: 3a44416e854820cec923e458ae406c5a49a36e74 +Top: ccf28eb1b615b3a30bdf8689c0ae21f257bf169b +Author: Sean Hefty +Date: 2013-06-27 23:25:29 -0700 + +Refresh of ib_acme-c-support-ipv6-address + +--- + +diff --git a/src/acme.c b/src/acme.c +index 9e30dc7..98b7153 100644 +--- a/src/acme.c ++++ b/src/acme.c +@@ -476,57 +476,55 @@ static uint32_t get_resolve_flags() + return flags; + } + ++static int inet_any_pton(char *addr, struct sockaddr *sa) ++{ ++ struct sockaddr_in *sin; ++ struct sockaddr_in6 *sin6; ++ int ret; ++ ++ sin = (struct sockaddr_in *) sa; ++ sa->sa_family = AF_INET; ++ ret = inet_pton(AF_INET, addr, &sin->sin_addr); ++ if (ret <= 0) { ++ sin6 = (struct sockaddr_in6 *) sa; ++ sa->sa_family = AF_INET6; ++ ret = inet_pton(AF_INET6, src_addr, &sin6->sin6_addr); ++ } ++ ++ return ret; ++} ++ + static int resolve_ip(struct ibv_path_record *path) + { + struct ibv_path_data *paths; +- struct sockaddr_in src, dest; +- struct sockaddr_in6 src6, dest6; ++ struct sockaddr_storage src, dest; + struct sockaddr *saddr; + int ret, count; +- int is_ipv6_src, is_ipv6_dest; + + if (src_addr) { +- is_ipv6_src = 0; +- src.sin_family = AF_INET; +- ret = inet_pton(AF_INET, src_addr, &src.sin_addr); ++ saddr = (struct sockaddr *) &src; ++ ret = inet_any_pton(src_addr, saddr); + if (ret <= 0) { +- src6.sin6_family = AF_INET6; +- ret = inet_pton(AF_INET6, src_addr, &src6.sin6_addr); +- if (ret <= 0) { +- printf("inet_pton error on source address (%s): 0x%x\n", src_addr, ret); +- return -1; +- } +- is_ipv6_src = 1; ++ printf("inet_pton error on source address (%s): 0x%x\n", src_addr, ret); ++ return -1; + } +- if (is_ipv6_src) +- saddr = (struct sockaddr *) &src6; +- else +- saddr = (struct sockaddr *) &src; + } else { + saddr = NULL; + } + +- is_ipv6_dest = 0; +- dest.sin_family = AF_INET; +- ret = inet_pton(AF_INET, dest_addr, &dest.sin_addr); ++ ret = inet_any_pton(dest_addr, (struct sockaddr *) &dest); + if (ret <= 0) { +- dest6.sin6_family = AF_INET6; +- ret = inet_pton(AF_INET6, dest_addr, &dest6.sin6_addr); +- if (ret <= 0) { +- printf("inet_pton error on destination address (%s): 0x%x\n", dest_addr, ret); +- return -1; +- } +- is_ipv6_dest = 1; ++ printf("inet_pton error on destination address (%s): 0x%x\n", dest_addr, ret); ++ return -1; + } + +- if (src_addr && is_ipv6_src != is_ipv6_dest) { ++ if (src_addr && src.ss_family != dest.ss_family) { + printf("source and destination address families don't match\n"); + return -1; + } + +- ret = ib_acm_resolve_ip(saddr, +- (is_ipv6_dest ? (struct sockaddr *) &dest6 : (struct sockaddr *) &dest), +- &paths, &count, get_resolve_flags()); ++ ret = ib_acm_resolve_ip(saddr, (struct sockaddr *) &dest), &paths, ++ &count, get_resolve_flags()); + if (ret) { + printf("ib_acm_resolve_ip failed: %s\n", strerror(errno)); + return ret; -- 2.46.0