--- PVE/Storage/CIFSPlugin.pm | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/PVE/Storage/CIFSPlugin.pm b/PVE/Storage/CIFSPlugin.pm index 6115a96..6c8cd72 100644 --- a/PVE/Storage/CIFSPlugin.pm +++ b/PVE/Storage/CIFSPlugin.pm @@ -34,6 +34,15 @@ sub cifs_cred_file_name { return "/etc/pve/priv/${storeid}.cred"; } +sub cifs_delete_credentials { + my ($storeid) = @_; + + my $cred_file = cifs_cred_file_name($storeid); + if (-f $cred_file) { + unlink($cred_file) or warn "removing cifs credientials '$cred_file' failed: $!\n"; + } +} + sub cifs_set_credentials { my ($password, $storeid) = @_; @@ -145,18 +154,29 @@ sub check_config { sub on_add_hook { my ($class, $storeid, $scfg, %param) = @_; - if (my $password = $param{password}) { - cifs_set_credentials($password, $storeid); + if (defined($param{password})) { + cifs_set_credentials($param{password}, $storeid); + } else { + cifs_delete_credentials($storeid); + } +} + +sub on_update_hook { + my ($class, $storeid, $scfg, %param) = @_; + + return if !exists($param{password}); + + if (defined($param{password})) { + cifs_set_credentials($param{password}, $storeid); + } else { + cifs_delete_credentials($storeid); } } sub on_delete_hook { my ($class, $storeid, $scfg) = @_; - my $cred_file = cifs_cred_file_name($storeid); - if (-f $cred_file) { - unlink($cred_file) or warn "removing cifs credientials '$cred_file' failed: $!\n"; - } + cifs_delete_credentials($storeid); } sub status { -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel