In the feature_restore function of virtual_feature.pl, the $rv is undefined. Function docs say "Must return 1 on success or 0 on failure." So, is it always returning failure, or it is accidentally getting an $rv from somewhere else in the file (meaning it's reporting the status of some other function)? Now that strict and warnings are on, and we've got all of the variables tightly scoped, the latter will likely cause breakage.
In the feature_restore function of virtual_feature.pl, the $rv is undefined. Function docs say "Must return 1 on success or 0 on failure." So, is it always returning failure, or it is accidentally getting an $rv from somewhere else in the file (meaning it's reporting the status of some other function)? Now that strict and warnings are on, and we've got all of the variables tightly scoped, the latter will likely cause breakage.
https://github.com/virtualmin/virtualmin-mailrelay/blob/master/virtual_feature.pl#L514