---
gdhcp/common.c | 2 +-
gdhcp/server.c | 2 +-
plugins/loopback.c | 4 ++--
src/config.c | 2 +-
src/dnsproxy.c | 4 ++--
src/inet.c | 37 ++++++++++++++++++++++++-------------
src/iptables.c | 13 +++++++------
src/ntp.c | 2 +-
src/rtnl.c | 17 +++++++++++++++++
src/stats.c | 12 ++++++------
tools/iptables-test.c | 13 +++++++------
tools/stats-tool.c | 12 ++++++------
12 files changed, 75 insertions(+), 45 deletions(-)
diff --git a/gdhcp/common.c b/gdhcp/common.c
index ae062f3..aaf73b8 100644
--- a/gdhcp/common.c
+++ b/gdhcp/common.c
@@ -474,7 +474,7 @@ int dhcpv6_send_packet(int index, struct dhcpv6_packet
*dhcp_pkt, int len)
cmsg->cmsg_type = IPV6_PKTINFO;
cmsg->cmsg_len = CMSG_LEN(sizeof(*pktinfo));
- pktinfo = (struct in6_pktinfo *)CMSG_DATA(cmsg);
+ pktinfo = (struct in6_pktinfo *)(void *)CMSG_DATA(cmsg);
memset(pktinfo, 0, sizeof(*pktinfo));
pktinfo->ipi6_ifindex = index;
m.msg_controllen = cmsg->cmsg_len;
diff --git a/gdhcp/server.c b/gdhcp/server.c
index 6dec651..cdddb64 100644
--- a/gdhcp/server.c
+++ b/gdhcp/server.c
@@ -338,7 +338,7 @@ static uint32_t get_interface_address(int index)
goto done;
}
- server_ip = (struct sockaddr_in *) &ifr.ifr_addr;
+ server_ip = (struct sockaddr_in *)(void *) &ifr.ifr_addr;
ret = server_ip->sin_addr.s_addr;
done:
diff --git a/plugins/loopback.c b/plugins/loopback.c
index a111eee..70aaac1 100644
--- a/plugins/loopback.c
+++ b/plugins/loopback.c
@@ -104,7 +104,7 @@ static gboolean valid_loopback(int sk, struct ifreq *ifr)
return err != -EADDRNOTAVAIL ? TRUE : FALSE;
}
- addr = (struct sockaddr_in *) &ifr->ifr_addr;
+ addr = (struct sockaddr_in *)(void *)&ifr->ifr_addr;
if (addr->sin_addr.s_addr != loopback_address) {
connman_warn("Invalid loopback address %s",
inet_ntop(AF_INET, &addr->sin_addr, buf, sizeof(buf)));
@@ -118,7 +118,7 @@ static gboolean valid_loopback(int sk, struct ifreq *ifr)
return TRUE;
}
- addr = (struct sockaddr_in *) &ifr->ifr_netmask;
+ addr = (struct sockaddr_in *)(void *)&ifr->ifr_netmask;
if (addr->sin_addr.s_addr != loopback_netmask) {
connman_warn("Invalid loopback netmask %s",
inet_ntop(AF_INET, &addr->sin_addr, buf, sizeof(buf)));
diff --git a/src/config.c b/src/config.c
index 4686914..8a6ade9 100644
--- a/src/config.c
+++ b/src/config.c
@@ -597,7 +597,7 @@ static gboolean inotify_data(GIOChannel *channel,
GIOCondition cond,
gchar *ident;
gsize len;
- event = (struct inotify_event *) next_event;
+ event = (struct inotify_event *)(void *)next_event;
if (event->len)
ident = next_event + sizeof(struct inotify_event);
else
diff --git a/src/dnsproxy.c b/src/dnsproxy.c
index 2a2e52c..9c22456 100644
--- a/src/dnsproxy.c
+++ b/src/dnsproxy.c
@@ -327,7 +327,7 @@ static int dns_name_length(unsigned char *buf)
static void update_cached_ttl(unsigned char *buf, int len, int new_ttl)
{
- unsigned char *c;
+ void *c;
uint32_t *i;
uint16_t *w;
int l;
@@ -1221,7 +1221,7 @@ static void cache_refresh(void)
static int reply_query_type(unsigned char *msg, int len)
{
- unsigned char *c;
+ void *c;
uint16_t *w;
int l;
int type;
diff --git a/src/inet.c b/src/inet.c
index be69aca..d327600 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -49,9 +49,18 @@
#include "connman.h"
#define NLMSG_TAIL(nmsg) \
- ((struct rtattr *) (((uint8_t*) (nmsg)) + \
+ ((struct rtattr *)(void *)(((uint8_t*) (nmsg)) +\
NLMSG_ALIGN((nmsg)->nlmsg_len)))
+#undef RTA_NEXT
+#define RTA_NEXT(rta,attrlen) \
+ ((attrlen) -= RTA_ALIGN((rta)->rta_len), \
+ (struct rtattr*)(((void*)(rta)) + RTA_ALIGN((rta)->rta_len)))
+
+#undef RTM_RTA
+#define RTM_RTA(r) \
+ ((struct rtattr*)(((void*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
+
int __connman_inet_rtnl_addattr_l(struct nlmsghdr *n, size_t max_length,
int type, const void *data, size_t data_length)
{
@@ -103,7 +112,7 @@ int __connman_inet_modify_address(int cmd, int flags,
memset(&request, 0, sizeof(request));
- header = (struct nlmsghdr *)request;
+ header = (struct nlmsghdr *)(void *)request;
header->nlmsg_len = NLMSG_LENGTH(sizeof(struct ifaddrmsg));
header->nlmsg_type = cmd;
header->nlmsg_flags = NLM_F_REQUEST | flags;
@@ -334,7 +343,7 @@ int connman_inet_ifdown(int index)
memset(&addr_ifr, 0, sizeof(addr_ifr));
memcpy(&addr_ifr.ifr_name, &ifr.ifr_name, sizeof(ifr.ifr_name));
- addr = (struct sockaddr_in *)&addr_ifr.ifr_addr;
+ addr = (struct sockaddr_in *)(void *)&addr_ifr.ifr_addr;
addr->sin_family = AF_INET;
if (ioctl(sk, SIOCSIFADDR, &addr_ifr) < 0)
connman_warn("Could not clear IPv4 address index %d", index);
@@ -1269,7 +1278,7 @@ connman_bool_t connman_inet_compare_subnet(int index,
const char *host)
return FALSE;
}
- netmask = (struct sockaddr_in *)&ifr.ifr_netmask;
+ netmask = (struct sockaddr_in *)(void *)&ifr.ifr_netmask;
netmask_addr = netmask->sin_addr.s_addr;
if (ioctl(sk, SIOCGIFADDR, &ifr) < 0) {
@@ -1279,7 +1288,7 @@ connman_bool_t connman_inet_compare_subnet(int index,
const char *host)
close(sk);
- addr = (struct sockaddr_in *)&ifr.ifr_addr;
+ addr = (struct sockaddr_in *)(void *)&ifr.ifr_addr;
if_addr = addr->sin_addr.s_addr;
return ((if_addr & netmask_addr) == (host_addr & netmask_addr));
@@ -1527,7 +1536,7 @@ static int icmpv6_recv(int fd, gpointer user_data)
return -errno;
}
- hdr = (struct nd_router_advert *)buf;
+ hdr = (struct nd_router_advert *)(void *)buf;
DBG("code %d len %zd hdr %zd", hdr->nd_ra_code, len,
sizeof(struct nd_router_advert));
if (hdr->nd_ra_code != 0)
@@ -1653,8 +1662,8 @@ static int ndisc_send_unspec(int type, int oif, const
struct in6_addr *dest)
msgh.msg_flags = 0;
memset(cbuf, 0, CMSG_SPACE(sizeof(*pinfo)));
- cmsg = (struct cmsghdr *)cbuf;
- pinfo = (struct in6_pktinfo *)CMSG_DATA(cmsg);
+ cmsg = (struct cmsghdr *)(void *)cbuf;
+ pinfo = (struct in6_pktinfo *)(void *)CMSG_DATA(cmsg);
pinfo->ipi6_ifindex = oif;
cmsg->cmsg_len = CMSG_LEN(sizeof(*pinfo));
@@ -1785,7 +1794,7 @@ GSList *__connman_inet_ipv6_get_prefixes(struct
nd_router_advert *hdr,
switch (pos[0]) {
case ND_OPT_PREFIX_INFORMATION:
- pinfo = (struct nd_opt_prefix_info *)pos;
+ pinfo = (struct nd_opt_prefix_info *)(void *)pos;
prefix = inet_ntop(AF_INET6, &pinfo->nd_opt_pi_prefix,
prefix_str, INET6_ADDRSTRLEN);
if (prefix == NULL)
@@ -1851,10 +1860,12 @@ static int get_dest_addr(int family, int index, char
*buf, int len)
switch (family) {
case AF_INET:
- addr = &((struct sockaddr_in *)&ifr.ifr_dstaddr)->sin_addr;
+ addr = &((struct sockaddr_in *)(void *)
+ &ifr.ifr_dstaddr)->sin_addr;
break;
case AF_INET6:
- addr = &((struct sockaddr_in6 *)&ifr.ifr_dstaddr)->sin6_addr;
+ addr = &((struct sockaddr_in6 *)(void *)
+ &ifr.ifr_dstaddr)->sin6_addr;
break;
default:
errno = EINVAL;
@@ -2439,13 +2450,13 @@ char **__connman_inet_get_running_interfaces(void)
*/
switch (r->ifr_addr.sa_family) {
case AF_INET:
- addr4 = ntohl(((struct sockaddr_in *)
+ addr4 = ntohl(((struct sockaddr_in *)(void *)
&r->ifr_addr)->sin_addr.s_addr);
if (((addr4 & 0xff000000) >> 24) == 127)
continue;
break;
case AF_INET6:
- addr6 = &((struct sockaddr_in6 *)
+ addr6 = &((struct sockaddr_in6 *)(void *)
&r->ifr_addr)->sin6_addr;
if (IN6_IS_ADDR_LINKLOCAL(addr6))
continue;
diff --git a/src/iptables.c b/src/iptables.c
index ccd54ac..43a2782 100644
--- a/src/iptables.c
+++ b/src/iptables.c
@@ -117,7 +117,7 @@ static GHashTable *table_hash = NULL;
static struct ipt_entry *get_entry(struct connman_iptables *table,
unsigned int offset)
{
- return (struct ipt_entry *)((char *)table->blob_entries->entrytable +
+ return (struct ipt_entry *)((void *)table->blob_entries->entrytable +
offset);
}
@@ -465,7 +465,7 @@ static int iptables_add_chain(struct connman_iptables
*table,
entry_head->target_offset = sizeof(struct ipt_entry);
entry_head->next_offset = entry_head_size;
- error = (struct error_target *) entry_head->elems;
+ error = (struct error_target *)(void *)entry_head->elems;
strcpy(error->t.u.user.name, IPT_ERROR_TARGET);
error->t.u.user.target_size = ALIGN(sizeof(struct error_target));
strcpy(error->error, name);
@@ -485,7 +485,7 @@ static int iptables_add_chain(struct connman_iptables
*table,
entry_return->target_offset = sizeof(struct ipt_entry);
entry_return->next_offset = entry_return_size;
- standard = (struct ipt_standard_target *) entry_return->elems;
+ standard = (struct ipt_standard_target *)(void *)entry_return->elems;
standard->target.u.user.target_size =
ALIGN(sizeof(struct ipt_standard_target));
standard->verdict = XT_RETURN;
@@ -796,7 +796,7 @@ static GList *find_existing_rule(struct connman_iptables
*table,
if (xt_t != NULL)
xt_e_t = ipt_get_target(entry_test);
if (xt_m != NULL)
- xt_e_m = (struct xt_entry_match *)entry_test->elems;
+ xt_e_m = (struct xt_entry_match *)(void *)entry_test->elems;
entry = chain_head->data;
builtin = entry->builtin;
@@ -828,7 +828,8 @@ static GList *find_existing_rule(struct connman_iptables
*table,
if (xt_m != NULL) {
struct xt_entry_match *tmp_xt_e_m;
- tmp_xt_e_m = (struct xt_entry_match *)tmp_e->elems;
+ tmp_xt_e_m = (struct xt_entry_match *)(void *)
+ tmp_e->elems;
if (!is_same_match(tmp_xt_e_m, xt_e_m))
continue;
@@ -1089,7 +1090,7 @@ static void dump_match(struct connman_iptables *table,
struct ipt_entry *entry)
if (entry->elems == (unsigned char *)entry + entry->target_offset)
return;
- match = (struct xt_entry_match *) entry->elems;
+ match = (struct xt_entry_match *)(void *)entry->elems;
if (!strlen(match->u.user.name))
return;
diff --git a/src/ntp.c b/src/ntp.c
index b588c99..3bfc618 100644
--- a/src/ntp.c
+++ b/src/ntp.c
@@ -374,7 +374,7 @@ static gboolean received_data(GIOChannel *channel,
GIOCondition condition,
switch (cmsg->cmsg_type) {
case SCM_TIMESTAMP:
- tv = (struct timeval *) CMSG_DATA(cmsg);
+ tv = (struct timeval *)(void *)CMSG_DATA(cmsg);
break;
}
}
diff --git a/src/rtnl.c b/src/rtnl.c
index 5f3fe15..10a7dac 100644
--- a/src/rtnl.c
+++ b/src/rtnl.c
@@ -42,6 +42,23 @@
#include "connman.h"
+#undef RTA_NEXT
+#define RTA_NEXT(rta,attrlen) \
+ ((attrlen) -= RTA_ALIGN((rta)->rta_len), \
+ (struct rtattr*)(((void*)(rta)) + RTA_ALIGN((rta)->rta_len)))
+
+#undef RTM_RTA
+#define RTM_RTA(r) \
+ ((struct rtattr*)(((void*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
+
+#undef IFLA_RTA
+#define IFLA_RTA(r) ((struct rtattr*) \
+ (((void*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
+
+#undef IFA_RTA
+#define IFA_RTA(r) ((struct rtattr*) \
+ (((void*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
+
#ifndef ARPHDR_PHONET_PIPE
#define ARPHDR_PHONET_PIPE (821)
#endif
diff --git a/src/stats.c b/src/stats.c
index 828c1ef..dde5fca 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -129,21 +129,21 @@ GHashTable *stats_hash = NULL;
static struct stats_file_header *get_hdr(struct stats_file *file)
{
- return (struct stats_file_header *)file->addr;
+ return (struct stats_file_header *)(void *)file->addr;
}
static struct stats_record *get_begin(struct stats_file *file)
{
unsigned int off = get_hdr(file)->begin;
- return (struct stats_record *)(file->addr + off);
+ return (struct stats_record *)(void *)(file->addr + off);
}
static struct stats_record *get_end(struct stats_file *file)
{
unsigned int off = get_hdr(file)->end;
- return (struct stats_record *)(file->addr + off);
+ return (struct stats_record *)(void *)(file->addr + off);
}
static struct stats_record *get_home(struct stats_file *file)
@@ -155,7 +155,7 @@ static struct stats_record *get_home(struct stats_file
*file)
if (hdr->home == UINT_MAX)
return NULL;
- return (struct stats_record *)(file->addr + hdr->home);
+ return (struct stats_record *)(void *)(file->addr + hdr->home);
}
static struct stats_record *get_roaming(struct stats_file *file)
@@ -167,7 +167,7 @@ static struct stats_record *get_roaming(struct stats_file
*file)
if (hdr->roaming == UINT_MAX)
return NULL;
- return (struct stats_record *)(file->addr + hdr->roaming);
+ return (struct stats_record *)(void *)(file->addr + hdr->roaming);
}
static void set_end(struct stats_file *file, struct stats_record *end)
@@ -245,7 +245,7 @@ static void stats_free(gpointer user_data)
static void update_first(struct stats_file *file)
{
- file->first = (struct stats_record *)
+ file->first = (struct stats_record *)(void *)
(file->addr + sizeof(struct stats_file_header));
}
diff --git a/tools/iptables-test.c b/tools/iptables-test.c
index cc227e8..2985788 100644
--- a/tools/iptables-test.c
+++ b/tools/iptables-test.c
@@ -112,7 +112,7 @@ struct connman_iptables {
static struct ipt_entry *get_entry(struct connman_iptables *table,
unsigned int offset)
{
- return (struct ipt_entry *)((char *)table->blob_entries->entrytable +
+ return (struct ipt_entry *)((void *)table->blob_entries->entrytable +
offset);
}
@@ -493,7 +493,7 @@ static int connman_iptables_add_chain(struct
connman_iptables *table,
entry_head->target_offset = sizeof(struct ipt_entry);
entry_head->next_offset = entry_head_size;
- error = (struct error_target *) entry_head->elems;
+ error = (struct error_target *)(void *)entry_head->elems;
strcpy(error->t.u.user.name, IPT_ERROR_TARGET);
error->t.u.user.target_size = ALIGN(sizeof(struct error_target));
strcpy(error->error, name);
@@ -513,7 +513,7 @@ static int connman_iptables_add_chain(struct
connman_iptables *table,
entry_return->target_offset = sizeof(struct ipt_entry);
entry_return->next_offset = entry_return_size;
- standard = (struct ipt_standard_target *) entry_return->elems;
+ standard = (struct ipt_standard_target *)(void *)entry_return->elems;
standard->target.u.user.target_size =
ALIGN(sizeof(struct ipt_standard_target));
standard->verdict = XT_RETURN;
@@ -789,7 +789,7 @@ static GList *find_existing_rule(struct connman_iptables
*table,
if (xt_t != NULL)
xt_e_t = ipt_get_target(entry_test);
if (xt_m != NULL)
- xt_e_m = (struct xt_entry_match *)entry_test->elems;
+ xt_e_m = (struct xt_entry_match *)(void *)entry_test->elems;
entry = chain_head->data;
builtin = entry->builtin;
@@ -821,7 +821,8 @@ static GList *find_existing_rule(struct connman_iptables
*table,
if (xt_m != NULL) {
struct xt_entry_match *tmp_xt_e_m;
- tmp_xt_e_m = (struct xt_entry_match *)tmp_e->elems;
+ tmp_xt_e_m = (struct xt_entry_match *)
+ (void *)tmp_e->elems;
if (!is_same_match(tmp_xt_e_m, xt_e_m))
continue;
@@ -1061,7 +1062,7 @@ static void dump_match(struct connman_iptables *table,
struct ipt_entry *entry)
if (entry->elems == (unsigned char *)entry + entry->target_offset)
return;
- match = (struct xt_entry_match *) entry->elems;
+ match = (struct xt_entry_match *)(void *)entry->elems;
if (!strlen(match->u.user.name))
return;
diff --git a/tools/stats-tool.c b/tools/stats-tool.c
index 0f06d8e..13e9e98 100644
--- a/tools/stats-tool.c
+++ b/tools/stats-tool.c
@@ -139,21 +139,21 @@ static GOptionEntry options[] = {
static struct stats_file_header *get_hdr(struct stats_file *file)
{
- return (struct stats_file_header *)file->addr;
+ return (struct stats_file_header *)(void *)file->addr;
}
static struct stats_record *get_begin(struct stats_file *file)
{
unsigned int off = get_hdr(file)->begin;
- return (struct stats_record *)(file->addr + off);
+ return (struct stats_record *)(void *)(file->addr + off);
}
static struct stats_record *get_end(struct stats_file *file)
{
unsigned int off = get_hdr(file)->end;
- return (struct stats_record *)(file->addr + off);
+ return (struct stats_record *)(void *)(file->addr + off);
}
static struct stats_record *get_home(struct stats_file *file)
@@ -165,7 +165,7 @@ static struct stats_record *get_home(struct stats_file
*file)
if (hdr->home == UINT_MAX)
return NULL;
- return (struct stats_record *)(file->addr + hdr->home);
+ return (struct stats_record *)(void *)(file->addr + hdr->home);
}
static struct stats_record *get_roaming(struct stats_file *file)
@@ -177,7 +177,7 @@ static struct stats_record *get_roaming(struct stats_file
*file)
if (hdr->roaming == UINT_MAX)
return NULL;
- return (struct stats_record *)(file->addr + hdr->roaming);
+ return (struct stats_record *)(void *)(file->addr + hdr->roaming);
}
static void set_end(struct stats_file *file, struct stats_record *end)
@@ -379,7 +379,7 @@ static void update_nr_entries(struct stats_file *file)
static void update_first(struct stats_file *file)
{
- file->first = (struct stats_record *)(file->addr +
+ file->first = (struct stats_record *)(void *)(file->addr +
sizeof(struct stats_file_header));
}
--
1.7.11.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman