diff options
Diffstat (limited to 'usr.sbin/pkg_add/OpenBSD/IdCache.pm')
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/IdCache.pm | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/IdCache.pm b/usr.sbin/pkg_add/OpenBSD/IdCache.pm index 2c08f718c5c..be7cfcb5ea3 100644 --- a/usr.sbin/pkg_add/OpenBSD/IdCache.pm +++ b/usr.sbin/pkg_add/OpenBSD/IdCache.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: IdCache.pm,v 1.1 2004/09/14 22:37:39 espie Exp $ +# $OpenBSD: IdCache.pm,v 1.2 2005/06/13 11:33:07 espie Exp $ # # Copyright (c) 2002-2004 Marc Espie <espie@openbsd.org> # @@ -17,8 +17,8 @@ use strict; use warnings; -package OpenBSD::IdCache; +package OpenBSD::SimpleIdCache; sub new { my $class = shift; @@ -30,9 +30,6 @@ sub lookup my ($self, $name, $default) = @_; my $r; - if ($name =~ m/^\d+$/) { - return $name; - } if (defined $self->{$name}) { $r = $self->{$name}; } else { @@ -45,6 +42,21 @@ sub lookup return $r; } + +package OpenBSD::IdCache; +our @ISA=qw(OpenBSD::SimpleIdCache); + +sub lookup +{ + my ($self, $name, $default) = @_; + + if ($name =~ m/^\d+$/) { + return $name; + } else { + return $self->SUPER::lookup($name, $default); + } +} + package OpenBSD::UidCache; our @ISA=qw(OpenBSD::IdCache); @@ -63,4 +75,20 @@ sub convert return @entry == 0 ? undef : $entry[2]; } +package OpenBSD::UnameCache; +our @ISA=qw(OpenBSD::SimpleIdCache); + +sub convert +{ + return getpwuid($_[1]); +} + +package OpenBSD::GnameCache; +our @ISA=qw(OpenBSD::SimpleIdCache); + +sub convert +{ + return getgrgid($_[1]); +} + 1; |