[pve-devel] [PATCH][pve-manager] ipv6 support on openvz container create

Игорь Шестаков shine at selectel.ru
Mon Oct 28 13:22:35 CET 2013


With this patch you can set valid ipv6 address to openvz container on
creation.
Require package Regexp::IPv6 (cpan Regexp::IPv6)
or debian package libregexp-ipv6-perl.

diff --git a/PVE/OpenVZ.pm b/PVE/OpenVZ.pm
index a16d4fc..bc89f50 100644
--- a/PVE/OpenVZ.pm
+++ b/PVE/OpenVZ.pm
@@ -6,6 +6,7 @@ use File::stat qw();
 use POSIX qw (LONG_MAX);
 use IO::Dir;
 use IO::File;
+use Regexp::IPv6 qw($IPv6_re);
 use PVE::Tools qw(extract_param);
 use PVE::ProcFSTools;
 use PVE::Cluster qw(cfs_register_file cfs_read_file);
@@ -1064,12 +1065,16 @@ sub update_ovz_config {
  }
  my $newhash = {};
  foreach my $ip (PVE::Tools::split_list($param->{'ip_address'})) {
-    next if $ip !~ m|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(/\d+)?$|;
+    if ($ip =~ m|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(/\d+)?$| or  $ip =~
/^$IPv6_re$/){
     $newhash->{$ip} = 1;
-    if (!$iphash->{$ip}) {
- push @$changes, '--ipadd', $ip;
- $iphash->{$ip} = 1; # only add once
-    }
+     if (!$iphash->{$ip}) {
+ push @$changes, '--ipadd', $ip;
+ $iphash->{$ip} = 1; # only add once
+     }
+ }
+ else {
+ next;
+ }
  }
  foreach my $ip (keys %$iphash) {
     if (!$newhash->{$ip}) {


-- 
Igor Shestakov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.proxmox.com/pipermail/pve-devel/attachments/20131028/642053d4/attachment.htm>


More information about the pve-devel mailing list