Import upstream version 20210202+git20210514.1.2917e0e
Debian Janitor
2 years ago
0 | *~ | |
1 | *.diff | |
2 | *.orig | |
3 | *.patch | |
4 | *.rej | |
5 | core | |
6 | .gdb_history | |
7 | .gdbinit | |
8 | # Meson build | |
9 | /builddir |
0 | 0 | --- |
1 | # Copyright (c) 2019-2020 Petr Vorel <pvorel@suse.cz> | |
1 | # Copyright (c) 2019-2021 Petr Vorel <pvorel@suse.cz> | |
2 | 2 | |
3 | dist: bionic | |
3 | 4 | sudo: required |
4 | 5 | language: c |
5 | 6 | services: |
30 | 31 | |
31 | 32 | # glibc (gcc/clang) |
32 | 33 | - os: linux |
33 | env: DISTRO=opensuse/tumbleweed | |
34 | env: DISTRO=opensuse/tumbleweed CONTAINER=podman | |
34 | 35 | compiler: gcc |
35 | 36 | |
36 | 37 | - os: linux |
46 | 47 | compiler: gcc |
47 | 48 | |
48 | 49 | - os: linux |
49 | env: DISTRO=fedora:latest | |
50 | env: DISTRO=fedora:latest CONTAINER=podman | |
50 | 51 | compiler: clang |
51 | 52 | |
52 | 53 | - os: linux |
66 | 67 | compiler: clang |
67 | 68 | |
68 | 69 | before_install: |
70 | - CONTAINER="${CONTAINER:-docker}" | |
71 | # distros with glibc >=2.33 require podman and newest runc due docker faccessat2 incompatibility | |
72 | - > | |
73 | if [ "$CONTAINER" = "podman" ]; then | |
74 | # podman | |
75 | CONTAINER_ARGS="--runtime=/usr/bin/runc" | |
76 | . /etc/os-release | |
77 | sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" | |
78 | wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | sudo apt-key add - | |
79 | sudo apt update | |
80 | sudo apt -y install podman slirp4netns | |
81 | ||
82 | # runc | |
83 | sudo curl -L https://github.com/opencontainers/runc/releases/download/v1.0.0-rc93/runc.amd64 -o /usr/bin/runc | |
84 | sudo chmod +x /usr/bin/runc | |
85 | fi | |
69 | 86 | - DIR="/usr/src/iputils" |
70 | 87 | - printf "FROM $DISTRO\nRUN mkdir -p $DIR\nWORKDIR $DIR\nCOPY . $DIR\n" > Dockerfile |
71 | 88 | - echo "cat Dockerfile"; cat Dockerfile |
72 | - docker build -t iputils . | |
89 | - $CONTAINER $CONTAINER_ARGS build -t iputils . | |
73 | 90 | |
74 | 91 | script: |
75 | 92 | - INSTALL="${DISTRO%%:*}" |
76 | 93 | - INSTALL="${INSTALL%%/*}" |
77 | 94 | - DISTRO_VERSION="${DISTRO#*:}" |
78 | 95 | - case $VARIANT in cross-compile*) BUILD="cross";; i386) BUILD="32";; *) BUILD="native";; esac |
79 | - docker run -it iputils /bin/sh -c "cd travis && DISTRO_VERSION=\"$DISTRO_VERSION\" ./$INSTALL.sh && if [ \"$VARIANT\" ]; then ARCH=\"$ARCH\" ./$INSTALL.$VARIANT.sh; fi && CC=$CC EXTRA_BUILD_OPTS=\"$EXTRA_BUILD_OPTS\" ../build.sh" | |
96 | - $CONTAINER $CONTAINER_ARGS run -it iputils /bin/sh -c "cd travis && DISTRO_VERSION=\"$DISTRO_VERSION\" ./$INSTALL.sh && if [ \"$VARIANT\" ]; then ARCH=\"$ARCH\" ./$INSTALL.$VARIANT.sh; fi && CC=$CC EXTRA_BUILD_OPTS=\"$EXTRA_BUILD_OPTS\" ../build.sh" |
33 | 33 | |
34 | 34 | Update CHANGES file. It should list the most notable changes and important or |
35 | 35 | security related fixes. Create pull request with these changes to give people |
36 | chance to review and test upcomming release. Notify distro maintainers, ask | |
36 | chance to review and test upcoming release. Notify distro maintainers, ask | |
37 | 37 | translators to update translations. |
38 | 38 | |
39 | 39 | Create release commit and tag. |
41 | 41 | tag="$(date +%Y%m%d)" |
42 | 42 | sed --in-place "s/version : '.*')/version : '$tag')/" meson.build |
43 | 43 | git add meson.build CHANGES |
44 | git commit --signoff --message "release: iputils-$tag" | |
44 | git commit -S --signoff --message "release: iputils-$tag" | |
45 | 45 | git tag --sign --annotate $tag --message iputils-$tag |
46 | 46 | |
47 | 47 | Check that the commit and tag looks ok. |
54 | 54 | git push origin --tags |
55 | 55 | |
56 | 56 | Go to github https://github.com/iputils/iputils/releases and paste the |
57 | the content of CHANGES file for upcomming release to the text box. | |
57 | the content of CHANGES file for upcoming release to the text box. | |
58 | 58 | Add there also credit for all contributors: |
59 | 59 | |
60 | Many thanks to the people contributing to this release: | |
60 | Many thanks to the people contributing to this release: | |
61 | 61 | |
62 | git shortlog -s -n $tag.. | |
62 | git shortlog -s -n $tag.. | |
63 | 63 | |
64 | Also thanks to patch reviewers: | |
64 | Also thanks to patch reviewers: | |
65 | 65 | |
66 | git log $tag.. | grep -Ei '(reviewed|acked)-by:' | \ | |
67 | sed 's/.*by: //' | sort | uniq -c | sort -n -r | |
66 | git log $tag.. | grep -Ei '(reviewed|acked)-by:' | \ | |
67 | sed 's/.*by: //' | sort | uniq -c | sort -n -r | |
68 | 68 | |
69 | and testers: | |
69 | and testers: | |
70 | 70 | |
71 | git log $tag.. | grep -Ei 'tested-by:' | \ | |
72 | sed 's/.*by: //' | sort | uniq -c | sort -n -r | |
71 | git log $tag.. | grep -Ei 'tested-by:' | \ | |
72 | sed 's/.*by: //' | sort | uniq -c | sort -n -r | |
73 | 73 | |
74 | Choose the tag you just created. Download the release files and sign them. | |
74 | Choose the tag you just created. Download the release files, compute sha256 hash: | |
75 | 75 | |
76 | for file in iputils-$tag.{zip,tar.gz}; do gpg --sign --armor --detach-sign $file; done | |
76 | wget -c https://github.com/iputils/iputils/archive/$tag.zip \ | |
77 | https://github.com/iputils/iputils/archive/$tag.tar.gz | |
77 | 78 | |
78 | out="sha256sum" | |
79 | for file in iputils-$tag.{zip,tar.gz}; do $out $file >> $out; done | |
80 | gpg --clearsign $out | |
79 | out="sha256sum" | |
80 | for file in $tag.{zip,tar.gz}; do $out $file >> $out; done | |
81 | 81 | |
82 | Upload these three .asc files to release as additional files. | |
82 | Sign tarballs and sha256 hash: | |
83 | ||
84 | for file in $tag.{zip,tar.gz}; do gpg --sign --armor --detach-sign $file; done | |
85 | gpg --clearsign $out | |
86 | ||
87 | and upload all these four files to the release as additional files. | |
83 | 88 | |
84 | 89 | The release should be ready. People tend to react to releases, so expect bug |
85 | 90 | reports and pull requests after release. Assuming release has fatal flaw(s) |
0 | // SPDX-License-Identifier: GPL-2.0-or-later | |
1 | /* | |
2 | * Copyright (c) 2020 Petr Vorel <petr.vorel@gmail.com> | |
3 | */ | |
4 | ||
5 | #ifndef IPV6_H | |
6 | #define IPV6_H | |
7 | ||
8 | /* Definitions from kernel include/net/ipv6.h */ | |
9 | ||
10 | /* | |
11 | * NextHeader field of IPv6 header | |
12 | */ | |
13 | ||
14 | #define NEXTHDR_HOP 0 /* Hop-by-hop option header. */ | |
15 | #define NEXTHDR_TCP 6 /* TCP segment. */ | |
16 | #define NEXTHDR_UDP 17 /* UDP message. */ | |
17 | #define NEXTHDR_IPV6 41 /* IPv6 in IPv6 */ | |
18 | #define NEXTHDR_ROUTING 43 /* Routing header. */ | |
19 | #define NEXTHDR_FRAGMENT 44 /* Fragmentation/reassembly header. */ | |
20 | #define NEXTHDR_GRE 47 /* GRE header. */ | |
21 | #define NEXTHDR_ESP 50 /* Encapsulating security payload. */ | |
22 | #define NEXTHDR_AUTH 51 /* Authentication header. */ | |
23 | #define NEXTHDR_ICMP 58 /* ICMP for IPv6. */ | |
24 | #define NEXTHDR_NONE 59 /* No next header */ | |
25 | #define NEXTHDR_DEST 60 /* Destination options header. */ | |
26 | #define NEXTHDR_SCTP 132 /* SCTP message. */ | |
27 | #define NEXTHDR_MOBILITY 135 /* Mobility header. */ | |
28 | ||
29 | #endif /* IPV6_H */ |
42 | 42 | option('BUILD_HTML_MANS', type : 'boolean', value : false, |
43 | 43 | description : 'Build html manuals') |
44 | 44 | |
45 | option('NO_SETCAP_OR_SUID', type : 'boolean', value : false, | |
45 | option('NO_SETCAP_OR_SUID', type : 'boolean', value : true, | |
46 | 46 | description : 'Disable setting setcap or setuid with build-aux/setcap-setuid.sh') |
47 | 47 | |
48 | 48 | option('SETCAP_OR_SUID_ARPING', type : 'boolean', value : false, |
64 | 64 | |
65 | 65 | #define MAXWAIT 10 /* max seconds to wait for response */ |
66 | 66 | #define MININTERVAL 10 /* Minimal interpacket gap */ |
67 | #define MINUSERINTERVAL 200 /* Minimal allowed interval for non-root */ | |
67 | #define MINUSERINTERVAL 2 /* Minimal allowed interval for non-root */ | |
68 | 68 | |
69 | 69 | #define SCHINT(a) (((a) <= MININTERVAL) ? MININTERVAL : (a)) |
70 | 70 |
60 | 60 | |
61 | 61 | #include "iputils_common.h" |
62 | 62 | #include "iputils_ni.h" |
63 | #include "ipv6.h" | |
63 | 64 | #include "ping.h" |
64 | 65 | |
65 | 66 | #ifndef IPV6_FLOWLABEL_MGR |
863 | 864 | |
864 | 865 | nexthdr = iph1->ip6_nxt; |
865 | 866 | |
866 | if (nexthdr == 44) { | |
867 | if (nexthdr == NEXTHDR_FRAGMENT) { | |
867 | 868 | nexthdr = *(uint8_t *)icmph1; |
868 | 869 | icmph1++; |
869 | 870 | } |
6 | 6 | "Project-Id-Version: iputils 20161105\n" |
7 | 7 | "Report-Msgid-Bugs-To: \n" |
8 | 8 | "POT-Creation-Date: 2018-11-16 03:31+0900\n" |
9 | "PO-Revision-Date: 2021-01-26 05:47+0000\n" | |
9 | "PO-Revision-Date: 2021-05-04 11:34+0000\n" | |
10 | 10 | "Last-Translator: Tomohiro KATO <tomop@teamgedoh.net>\n" |
11 | 11 | "Language-Team: Japanese <https://translate.fedoraproject.org/projects/" |
12 | 12 | "iputils/iputils/ja/>\n" |
15 | 15 | "Content-Type: text/plain; charset=UTF-8\n" |
16 | 16 | "Content-Transfer-Encoding: 8bit\n" |
17 | 17 | "Plural-Forms: nplurals=1; plural=0;\n" |
18 | "X-Generator: Weblate 4.4.2\n" | |
18 | "X-Generator: Weblate 4.6.1\n" | |
19 | 19 | |
20 | 20 | #: arping.c:191 |
21 | 21 | #, c-format |
159 | 159 | #, c-format |
160 | 160 | msgid "" |
161 | 161 | "arping: Suitable device could not be determined. Please, use option -I.\n" |
162 | msgstr "" | |
163 | "arping: 適切なデバイスを検出できませんでした。-I オプションを使用してください。\n" | |
162 | msgstr "arping: 適切なデバイスを検出できませんでした。-I オプションを使用してください。\n" | |
164 | 163 | |
165 | 164 | #: arping.c:1193 |
166 | 165 | #, c-format |
178 | 177 | #: arping.c:1265 |
179 | 178 | #, c-format |
180 | 179 | msgid "Interface \"%s\" is not ARPable (no ll address)\n" |
181 | msgstr "" | |
182 | "インタフェース \"%s\" ではARPを利用できません (llアドレスがありません)。\n" | |
180 | msgstr "インタフェース \"%s\" ではARPを利用できません (llアドレスがありません)。\n" | |
183 | 181 | |
184 | 182 | #: arping.c:1274 |
185 | 183 | #, c-format |
954 | 952 | #: ping_common.c:964 |
955 | 953 | #, c-format |
956 | 954 | msgid "rtt min/avg/max/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ld ms" |
957 | msgstr "" | |
958 | "rtt 最小/平均/最大/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ldミリ秒" | |
955 | msgstr "rtt 最小/平均/最大/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ldミリ秒" | |
959 | 956 | |
960 | 957 | #: ping_common.c:973 |
961 | 958 | #, c-format |
1637 | 1634 | #: traceroute6.c:809 |
1638 | 1635 | #, c-format |
1639 | 1636 | msgid "traceroute: packet size must be %d <= s < %d.\n" |
1640 | msgstr "" | |
1641 | "traceroute: パケットサイズは %d <= s < %d の範囲内でなければいけません。\n" | |
1637 | msgstr "traceroute: パケットサイズは %d <= s < %d の範囲内でなければいけません。\n" | |
1642 | 1638 | |
1643 | 1639 | #: traceroute6.c:819 |
1644 | 1640 | #, c-format |
7 | 7 | "Project-Id-Version: iputils\n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | 9 | "POT-Creation-Date: 2020-03-09 19:20+0000\n" |
10 | "PO-Revision-Date: 2020-07-02 02:40+0000\n" | |
10 | "PO-Revision-Date: 2021-05-04 11:34+0000\n" | |
11 | 11 | "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" |
12 | "Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/iputils/iputils/uk/>\n" | |
12 | "Language-Team: Ukrainian <https://translate.fedoraproject.org/projects/" | |
13 | "iputils/iputils/uk/>\n" | |
13 | 14 | "Language: uk\n" |
14 | 15 | "MIME-Version: 1.0\n" |
15 | 16 | "Content-Type: text/plain; charset=UTF-8\n" |
16 | 17 | "Content-Transfer-Encoding: 8bit\n" |
17 | 18 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" |
18 | 19 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
19 | "X-Generator: Weblate 4.1.1\n" | |
20 | "X-Generator: Weblate 4.6.1\n" | |
20 | 21 | |
21 | 22 | #: ping/ping.c:1081 |
22 | 23 | #, c-format |
124 | 125 | " -V вивести дані щодо версії і завершити роботу\n" |
125 | 126 | " <призначення> назва dns або ip-адреса\n" |
126 | 127 | "\n" |
127 | "Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо " | |
128 | "tracepath(8).\n" | |
128 | "Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо tracepath(8)." | |
129 | "\n" | |
129 | 130 | |
130 | 131 | #: arping.c:113 |
131 | 132 | #, c-format |
162 | 163 | " -V вивести дані щодо версії і завершити роботу\n" |
163 | 164 | " -c <к-ть> кількість пакетів, які слід надіслати\n" |
164 | 165 | " -w <час> гранична тривалість очікування на відповідь\n" |
165 | " -i <інтервал> встановити інтервал між пакетами (типове значення: 1 " | |
166 | "секунда)\n" | |
166 | " -i <інтервал> встановити інтервал між пакетами (типове значення: 1 секунда)" | |
167 | "\n" | |
167 | 168 | " -I <пристрій> пристрій ethernet, яким слід скористатися" |
168 | 169 | |
169 | 170 | #: clockdiff.c:451 |
201 | 202 | " -V вивести дані щодо версії і завершити роботу\n" |
202 | 203 | " <призначення> dns-назва або ip-адреса\n" |
203 | 204 | "\n" |
204 | "Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо " | |
205 | "clockdiff(8).\n" | |
205 | "Щоб дізнатися більше, ознайомтеся зі сторінкою підручника щодо clockdiff(8)." | |
206 | "\n" | |
206 | 207 | |
207 | 208 | #: traceroute6.c:600 |
208 | 209 | #, c-format |
991 | 992 | #: arping.c:945 |
992 | 993 | msgid "Suitable device could not be determined. Please, use option -I." |
993 | 994 | msgstr "" |
994 | "не вдалося визначити відповідний пристрій. Будь ласка, скористайтеся" | |
995 | " параметром -I." | |
995 | "не вдалося визначити відповідний пристрій. Будь ласка, скористайтеся " | |
996 | "параметром -I." | |
996 | 997 | |
997 | 998 | #: traceroute6.c:472 |
998 | 999 | msgid "Time Exceeded in Transit" |
1205 | 1206 | |
1206 | 1207 | #: ping/ping6_common.c:311 |
1207 | 1208 | msgid "can't set multicast hop limit" |
1208 | msgstr "" | |
1209 | "Не вдалося встановити обмеження перестрибувань неспрямованої трансляції" | |
1209 | msgstr "Не вдалося встановити обмеження перестрибувань неспрямованої трансляції" | |
1210 | 1210 | |
1211 | 1211 | #: ping/ping6_common.c:314 |
1212 | 1212 | msgid "can't set unicast hop limit" |
1531 | 1531 | #: ping/ping.c:247 |
1532 | 1532 | #, c-format |
1533 | 1533 | msgid "the decimal value of TOS bits must be in range 0-255: %d" |
1534 | msgstr "" | |
1535 | "десяткове значення бітів TOS має належати до діапазону від 0 до 255: %d" | |
1534 | msgstr "десяткове значення бітів TOS має належати до діапазону від 0 до 255: %d" | |
1536 | 1535 | |
1537 | 1536 | #: ping/ping.c:189 |
1538 | 1537 | msgid "this will become fatal error in the future" |
7 | 7 | "Project-Id-Version: iputils\n" |
8 | 8 | "Report-Msgid-Bugs-To: \n" |
9 | 9 | "POT-Creation-Date: 2020-03-09 19:20+0000\n" |
10 | "PO-Revision-Date: 2020-07-29 07:29+0000\n" | |
11 | "Last-Translator: Qiyu Yan <yanqiyu01@gmail.com>\n" | |
12 | "Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/iputils/iputils/zh_CN/>\n" | |
10 | "PO-Revision-Date: 2021-05-04 11:34+0000\n" | |
11 | "Last-Translator: Zhang Boyang <zhangboyang.id@gmail.com>\n" | |
12 | "Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/" | |
13 | "projects/iputils/iputils/zh_CN/>\n" | |
13 | 14 | "Language: zh_CN\n" |
14 | 15 | "MIME-Version: 1.0\n" |
15 | 16 | "Content-Type: text/plain; charset=UTF-8\n" |
16 | 17 | "Content-Transfer-Encoding: 8bit\n" |
17 | 18 | "Plural-Forms: nplurals=1; plural=0;\n" |
18 | "X-Generator: Weblate 4.1.1\n" | |
19 | "X-Generator: Weblate 4.6.1\n" | |
19 | 20 | |
20 | 21 | #: ping/ping.c:1081 |
21 | 22 | #, c-format |
58 | 59 | "\n" |
59 | 60 | "%cSRR: " |
60 | 61 | msgstr "" |
62 | "\n" | |
63 | "%cSRR: " | |
61 | 64 | |
62 | 65 | #: ping/ping.c:953 |
63 | #, c-format | |
66 | #, c-format, fuzzy | |
64 | 67 | msgid "" |
65 | 68 | "\n" |
66 | 69 | "NOP" |
67 | 70 | msgstr "" |
71 | "\n" | |
72 | "NOP" | |
68 | 73 | |
69 | 74 | #: ping/ping.c:1007 |
70 | #, c-format | |
75 | #, c-format, fuzzy | |
71 | 76 | msgid "" |
72 | 77 | "\n" |
73 | 78 | "RR: " |
74 | 79 | msgstr "" |
80 | "\n" | |
81 | "RR: " | |
75 | 82 | |
76 | 83 | #: ping/ping.c:1043 |
77 | 84 | #, c-format |
79 | 86 | "\n" |
80 | 87 | "TS: " |
81 | 88 | msgstr "" |
89 | "\n" | |
90 | "TS: " | |
82 | 91 | |
83 | 92 | #: tracepath.c:398 |
84 | 93 | #, c-format |
147 | 156 | " -b 始终使用广播而不是单拨\n" |
148 | 157 | " -D 重复地址检测模式\n" |
149 | 158 | " -U 主动 ARP 模式, 更新邻居 ARP 表\n" |
150 | " -A 主动 ARP 模式, 更新邻居 ARP 表\n" | |
159 | " -A ARP 应答模式, 更新邻居 ARP 表\n" | |
151 | 160 | " -V 显示版本号然后退出\n" |
152 | 161 | " -c <count> 指定发送多少个包\n" |
153 | 162 | " -w <timeout> 指定等待超时时间\n" |
155 | 164 | " -I <device> 指定使用的设备" |
156 | 165 | |
157 | 166 | #: clockdiff.c:451 |
158 | #, c-format, fuzzy | |
167 | #, c-format | |
159 | 168 | msgid "" |
160 | 169 | "\n" |
161 | 170 | "Usage:\n" |
189 | 198 | " -V, --version 显示版本信息并退出\n" |
190 | 199 | " <destination> dns 名称或 ip 地址\n" |
191 | 200 | "\n" |
192 | "For more details see clockdiff(8).\n" | |
201 | "需要更多信息请查看 clockdiff(8).\n" | |
193 | 202 | |
194 | 203 | #: traceroute6.c:600 |
195 | 204 | #, c-format |
255 | 264 | "wrong data byte #%zu should be 0x%x but was 0x%x" |
256 | 265 | msgstr "" |
257 | 266 | "\n" |
258 | "错误的数据比特数 #%zu 预期为 0x%x 但实际接收到 0x%x" | |
267 | "错误的数据字节 #%zu 预期为 0x%x 但实际接收到 0x%x" | |
259 | 268 | |
260 | 269 | #: tracepath.c:609 |
261 | 270 | #, c-format |
295 | 304 | #: ping/ping_common.c:826 |
296 | 305 | #, c-format |
297 | 306 | msgid " (DUP!)" |
298 | msgstr "" | |
307 | msgstr " (重复!)" | |
299 | 308 | |
300 | 309 | #: ping/ping6_common.c:742 |
301 | 310 | #, c-format |
405 | 414 | #: ping/ping_common.c:800 |
406 | 415 | #, c-format |
407 | 416 | msgid "%d bytes from %s:" |
408 | msgstr "%d 比特,来自 %s:" | |
417 | msgstr "%d 字节,来自 %s:" | |
409 | 418 | |
410 | 419 | #: arping.c:290 |
411 | 420 | #, c-format |
430 | 439 | #: arping.c:388 |
431 | 440 | #, c-format |
432 | 441 | msgid "%s from " |
433 | msgstr "" | |
442 | msgstr "%s 来自 " | |
434 | 443 | |
435 | 444 | #: clockdiff.c:594 |
436 | 445 | #, c-format |
437 | 446 | msgid "%s is down" |
438 | msgstr "" | |
447 | msgstr "%s 已关闭" | |
439 | 448 | |
440 | 449 | #: clockdiff.c:600 |
441 | 450 | #, c-format |
465 | 474 | #: ping/ping6_common.c:374 |
466 | 475 | #, c-format |
467 | 476 | msgid "%zu data bytes\n" |
468 | msgstr "%zu 比特的数据\n" | |
477 | msgstr "%zu 字节的数据\n" | |
469 | 478 | |
470 | 479 | #: ping/ping.c:927 |
471 | 480 | #, c-format |
472 | 481 | msgid "%zu(%zu) bytes of data.\n" |
473 | msgstr "%zu(%zu) 比特的数据。\n" | |
482 | msgstr "%zu(%zu) 字节的数据。\n" | |
474 | 483 | |
475 | 484 | #: ping/ping.c:1588 |
476 | 485 | #, c-format |
495 | 504 | #: traceroute6.c:849 |
496 | 505 | #, c-format |
497 | 506 | msgid ", %d hops max, %d byte packets\n" |
498 | msgstr ", 最大 %d 跃点, %d 比特的包\n" | |
507 | msgstr ", 最大 %d 跃点, %d 字节的包\n" | |
499 | 508 | |
500 | 509 | #: ping/ping_common.c:892 |
501 | 510 | #, c-format |
523 | 532 | msgstr ", 代码=%d" |
524 | 533 | |
525 | 534 | #: ping/ping6_common.c:366 |
526 | #, c-format | |
535 | #, c-format, fuzzy | |
527 | 536 | msgid ", flow 0x%05x, " |
528 | msgstr "" | |
537 | msgstr ", flow 0x%05x, " | |
529 | 538 | |
530 | 539 | #: ping/ping_common.c:952 |
531 | 540 | #, c-format |
545 | 554 | #: ping/ping6_common.c:773 |
546 | 555 | #, c-format |
547 | 556 | msgid "; seq=%u;" |
548 | msgstr "" | |
557 | msgstr "; seq=%u;" | |
549 | 558 | |
550 | 559 | #: arping.c:1015 |
551 | 560 | #, c-format |
552 | 561 | msgid "ARPING %s " |
553 | msgstr "" | |
562 | msgstr "ARPING %s " | |
554 | 563 | |
555 | 564 | #: ping/ping.c:1281 |
556 | 565 | #, c-format |
557 | 566 | msgid "Address Mask Reply\n" |
558 | msgstr "" | |
567 | msgstr "地址掩码应答\n" | |
559 | 568 | |
560 | 569 | #: ping/ping.c:1276 |
561 | 570 | #, c-format |
562 | 571 | msgid "Address Mask Request\n" |
563 | msgstr "" | |
572 | msgstr "地址掩码请求\n" | |
564 | 573 | |
565 | 574 | #: ping/ping6_common.c:401 |
566 | 575 | #, c-format |
727 | 736 | |
728 | 737 | #: traceroute6.c:504 |
729 | 738 | msgid "Home Agent Address Discovery Reply message" |
730 | msgstr "" | |
739 | msgstr "Home Agent 地址发现应答信息" | |
731 | 740 | |
732 | 741 | #: traceroute6.c:502 |
733 | 742 | msgid "Home Agent Address Discovery Request Message" |
734 | msgstr "" | |
743 | msgstr "Home Agent 地址发现请求消息" | |
735 | 744 | |
736 | 745 | #: ping/ping6_common.c:419 |
737 | 746 | #, c-format |
746 | 755 | #: ping/ping.c:1271 |
747 | 756 | #, c-format |
748 | 757 | msgid "Information Reply\n" |
749 | msgstr "" | |
758 | msgstr "应答信息\n" | |
750 | 759 | |
751 | 760 | #: ping/ping.c:1267 |
752 | 761 | #, c-format |
753 | 762 | msgid "Information Request\n" |
754 | msgstr "" | |
763 | msgstr "信息请求\n" | |
755 | 764 | |
756 | 765 | #: arping.c:561 |
757 | 766 | #, c-format |
769 | 778 | msgstr "网络接口 “%s” 不适用 ARP(没有 ll 地址)\n" |
770 | 779 | |
771 | 780 | #: ping/ping6_common.c:444 |
772 | #, c-format, fuzzy | |
781 | #, c-format | |
773 | 782 | msgid "MLD Query" |
774 | msgstr "MLD 查询" | |
783 | msgstr "组播组查询" | |
775 | 784 | |
776 | 785 | #: ping/ping6_common.c:450 |
777 | 786 | #, c-format |
778 | 787 | msgid "MLD Reduction" |
779 | msgstr "" | |
788 | msgstr "组播组退出" | |
780 | 789 | |
781 | 790 | #: ping/ping6_common.c:447 |
782 | 791 | #, c-format |
783 | 792 | msgid "MLD Report" |
784 | msgstr "" | |
793 | msgstr "组播组报告" | |
785 | 794 | |
786 | 795 | #: traceroute6.c:480 |
787 | 796 | msgid "Membership Query" |
788 | msgstr "" | |
797 | msgstr "成员信息查询" | |
789 | 798 | |
790 | 799 | #: traceroute6.c:484 |
791 | 800 | msgid "Membership Reduction" |
792 | msgstr "" | |
801 | msgstr "成员信息退出" | |
793 | 802 | |
794 | 803 | #: traceroute6.c:482 |
795 | 804 | msgid "Membership Report" |
796 | msgstr "" | |
805 | msgstr "成员信息报告" | |
797 | 806 | |
798 | 807 | #: traceroute6.c:508 |
799 | 808 | msgid "Mobile Prefix Solicitation Advertisement" |
800 | msgstr "" | |
809 | msgstr "移动前缀征求通告" | |
801 | 810 | |
802 | 811 | #: traceroute6.c:506 |
803 | 812 | msgid "Mobile Prefix Solicitation Message" |
1390 | 1399 | #: ping/ping.c:1508 |
1391 | 1400 | #, c-format |
1392 | 1401 | msgid "packet too short (%d bytes) from %s" |
1393 | msgstr "" | |
1402 | msgstr "过短的包 (%d 字节) 来自 %s" | |
1394 | 1403 | |
1395 | 1404 | #: ping/ping6_common.c:813 |
1396 | 1405 | #, c-format |
1397 | 1406 | msgid "packet too short: %d bytes" |
1398 | msgstr "" | |
1407 | msgstr "过短的包: %d 字节" | |
1399 | 1408 | |
1400 | 1409 | #: ping/ping_common.c:208 |
1401 | 1410 | #, c-format |
8 | 8 | ExecStart=@sbindir@/rdisc -f -t $OPTIONS $SEND_ADDRESS $RECEIVE_ADDRESS |
9 | 9 | |
10 | 10 | AmbientCapabilities=CAP_NET_RAW |
11 | CapabilityBoundingSet=CAP_NET_RAW | |
11 | 12 | PrivateTmp=yes |
12 | PrivateUsers=yes | |
13 | 13 | ProtectSystem=strict |
14 | 14 | ProtectHome=yes |
15 | 15 | ProtectControlGroups=yes |
252 | 252 | #endif |
253 | 253 | |
254 | 254 | #include "iputils_common.h" |
255 | #include "ipv6.h" | |
255 | 256 | |
256 | 257 | #ifdef USE_IDN |
257 | 258 | # define ADDRINFO_IDN_FLAGS AI_IDN |
530 | 531 | up = (struct udphdr *)(hip + 1); |
531 | 532 | nexthdr = hip->ip6_nxt; |
532 | 533 | |
533 | if (nexthdr == 44) { | |
534 | if (nexthdr == NEXTHDR_FRAGMENT) { | |
534 | 535 | nexthdr = *(unsigned char *)up; |
535 | 536 | up++; |
536 | 537 | } |
608 | 609 | " -r use SO_DONTROUTE socket option\n" |
609 | 610 | " -s <address> use source <address>\n" |
610 | 611 | " -v verbose output\n" |
612 | " -V print version and exit\n" | |
611 | 613 | " -w <timeout> time to wait for response\n" |
612 | 614 | "\nFor more details see traceroute6(8).\n")); |
613 | 615 | exit(1); |