diff options
Diffstat (limited to 'lib/AdminPanel')
| -rw-r--r-- | lib/AdminPanel/Shared/Hosts.pm | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/lib/AdminPanel/Shared/Hosts.pm b/lib/AdminPanel/Shared/Hosts.pm index 9eed5b61..fa22c25f 100644 --- a/lib/AdminPanel/Shared/Hosts.pm +++ b/lib/AdminPanel/Shared/Hosts.pm @@ -22,6 +22,7 @@ package AdminPanel::Shared::Hosts;  use Moose;  use diagnostics;  use Config::Hosts; +use Net::DBus;  use utf8;  # costants by Config::Hosts @@ -35,11 +36,23 @@ has 'configHosts' => (  	builder => '_initialize'  ); +has 'dbus' => ( +	is => 'ro', +	isa => 'HashRef', +	builder => '_initDBusServiceObject', +); +  sub _initialize {  	my $self = shift();  	$self->configHosts(Config::Hosts->new());  } +sub _initDBusServiceObject { +	my $self = shift(); +	my %dbus_so = ( 'servicePath' => 'org.freedesktop.hostname1', 'objectPath' => '/org/freedesktop/hostname1' ); +	return \%dbus_so; +} +  =pod  =head2 _getHosts @@ -99,4 +112,24 @@ sub _writeHosts {  	return $self->configHosts->write_hosts();  } +sub _getLocalHostName { +	my $self = shift(); +	my %params = %{$self->dbus()}; +	my $bus = Net::DBus->system; +	my $service = $bus->get_service($params{'servicePath'}); +	my $object = $service->get_object($params{'objectPath'}); +	my $properties = $object->GetAll($params{'servicePath'}); +	return $properties->{Hostname}; +} + +sub _setLocalHostName { +	my $self = shift(); +	my $hostname = shift(); +	my %params = %{$self->dbus()}; +	my $bus = Net::DBus->system; +	my $service = $bus->get_service($params{'servicePath'}); +	my $object = $service->get_object($params{'objectPath'}); +	$object->SetPrettyHostname($hostname, 1); +} +  1; | 
