]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
Merge branch 'master' into net-next
authorStephen Hemminger <stephen@networkplumber.org>
Wed, 11 Oct 2017 18:07:20 +0000 (11:07 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 11 Oct 2017 18:07:20 +0000 (11:07 -0700)
13 files changed:
configure
include/utils.h
lib/utils.c
misc/ss.c
testsuite/tests/ip/link/new_link.t
testsuite/tests/ip/link/show_dev_wo_vf_rate.t
testsuite/tests/ip/netns/set_nsid.t
testsuite/tests/ip/netns/set_nsid_batch.t
testsuite/tests/ip/route/add_default_route.t
testsuite/tests/ip/tunnel/add_tunnel.t
testsuite/tests/tc/cls-testbed.t
testsuite/tests/tc/dsmark.t
testsuite/tests/tc/pedit.t

index 7be8fb113cc98cb8e006393f1c61be00875e6cb2..f0668ab3f7e9120d09e559aab1517edc248031c2 100755 (executable)
--- a/configure
+++ b/configure
@@ -326,6 +326,27 @@ EOF
     rm -f $TMPDIR/dbtest.c $TMPDIR/dbtest
 }
 
+check_strlcpy()
+{
+    cat >$TMPDIR/strtest.c <<EOF
+#include <string.h>
+int main(int argc, char **argv) {
+       char dst[10];
+       strlcpy(dst, "test", sizeof(dst));
+       return 0;
+}
+EOF
+    $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1
+    if [ $? -eq 0 ]
+    then
+       echo "no"
+    else
+       echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+       echo "yes"
+    fi
+    rm -f $TMPDIR/strtest.c $TMPDIR/strtest
+}
+
 quiet_config()
 {
        cat <<EOF
@@ -397,6 +418,9 @@ check_mnl
 echo -n "Berkeley DB: "
 check_berkeley_db
 
+echo -n "need for strlcpy: "
+check_strlcpy
+
 echo
 echo -n "docs:"
 check_docs
index 76addb3258f59fa939f464ea509b9fb44b919351..3d91c50db05b9f130472adc67c65e0be0f8834b9 100644 (file)
@@ -195,6 +195,8 @@ static inline void __jiffies_to_tv(struct timeval *tv, unsigned long jiffies)
        tv->tv_usec = tvusec - 1000000 * tv->tv_sec;
 }
 
+void print_escape_buf(const __u8 *buf, size_t len, const char *escape);
+
 int print_timestamp(FILE *fp);
 void print_nlmsg_timestamp(FILE *fp, const struct nlmsghdr *n);
 
index 0cf99619c3021a9ebaf44f848d5c94e114ac5835..ac155bf5a0447a60a2075a625c24b89405f2e6b0 100644 (file)
@@ -31,6 +31,7 @@
 #include <time.h>
 #include <sys/time.h>
 #include <errno.h>
+#include <ctype.h>
 
 #include "rt_names.h"
 #include "utils.h"
@@ -1047,6 +1048,20 @@ int addr64_n2a(__u64 addr, char *buff, size_t len)
        return written;
 }
 
+/* Print buffer and escape bytes that are !isprint or among 'escape' */
+void print_escape_buf(const __u8 *buf, size_t len, const char *escape)
+{
+       size_t i;
+
+       for (i = 0; i < len; ++i) {
+               if (isprint(buf[i]) && buf[i] != '\\' &&
+                   !strchr(escape, buf[i]))
+                       printf("%c", buf[i]);
+               else
+                       printf("\\%03o", buf[i]);
+       }
+}
+
 int print_timestamp(FILE *fp)
 {
        struct timeval tv;
@@ -1260,6 +1275,7 @@ int get_real_family(int rtm_type, int rtm_family)
        return rtm_family;
 }
 
+#ifdef NEED_STRLCPY
 size_t strlcpy(char *dst, const char *src, size_t size)
 {
        size_t srclen = strlen(src);
@@ -1282,3 +1298,4 @@ size_t strlcat(char *dst, const char *src, size_t size)
 
        return dlen + strlcpy(dst + dlen, src, size - dlen);
 }
