]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
build: fix gcc-4.4.0 build failures (FSCORE-355)
authorMichael Jerris <mike@jerris.com>
Tue, 19 May 2009 20:25:59 +0000 (20:25 +0000)
committerMichael Jerris <mike@jerris.com>
Tue, 19 May 2009 20:25:59 +0000 (20:25 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13395 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/libsofia-sip-ua/sresolv/sres.c
libs/udns/udns_resolver.c
src/switch_stun.c
src/switch_utils.c

index 62b654d16984fa2e367605ff6d679528dde1f290..c6f1f19f7697952a20e6304478de6a35acafc3dd 100644 (file)
@@ -3486,15 +3486,17 @@ void sres_log_response(sres_resolver_t const *res,
     if (from == NULL)
       ;
     else if (from->ss_family == AF_INET) {
-      struct sockaddr_in const *sin = (void *)from;
-      su_inet_ntop(AF_INET, &sin->sin_addr, host, sizeof host);
-      port = sin->sin_port;
+      struct sockaddr_in sin;
+      memcpy(&sin, from, sizeof sin);
+      su_inet_ntop(AF_INET, &sin.sin_addr, host, sizeof host);
+      port = sin.sin_port;
     }
 #if HAVE_SIN6
     else if (from->ss_family == AF_INET6) {
-      struct sockaddr_in6 const *sin6 = (void *)from;
-      su_inet_ntop(AF_INET6, &sin6->sin6_addr, host, sizeof host);
-      port = sin6->sin6_port;
+      struct sockaddr_in6 sin6;
+      memcpy(&sin6, from, sizeof sin6);
+      su_inet_ntop(AF_INET6, &sin6.sin6_addr, host, sizeof host);
+      port = sin6.sin6_port;
     }
 #endif
 
index cdd32cf60d4f345d0e29837d35ef20ab6eb2a254..87a4d91951384d4430a42b6a6a6b1ab6582d02f6 100644 (file)
@@ -739,7 +739,7 @@ dns_socket dns_open(struct dns_ctx *ctx) {
       sns = &ctx->dnsc_serv[i];
       if (sns->sa.sa_family == AF_INET) {
         sin6.sin6_port = sns->sin.sin_port;
-        ((struct in_addr*)&sin6.sin6_addr)[3] = sns->sin.sin_addr;
+        memcpy(&sin6.sin6_addr.s6_addr[12], &sns->sin.sin_addr, sizeof(struct in_addr));
         sns->sin6 = sin6;
       }
     }
index c0fd54901a25ccc9c8119af48e1ba660e9c80ec6..70c46781aa506616cc73bca39c0066e3a5717fb8 100644 (file)
@@ -549,7 +549,8 @@ SWITCH_DECLARE(switch_status_t) switch_stun_lookup(char **ip,
                case SWITCH_STUN_ATTR_MAPPED_ADDRESS:
                        if (attr->type) {
                                if (funny) {
-                                       ((switch_stun_ip_t *) attr->value)->address ^= ntohl(0xabcdabcd);
+                                       switch_stun_ip_t *tmp = (switch_stun_ip_t *)attr->value;
+                                       tmp->address ^= ntohl(0xabcdabcd);
                                }
                                switch_stun_packet_attribute_get_mapped_address(attr, rip, &rport);
                        }
index 59b0b66c17efcb8663e6fbde08fb50a60e225580..d3739d05d355617ad986759c4e1f56f6c5ca3f31 100644 (file)
@@ -1151,14 +1151,15 @@ SWITCH_DECLARE(int) switch_build_uri(char *uri,
                                                                         int flags)
 {
        char host[NI_MAXHOST], serv[NI_MAXSERV];
-       struct sockaddr_storage ss;
+       struct sockaddr_in6 si6;
        const struct sockaddr *addr;
        const char *colon;
 
        if (flags & SWITCH_URI_NO_SCOPE && sa->family == AF_INET6) {
-               memcpy(&ss, &sa->sa, sa->salen);
-               ((struct sockaddr_in6*) (intptr_t) &ss)->sin6_scope_id = 0;
-               addr = (const struct sockaddr*) (intptr_t)&ss;
+               memcpy(&si6, &sa->sa, sa->salen);
+               si6.sin6_scope_id = 0;
+
+               addr = (const struct sockaddr*) &si6;
        } else {
                addr = (const struct sockaddr*) (intptr_t)&sa->sa;
        }