<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">Require: correctly node setup(</span><a href="https://openvz.org/Ipv6" target="_blank" style="font-family:arial,sans-serif;font-size:13.333333969116211px">https://openvz.org/Ipv6</a><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">).</span><div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Oct 28, 2013 at 4:22 PM, éÇÏÒØ ûÅÓÔÁËÏ× <span dir="ltr"><<a href="mailto:shine@selectel.ru" target="_blank">shine@selectel.ru</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>With this patch you can set valid ipv6 address to openvz container on creation.</div><div>Require packagešRegexp::IPv6 (cpan Regexp::IPv6)</div><div>or debian packagešlibregexp-ipv6-perl.</div><div><br>


</div><div>diff --git a/PVE/OpenVZ.pm b/PVE/OpenVZ.pm</div><div>index a16d4fc..bc89f50 100644</div><div>--- a/PVE/OpenVZ.pm</div><div>+++ b/PVE/OpenVZ.pm</div><div>@@ -6,6 +6,7 @@ use File::stat qw();</div><div>šuse POSIX qw (LONG_MAX);</div>


<div>šuse IO::Dir;</div><div>šuse IO::File;</div><div>+use Regexp::IPv6 qw($IPv6_re);</div><div>šuse PVE::Tools qw(extract_param);</div><div>šuse PVE::ProcFSTools;</div><div>šuse PVE::Cluster qw(cfs_register_file cfs_read_file);</div>


<div>@@ -1064,12 +1065,16 @@ sub update_ovz_config {</div><div>š<span style="white-space:pre-wrap">   </span>}</div><div>š<span style="white-space:pre-wrap">       </span>my $newhash = {};</div><div>š<span style="white-space:pre-wrap">       </span>foreach my $ip (PVE::Tools::split_list($param->{'ip_address'})) {</div>


<div>-<span style="white-space:pre-wrap"> </span> š šnext if $ip !~ m|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(/\d+)?$|;</div><div>+<span style="white-space:pre-wrap">      </span> š šif ($ip =~ m|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(/\d+)?$| or š$ip =~ /^$IPv6_re$/){</div>


<div>š<span style="white-space:pre-wrap"> </span> š š$newhash->{$ip} = 1;</div><div>-<span style="white-space:pre-wrap">     </span> š šif (!$iphash->{$ip}) {</div><div>-<span style="white-space:pre-wrap">           </span>push @$changes, '--ipadd', $ip;</div>


<div>-<span style="white-space:pre-wrap">         </span>$iphash->{$ip} = 1; # only add once</div><div>-<span style="white-space:pre-wrap">  </span> š š}</div><div>+<span style="white-space:pre-wrap">   </span> š š<span style="white-space:pre-wrap">    </span>if (!$iphash->{$ip}) {</div>


<div>+<span style="white-space:pre-wrap">                 </span>push @$changes, '--ipadd', $ip;</div><div>+<span style="white-space:pre-wrap">                 </span>$iphash->{$ip} = 1; # only add once</div><div>+<span style="white-space:pre-wrap">  </span> š š<span style="white-space:pre-wrap">    </span>}</div>


<div>+<span style="white-space:pre-wrap">         </span>}</div><div>+<span style="white-space:pre-wrap">               </span>else {</div><div>+<span style="white-space:pre-wrap">                  </span>next;</div><div>+<span style="white-space:pre-wrap">           </span>}</div>


<div>š<span style="white-space:pre-wrap"> </span>}</div><div>š<span style="white-space:pre-wrap">       </span>foreach my $ip (keys %$iphash) {</div><div>š<span style="white-space:pre-wrap">        </span> š šif (!$newhash->{$ip}) {</div>

<span class="HOEnZb"><font color="#888888">
<div><br></div><div><br></div>-- <br>Igor Shestakov</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>ó Õ×ÁÖÅÎÉÅÍ, ûÅÓÔÁËÏ× éÇÏÒØ<br>óÅÔØ ÄÁÔÁ-ÃÅÎÔÒÏ× "óÅÌÅËÔÅÌ"
</div></div></div>