register_file('initiatorname', "/etc/iscsi/initiatorname.iscsi",
\&read_iscsi_initiatorname);
+sub read_apt_auth {
+ my ($filename, $fd) = @_;
+
+ local $/;
+
+ my $raw = <$fd>;
+
+ $raw =~ s/^\s+//;
+
+
+ my @tokens = split(/\s+/, $raw);
+
+ my $data = {};
+
+ my $machine;
+ while (defined(my $tok = shift @tokens)) {
+
+ $machine = shift @tokens if $tok eq 'machine';
+ next if !$machine;
+ $data->{$machine} = {} if !$data->{$machine};
+
+ $data->{$machine}->{login} = shift @tokens if $tok eq 'login';
+ $data->{$machine}->{password} = shift @tokens if $tok eq 'password';
+ };
+
+ return $data;
+}
+
+my $format_apt_auth_data = sub {
+ my $data = shift;
+
+ my $raw = '';
+
+ foreach my $machine (sort keys %$data) {
+ my $d = $data->{$machine};
+ $raw .= "machine $machine\n";
+ $raw .= " login $d->{login}\n" if $d->{login};
+ $raw .= " password $d->{password}\n" if $d->{password};
+ $raw .= "\n";
+ }
+
+ return $raw;
+};
+
+sub write_apt_auth {
+ my ($filename, $fh, $data) = @_;
+
+ my $raw = &$format_apt_auth_data($data);
+
+ die "write failed: $!" unless print $fh "$raw\n";
+
+ return $data;
+}
+
+sub update_apt_auth {
+ my ($filename, $fh, $data) = @_;
+
+ my $orig = read_apt_auth($filename, $fh);
+
+ foreach my $machine (keys %$data) {
+ $orig->{$machine} = $data->{$machine};
+ }
+
+ return &$format_apt_auth_data($orig);
+}
+
+register_file('apt-auth', "/etc/apt/auth.conf",
+ \&read_apt_auth, \&write_apt_auth,
+ \&update_apt_auth);
+
1;
+libpve-common-perl (3.0-5) unstable; urgency=low
+
+ * add parser for "/etc/apt/auth.conf"
+
+ -- Proxmox Support Team <support@proxmox.com> Thu, 25 Jul 2013 09:57:55 +0200
+
libpve-common-perl (3.0-4) unstable; urgency=low
* fix bug #381: use persistent reservation file for ports