parent
f1435452ea
commit
094c213baa
@ -83,20 +83,27 @@ ff02::2 ip6-allrouters
|
|||||||
.failed() );
|
.failed() );
|
||||||
}
|
}
|
||||||
|
|
||||||
STATICTEST void
|
STATICTEST bool
|
||||||
setSystemdHostname( const QString& hostname )
|
setSystemdHostname( const QString& hostname )
|
||||||
{
|
{
|
||||||
QDBusInterface hostnamed( "org.freedesktop.hostname1",
|
QDBusInterface hostnamed( "org.freedesktop.hostname1",
|
||||||
"/org/freedesktop/hostname1",
|
"/org/freedesktop/hostname1",
|
||||||
"org.freedesktop.hostname1",
|
"org.freedesktop.hostname1",
|
||||||
QDBusConnection::systemBus() );
|
QDBusConnection::systemBus() );
|
||||||
|
if ( !hostnamed.isValid() )
|
||||||
|
{
|
||||||
|
cWarning() << "Interface" << hostnamed.interface() << "is not valid.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool success = true;
|
||||||
// Static, writes /etc/hostname
|
// Static, writes /etc/hostname
|
||||||
{
|
{
|
||||||
QDBusReply< uint > r = hostnamed.call( "SetStaticHostname", hostname, false );
|
QDBusReply< uint > r = hostnamed.call( "SetStaticHostname", hostname, false );
|
||||||
if ( !r.isValid() )
|
if ( !r.isValid() )
|
||||||
{
|
{
|
||||||
cWarning() << "Could not set hostname through org.freedesktop.hostname1.SetStaticHostname." << r.error();
|
cWarning() << "Could not set hostname through org.freedesktop.hostname1.SetStaticHostname." << r.error();
|
||||||
|
success = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Dynamic, updates kernel
|
// Dynamic, updates kernel
|
||||||
@ -105,8 +112,11 @@ setSystemdHostname( const QString& hostname )
|
|||||||
if ( !r.isValid() )
|
if ( !r.isValid() )
|
||||||
{
|
{
|
||||||
cWarning() << "Could not set hostname through org.freedesktop.hostname1.SetHostname." << r.error();
|
cWarning() << "Could not set hostname through org.freedesktop.hostname1.SetHostname." << r.error();
|
||||||
|
success = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
// Implementation details
|
// Implementation details
|
||||||
extern bool setFileHostname( const QString& );
|
extern bool setFileHostname( const QString& );
|
||||||
extern bool writeFileEtcHosts( const QString& );
|
extern bool writeFileEtcHosts( const QString& );
|
||||||
extern void setSystemdHostname( const QString& );
|
extern bool setSystemdHostname( const QString& );
|
||||||
|
|
||||||
#include "GlobalStorage.h"
|
#include "GlobalStorage.h"
|
||||||
#include "JobQueue.h"
|
#include "JobQueue.h"
|
||||||
@ -44,6 +44,7 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testEtcHostname();
|
void testEtcHostname();
|
||||||
void testEtcHosts();
|
void testEtcHosts();
|
||||||
|
void testHostnamed();
|
||||||
|
|
||||||
void cleanup();
|
void cleanup();
|
||||||
|
|
||||||
@ -116,6 +117,17 @@ UsersTests::testEtcHosts()
|
|||||||
QCOMPARE( QFileInfo( m_dir.filePath( "etc/hosts" ) ).size(), 150 + 22 - 2 );
|
QCOMPARE( QFileInfo( m_dir.filePath( "etc/hosts" ) ).size(), 150 + 22 - 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
UsersTests::testHostnamed()
|
||||||
|
{
|
||||||
|
// Since the service might not be running (e.g. non-systemd systems,
|
||||||
|
// FreeBSD, docker, ..) we're not going to fail a test here.
|
||||||
|
// There's also the permissions problem to think of.
|
||||||
|
QEXPECT_FAIL( "", "Hostname changes are access-controlled", Continue );
|
||||||
|
QVERIFY( setSystemdHostname( "tubophone.calamares.io" ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
UsersTests::cleanup()
|
UsersTests::cleanup()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user