github.com/SagerNet/gvisor@v0.0.0-20210707092255-7731c139d75c/images/basic/integrationtest/ping6.sh (about)

     1  #!/bin/bash
     2  
     3  # Copyright 2020 The gVisor Authors.
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #     http://www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  set -euo pipefail
    18  
    19  # Enable ipv6 on loopback if it's not already enabled. Runsc doesn't enable ipv6
    20  # loopback unless an ipv6 address was assigned to the container, which docker
    21  # does not do by default.
    22  if ! [[ $(ip -6 addr show dev lo) ]]; then
    23    ip addr add ::1 dev lo
    24  fi
    25  
    26  # The docker API doesn't provide for starting a container, running a command,
    27  # and getting the exit status of the command in one go. The most straightforward
    28  # way to do this is to verify the output of the command, so we output nothing on
    29  # success and an error message on failure.
    30  if ! out=$(/bin/ping6 -c 10 ::1); then
    31    echo "$out"
    32  fi