libnl-tiny: Fix for c++ compatibility
authorFelix Fietkau <nbd@openwrt.org>
Wed, 26 Jan 2011 11:33:38 +0000 (11:33 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 26 Jan 2011 11:33:38 +0000 (11:33 +0000)
g++ compiler issued some errors like "invalid conversion from void* to *struct nl_attr"
when compiling cpp file which calls libnl-tiny functions. (it's OK with gcc)
Also see https://dev.openwrt.org/ticket/7854

Patch from: kentarou matsuyama <matsuyama@thinktube.com>

SVN-Revision: 25101

package/libnl-tiny/Makefile
package/libnl-tiny/src/include/netlink/attr.h
package/libnl-tiny/src/include/netlink/handlers.h
package/libnl-tiny/src/include/netlink/msg.h

index 4b02ef16be0f1cde83019b3b7187e2b20b6936b1..f96424928362031f1ff246e8115e46df31553657 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libnl-tiny
 PKG_VERSION:=0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 include $(INCLUDE_DIR)/package.mk
 
index 7076d67e22330924d0462db6df9e8382c4441808..3b56a82dc66e21376a6466f16ca37ff57569d969 100644 (file)
@@ -508,7 +508,7 @@ static inline int nla_nest_end(struct nl_msg *msg, struct nlattr *start)
 static inline int nla_parse_nested(struct nlattr *tb[], int maxtype, struct nlattr *nla,
                     struct nla_policy *policy)
 {
-       return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy);
+       return nla_parse(tb, maxtype, (struct nlattr *)nla_data(nla), nla_len(nla), policy);
 }
 
 /**
@@ -563,8 +563,8 @@ static inline int nla_strcmp(const struct nlattr *nla, const char *str)
  */
 static inline size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize)
 {
-       size_t srclen = nla_len(nla);
-       char *src = nla_data(nla);
+       size_t srclen = (size_t)nla_len(nla);
+       char *src = (char*)nla_data(nla);
 
        if (srclen > 0 && src[srclen - 1] == '\0')
                srclen--;
@@ -713,7 +713,7 @@ static inline size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dst
  * @arg rem    initialized to len, holds bytes currently remaining in stream
  */
 #define nla_for_each_nested(pos, nla, rem) \
-       for (pos = nla_data(nla), rem = nla_len(nla); \
+       for (pos = (struct nlattr *)nla_data(nla), rem = nla_len(nla); \
             nla_ok(pos, rem); \
             pos = nla_next(pos, &(rem)))
 
index 5c62368a858ad6bd76aecb823d5169d5ddf9f650..7fb53b4eeefe5dba27002c644c9029b75a9749a6 100644 (file)
@@ -172,7 +172,7 @@ static inline int nl_cb_set_all(struct nl_cb *cb, enum nl_cb_kind kind,
        int i, err;
 
        for (i = 0; i <= NL_CB_TYPE_MAX; i++) {
-               err = nl_cb_set(cb, i, kind, func, arg);
+               err = nl_cb_set(cb,(enum nl_cb_type)i, kind, func, arg);
                if (err < 0)
                        return err;
        }
index aedcb082968db37792377720c585ddcc209e66af..b3e2b0b2b9906ec5740ac7d1ec4588b8c833bb54 100644 (file)
@@ -144,7 +144,7 @@ static inline int nlmsg_len(const struct nlmsghdr *nlh)
  */
 static inline struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh, int hdrlen)
 {
-       unsigned char *data = nlmsg_data(nlh);
+       unsigned char *data = (unsigned char*)nlmsg_data(nlh);
        return (struct nlattr *) (data + NLMSG_ALIGN(hdrlen));
 }
 
@@ -160,7 +160,7 @@ static inline int nlmsg_attrlen(const struct nlmsghdr *nlh, int hdrlen)
 
 static inline int nlmsg_valid_hdr(const struct nlmsghdr *nlh, int hdrlen)
 {
-       if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
+       if (nlh->nlmsg_len < (uint)nlmsg_msg_size(hdrlen))
                return 0;
 
        return 1;
@@ -263,7 +263,7 @@ static inline int nlmsg_expand(struct nl_msg *n, size_t newlen)
        if (tmp == NULL)
                return -NLE_NOMEM;
 
-       n->nm_nlh = tmp;
+       n->nm_nlh = (struct nlmsghdr*)tmp;
        n->nm_size = newlen;
 
        return 0;