158 lines
4.7 KiB
Diff
158 lines
4.7 KiB
Diff
From b982d2da8f3511f0d21984d70aa18cc6c43338d2 Mon Sep 17 00:00:00 2001
|
|
From: Hiroaki KAWAI <kawai@stratosphere.co.jp>
|
|
Date: Wed, 9 Apr 2014 10:09:16 +0900
|
|
Subject: [PATCH 1/3] python: fix wrongly passing argument to function in
|
|
ObjIterator.next()
|
|
|
|
self.__next__() bound method does not take an extra argument.
|
|
|
|
https://github.com/thom311/libnl/pull/57
|
|
|
|
Signed-off-by: Hiroaki KAWAI <kawai@stratosphere.co.jp>
|
|
Signed-off-by: Thomas Haller <thaller@redhat.com>
|
|
(cherry picked from commit cb319e22f5680b49fad62dc7f0eb35b7d737cb3b)
|
|
---
|
|
python/netlink/core.py | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/python/netlink/core.py b/python/netlink/core.py
|
|
index fbd1c9e..e5864cf 100644
|
|
--- a/python/netlink/core.py
|
|
+++ b/python/netlink/core.py
|
|
@@ -449,7 +449,7 @@ class ObjIterator(object):
|
|
return capi.nl_cache_get_next(self._nl_object)
|
|
|
|
def next(self):
|
|
- return self.__next__(self)
|
|
+ return self.__next__()
|
|
|
|
def __next__(self):
|
|
if self._end:
|
|
--
|
|
1.9.0
|
|
|
|
|
|
From a6aab53a1ab360f50947db1b026286647ff94049 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Haller <thaller@redhat.com>
|
|
Date: Fri, 31 Jan 2014 14:15:13 +0100
|
|
Subject: [PATCH 2/3] route: fix return value of nl_rtgen_request()
|
|
|
|
According to documentation, nl_rtgen_request() returns 0 on success,
|
|
but before it returned the number of bytes sent.
|
|
|
|
Signed-off-by: Thomas Haller <thaller@redhat.com>
|
|
(cherry picked from commit b70174668b9867de573cf51471bc98bfe7fd2bc3)
|
|
---
|
|
lib/route/rtnl.c | 9 +++++++--
|
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/lib/route/rtnl.c b/lib/route/rtnl.c
|
|
index 82397e9..6a55ca1 100644
|
|
--- a/lib/route/rtnl.c
|
|
+++ b/lib/route/rtnl.c
|
|
@@ -34,15 +34,20 @@
|
|
* Fills out a routing netlink request message and sends it out
|
|
* using nl_send_simple().
|
|
*
|
|
- * @return 0 on success or a negative error code.
|
|
+ * @return 0 on success or a negative error code. Due to a bug in
|
|
+ * older versions, this returned the number of bytes sent. So for
|
|
+ * compatibility, treat positive return values as success too.
|
|
*/
|
|
int nl_rtgen_request(struct nl_sock *sk, int type, int family, int flags)
|
|
{
|
|
+ int err;
|
|
struct rtgenmsg gmsg = {
|
|
.rtgen_family = family,
|
|
};
|
|
|
|
- return nl_send_simple(sk, type, flags, &gmsg, sizeof(gmsg));
|
|
+ err = nl_send_simple(sk, type, flags, &gmsg, sizeof(gmsg));
|
|
+
|
|
+ return err >= 0 ? 0 : err;
|
|
}
|
|
|
|
/** @} */
|
|
--
|
|
1.9.0
|
|
|
|
|
|
From 0e0e12bfc306b7f4ca945af6c8c31f1dc5549191 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Haller <thaller@redhat.com>
|
|
Date: Wed, 19 Feb 2014 19:22:13 +0100
|
|
Subject: [PATCH 3/3] utils: fix nl_msec2str() which always returned '0msec'
|
|
for whole second durations
|
|
|
|
If the duration was without subsecond part, the function always returned
|
|
'0msec', instead of giving the time in days, hours, minutes or seconds.
|
|
|
|
Regression introduced by commit b3fb89f445108677d405c62865b25aeea209d10a.
|
|
|
|
Signed-off-by: Thomas Haller <thaller@redhat.com>
|
|
Acked-by: Thomas Graf <tgraf@suug.ch>
|
|
(cherry picked from commit 3fb0aae0bc37eafe868d28f0f12ee8803d7ad266)
|
|
---
|
|
lib/utils.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/lib/utils.c b/lib/utils.c
|
|
index 275138d..267368e 100644
|
|
--- a/lib/utils.c
|
|
+++ b/lib/utils.c
|
|
@@ -551,6 +551,11 @@ char * nl_msec2str(uint64_t msec, char *buf, size_t len)
|
|
static const char *units[5] = {"d", "h", "m", "s", "msec"};
|
|
char * const buf_orig = buf;
|
|
|
|
+ if (msec == 0) {
|
|
+ snprintf(buf, len, "0msec");
|
|
+ return buf_orig;
|
|
+ }
|
|
+
|
|
#define _SPLIT(idx, unit) if ((split[idx] = msec / unit)) msec %= unit
|
|
_SPLIT(0, 86400000); /* days */
|
|
_SPLIT(1, 3600000); /* hours */
|
|
@@ -559,11 +564,6 @@ char * nl_msec2str(uint64_t msec, char *buf, size_t len)
|
|
#undef _SPLIT
|
|
split[4] = msec;
|
|
|
|
- if (msec == 0) {
|
|
- snprintf(buf, len, "0msec");
|
|
- return buf_orig;
|
|
- }
|
|
-
|
|
for (i = 0; i < ARRAY_SIZE(split) && len; i++) {
|
|
int l;
|
|
if (split[i] == 0)
|
|
--
|
|
1.9.0
|
|
|
|
From a0688f9a6ef3f37cb6908251826d352a8f50d8e5 Mon Sep 17 00:00:00 2001
|
|
From: Cong Wang <xiyou.wangcong@gmail.com>
|
|
Date: Sun, 23 Mar 2014 12:02:10 -0700
|
|
Subject: [PATCH 1/1] act: fix a pointer in rtnl_act_msg_parse()
|
|
|
|
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
|
|
Acked-by: Thomas Graf <tgraf@suug.ch>
|
|
Signed-off-by: Thomas Haller <thaller@redhat.com>
|
|
(cherry picked from commit b8d90d9bb19b5d9e4e5f71c4f6bb0eaadd78d7a0)
|
|
---
|
|
lib/route/act.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/route/act.c b/lib/route/act.c
|
|
index 2bb222b..d3391ec 100644
|
|
--- a/lib/route/act.c
|
|
+++ b/lib/route/act.c
|
|
@@ -452,7 +452,7 @@ err_free:
|
|
|
|
static int rtnl_act_msg_parse(struct nlmsghdr *n, struct rtnl_act **act)
|
|
{
|
|
- struct rtnl_tc *tc = TC_CAST(act);
|
|
+ struct rtnl_tc *tc = TC_CAST(*act);
|
|
struct nl_cache *link_cache;
|
|
struct nlattr *tb[TCAA_MAX + 1];
|
|
struct tcamsg *tm;
|
|
--
|
|
1.9.0
|
|
|