diff --git a/src/util/virnetdevbandwidth.c b/src/util/virnetdevbandwidth.c index 5fa231a1ff5bdfe190deb834a1766d949936599a..9f2a159a2a0ec9d8bb16ef3e7a3a46c6f37810af 100644 --- a/src/util/virnetdevbandwidth.c +++ b/src/util/virnetdevbandwidth.c @@ -21,6 +21,7 @@ */ #include +#include #include "virnetdevbandwidth.h" #include "vircommand.h" @@ -74,6 +75,13 @@ virNetDevBandwidthSet(const char *ifname, goto cleanup; } + if (geteuid() != 0) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("Network bandwidth tuning is not available" + " in session mode")); + return -1; + } + virNetDevBandwidthClear(ifname); if (bandwidth->in && bandwidth->in->average) { diff --git a/tests/Makefile.am b/tests/Makefile.am index 7b22f9021b9a7f11e56b3e580de41ed353bbd500..a3e3ab31d9118f227defcb5963fb51983fd871e7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -167,7 +167,6 @@ test_programs = virshtest sockettest \ virstringtest \ virportallocatortest \ sysinfotest \ - virnetdevbandwidthtest \ virkmodtest \ vircapstest \ domaincapstest \ @@ -318,7 +317,9 @@ test_programs += metadatatest test_programs += secretxml2xmltest if WITH_LINUX -test_programs += virusbtest +test_programs += virusbtest \ + virnetdevbandwidthtest \ + $(NULL) endif WITH_LINUX test_scripts = \ @@ -409,7 +410,9 @@ test_libraries += \ endif WITH_DBUS if WITH_LINUX -test_libraries += virusbmock.la +test_libraries += virusbmock.la \ + virnetdevbandwidthmock.la \ + $(NULL) endif WITH_LINUX if WITH_TESTS @@ -825,9 +828,6 @@ commandhelper_LDADD = \ commandhelper_LDFLAGS = -static -virnetdevbandwidthtest_SOURCES = \ - virnetdevbandwidthtest.c testutils.h testutils.c -virnetdevbandwidthtest_LDADD = $(LDADDS) $(LIBXML_LIBS) virkmodtest_SOURCES = \ virkmodtest.c testutils.h testutils.c @@ -994,12 +994,24 @@ virusbtest_SOURCES = \ virusbtest.c testutils.h testutils.c virusbtest_LDADD = $(LDADDS) +virnetdevbandwidthtest_SOURCES = \ + virnetdevbandwidthtest.c testutils.h testutils.c +virnetdevbandwidthtest_LDADD = $(LDADDS) $(LIBXML_LIBS) + virusbmock_la_SOURCES = virusbmock.c virusbmock_la_CFLAGS = $(AM_CFLAGS) virusbmock_la_LDFLAGS = -module -avoid-version \ -rpath /evil/libtool/hack/to/force/shared/lib/creation + +virnetdevbandwidthmock_la_SOURCES = \ + virnetdevbandwidthmock.c +virnetdevbandwidthmock_la_CFLAGS = $(AM_CFLAGS) +virnetdevbandwidthmock_la_LDFLAGS = -module -avoid-version \ + -rpath /evil/libtool/hack/to/force/shared/lib/creation + else ! WITH_LINUX - EXTRA_DIST += virusbtest.c virusbmock.c + EXTRA_DIST += virusbtest.c virusbmock.c \ + virnetdevbandwidthtest.c virnetdevbandwidthmock.c endif ! WITH_LINUX if WITH_DBUS diff --git a/tests/virnetdevbandwidthmock.c b/tests/virnetdevbandwidthmock.c new file mode 100644 index 0000000000000000000000000000000000000000..45eaa6e498f0383ac40482cf8dd13ff93012cebe --- /dev/null +++ b/tests/virnetdevbandwidthmock.c @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2014 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + * + * Author: Erik Skultety + */ + +#include +#include +#include + +uid_t geteuid(void) +{ + return 0; +} diff --git a/tests/virnetdevbandwidthtest.c b/tests/virnetdevbandwidthtest.c index 384991e1ead722515dbb319f64b45f64ee29bfc4..cd24442ab2abe5a62b5549769d620f67c4885ee3 100644 --- a/tests/virnetdevbandwidthtest.c +++ b/tests/virnetdevbandwidthtest.c @@ -167,4 +167,4 @@ mymain(void) return ret; } -VIRT_TEST_MAIN(mymain); +VIRT_TEST_MAIN_PRELOAD(mymain, abs_builddir "/.libs/virnetdevbandwidthmock.so")