+#endif
index 8b563bd4839139f6fa25126b7250bc508c29732d..ff4ba1166fc3890ed3e1929490839832f193bf78 100644 (file)
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -2230,6 +2230,16 @@ static void print_skmeminfo(struct rtattr *tb[], int attrtype)
        printf(")");
 }
 
+static void print_md5sig(struct tcp_diag_md5sig *sig)
+{
+       printf("%s/%d=",
+              format_host(sig->tcpm_family,
+                          sig->tcpm_family == AF_INET6 ? 16 : 4,
+                          &sig->tcpm_addr),
+              sig->tcpm_prefixlen);
+       print_escape_buf(sig->tcpm_key, sig->tcpm_keylen, " ,");
+}
+
 #define TCPI_HAS_OPT(info, opt) !!(info->tcpi_options & (opt))
 
 static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
@@ -2366,6 +2376,17 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
                free(s.dctcp);
                free(s.bbr_info);
        }
+       if (tb[INET_DIAG_MD5SIG]) {
+               struct tcp_diag_md5sig *sig = RTA_DATA(tb[INET_DIAG_MD5SIG]);
+               int len = RTA_PAYLOAD(tb[INET_DIAG_MD5SIG]);
+
+               printf(" md5keys:");
+               print_md5sig(sig++);
+               for (len -= sizeof(*sig); len > 0; len -= sizeof(*sig)) {
+                       printf(",");
+                       print_md5sig(sig++);
+               }
+       }
 }
 
 static const char *format_host_sa(struct sockaddr_storage *sa)
index 699adbcd9b9c621e19d852f7bd9b5f52399df618..c17650a21eba31c51c122d6ead2e2ba20a6da1f9 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 ts_log "[Testing add/del virtual links]"
 
index a600ba65c5bec2d0843de927324c101c04371d6f..5b3c004ef69764c30f443e5187870d5b7269a339 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 NL_FILE="tests/ip/link/dev_wo_vf_rate.nl"
 ts_ip "$0" "Show VF devices w/o VF rate info" -d monitor file $NL_FILE
index 606d45abc68a41ee27f18f9bf8817fc2b1452d2f..8f8c77924dc9b9e2ad80b3dd0e9d8f39a09232a0 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 ts_log "[Testing netns nsid]"
 
index abb3f1bb9281de668207d9ee50a0fd954f1e3af5..196fd4b33e0ea68bdb062ff59c3bdc27a3988a3c 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 ts_log "[Testing netns nsid in batch mode]"
 
index e5ea647351055bf0af283ca31d3f4eade226426d..0b566f1f552b243de3d13b82d99bf21a989c64dd 100755 (executable)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
 
-source lib/generic.sh
+. lib/generic.sh
 
 ts_log "[Testing add default route]"
 
index 18f6e370bfb046ad287440af4b912c481e06bf09..3f5a9d3c1acfc581dce677a1a3871c2cfcdf6ad0 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 TUNNEL_NAME="tunnel_test_ip"
 
index 2afc26fc992c0b2c225e6deb2a57b293dd77f37f..d5c21e5c420c36ea4357c926e2bd60c8ce2b1ef1 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 # vim: ft=sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 QDISCS="cbq htb dsmark"
 
index 6934165ec24df66a73e631d215e5848d1eb16288..177585e63363e71dba0f982c84e70bf719b79a85 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 # vim: ft=sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 ts_qdisc_available "dsmark"
 if [ $? -eq 0 ]; then
index e9b6c333accbee7f24476e80dfdf6a9a22ffad2c..8d531a054367d934c30d24a62323db327e9e6c47 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-source lib/generic.sh
+. lib/generic.sh
 
 DEV="$(rand_dev)"
 ts_ip "$0" "Add $DEV dummy interface" link add dev $DEV type dummy