platform/core/security/vasum.git
8 years agoserver: file logging added to logging backends 67/47567/4
Maciej J. Karpiuk [Fri, 4 Sep 2015 14:39:29 +0000 (16:39 +0200)]
server: file logging added to logging backends

[Feature]       new logging backend support: file
[Cause]         N/A
[Solution]      one more option to logging-backend
[Verification]  try to log to file and user specified filename

Change-Id: Iae51c076c1b52439ff6388cf50b85dc14165a59e

8 years agolxcpp: Changes to the ContainerImpl class API for libConfig usage 47/47547/6
Lukasz Pawelczyk [Wed, 29 Jul 2015 11:27:25 +0000 (13:27 +0200)]
lxcpp: Changes to the ContainerImpl class API for libConfig usage

[Feature]       Changes to the ContainerImpl class API for libConfig usage.
                PersistentFileBackend for logger.
[Verification]  Build, install, run tests.

Change-Id: I3e7290df2bf42df9e067fe6734b96dcf5f3aa20b

8 years agoAdjust tests to lxc-1.1.3 63/47563/2
Dariusz Michaluk [Fri, 4 Sep 2015 11:58:47 +0000 (13:58 +0200)]
Adjust tests to lxc-1.1.3

[Feature]       Adjust tests to lxc-1.1.3
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I26d3abed39b60f5072399edcb116567d125d82f0

8 years agolxcpp: UID/GID setting in Attach 45/47545/1
Jan Olszak [Thu, 3 Sep 2015 18:50:19 +0000 (20:50 +0200)]
lxcpp: UID/GID setting in Attach

[Feature]       UID/GID setting
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Iaa83cab137df53a1391f01c0a29ef236da030aee

8 years agolxcpp: Command implementation 78/47478/4
Jan Olszak [Wed, 2 Sep 2015 15:04:45 +0000 (17:04 +0200)]
lxcpp: Command implementation

[Feature]       Base class for commands
                Attach command
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Id9ed43c145704f5d9d21f1aa210694fed1615c57

8 years agoipc: Fix critical build break in unique-id 64/47464/1
Lukasz Kostyra [Thu, 3 Sep 2015 12:47:47 +0000 (14:47 +0200)]
ipc: Fix critical build break in unique-id

[Bug]           Build break using Clang due to recently added unique-id code
[Cause]         Incorrectly used Doxygen syntax causing critical build error
[Solution]      Correct the syntax.
[Verification]  Build, install, run tests

Change-Id: Ia0194aadfcd5cdcfba90cd518d24fe733edc934b

8 years agoserver: logging-backend selection via command line. 51/47051/12
Maciej J. Karpiuk [Fri, 28 Aug 2015 13:39:41 +0000 (15:39 +0200)]
server: logging-backend selection via command line.

[Feature]       command-line option to select logging backend
[Cause]         logging backend selected in compile-time, no flexibility
[Solution]      add command-line option, select backend in runtime
[Verification]  start service with different logging options.

Change-Id: I410457521462b29d4c40995b37bbd8ea06e479b4

8 years agolxcpp: Setting up environment variables 71/47271/7
Jan Olszak [Thu, 27 Aug 2015 15:06:30 +0000 (17:06 +0200)]
lxcpp: Setting up environment variables

[Feature]       Setting up environement in attach
                Created the commands directory
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I7526f04ca48e931be75a99cdbf774b4c5fbb5c35

8 years agoChange MessageID and PeerID type to UIDs 35/46235/7
Lukasz Kostyra [Thu, 13 Aug 2015 13:29:03 +0000 (15:29 +0200)]
Change MessageID and PeerID type to UIDs

[Feature]       MessageID and PeerID are generated with UIDs - a timestamp
                and UUID pair.
[Cause]         Previously used unsigned ints might overflow and create a
                security issue.
[Solution]      Implement UID class, change MessageID and PeerID to use UID
[Verification]  Build, install, run tests

Change-Id: I493cba8e55cc9985d3b2b544b78c434d4deb4191

8 years agoFixed clang compilation errors 77/47177/2
Pawel Kubik [Mon, 31 Aug 2015 14:29:47 +0000 (16:29 +0200)]
Fixed clang compilation errors

[Feature]       Fixed clang compilation errors
[Cause]         C++ flags were being passed to the C compiler
[Solution]      Pass C++ flags to the C++ compiler only
[Verification]  Build using clang

Change-Id: Ie9c7abfaea0ef47381bc045353d1ea3724a19671

8 years agoMove ccolor to common/utils 78/47178/3
Pawel Kubik [Mon, 31 Aug 2015 10:34:44 +0000 (12:34 +0200)]
Move ccolor to common/utils

[Feature]       Move ccolor.hpp and ccolor.cpp from libs/logger to common/utils
[Cause]         ccolor should be available to the CLI without logger as dependency
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Ic16301b30bd90e60300e243ee8b2dac309eadfac

8 years agoFix GetNetdevAttrs test 47/47047/2
Dariusz Michaluk [Thu, 27 Aug 2015 15:32:21 +0000 (17:32 +0200)]
Fix GetNetdevAttrs test

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I75ba46b0a923622e07d857535496615ac1708ce3

8 years agoRefactored logging code. 20/46920/14
Pawel Kubik [Tue, 25 Aug 2015 08:30:03 +0000 (10:30 +0200)]
Refactored logging code.

[Feature]       Improved logging messages
[Cause]         Inconsistent logging messages on different loggers
[Solution]      Unified logging messages
[Verification]  Build, install, run tests

Change-Id: I7424733e97a4081707f64c3c4256021c560c7cfc

8 years agolxcpp: add all required objects to lxcpp.so, add test executable 44/47044/4
Krzysztof Dynowski [Fri, 28 Aug 2015 10:52:51 +0000 (12:52 +0200)]
lxcpp: add all required objects to lxcpp.so, add test executable

[Feature]       Linking with lxcpp give unknown symbol errors
[Cause]         No requird objects in lxcpp.so
[Solution]      Add them to CMakeLists.txt, create test app
[Verification]  Build, install

Change-Id: I4dc59091ea294aa51a6201236f6fe51162459b83

8 years agoImproved CLI connection error note. 19/46919/7
Pawel Kubik [Fri, 21 Aug 2015 15:19:46 +0000 (17:19 +0200)]
Improved CLI connection error note.

[Feature]       CLI connection error note, and suggestion to launch
                vasum-server
[Cause]         Previous information was inacurate
[Solution]      Added proper error handling
[Verification]  Build, install, run cli/vsm when the server is not
                running

Change-Id: I59a4467a25ef40e6ed650485c8ac690f955e29cc

8 years agolxcpp: AttachManager and chdir 74/46874/7
Jan Olszak [Wed, 26 Aug 2015 16:42:18 +0000 (18:42 +0200)]
lxcpp: AttachManager and chdir

[Feature]       Added AttachManager for handling attaching
                It's possible to set cwd inside container.
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Ida77e56a7d4f42225554c8fe02b5794509b83ef2

8 years agolxcpp: network interface 66/46566/6
Krzysztof Dynowski [Fri, 21 Aug 2015 15:08:22 +0000 (17:08 +0200)]
lxcpp: network interface

[Feature]       Network interface for lxcpp
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Ifcf03b46662168c198a8e36c268b6856639ff52e

8 years agoAdd Doxygen libConfig documentation. 65/46865/4
Pawel Kubik [Wed, 19 Aug 2015 15:28:08 +0000 (17:28 +0200)]
Add Doxygen libConfig documentation.

[Feature]       libConfig documentation
[Cause]         Explain the library usage
[Verification]  Built HTML using generate_documentation.sh and rendered
                it in browser

Change-Id: I459756566055023f357fb2037b3409410129f53e

8 years agolxcpp: Dropping capabilities from the bounding set 68/46668/4
Jan Olszak [Mon, 24 Aug 2015 15:07:57 +0000 (17:07 +0200)]
lxcpp: Dropping capabilities from the bounding set

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Id9e351d1993b43850e6a4d2a59b9eac2b4c5d354

8 years agoAdd ascii-art logo to the readme 58/46558/3
Lukasz Pawelczyk [Fri, 21 Aug 2015 13:27:15 +0000 (15:27 +0200)]
Add ascii-art logo to the readme

[Feature]       AA logo
[Cause]         We love it
[Verification]  Look and admire

Change-Id: I1bb6181e708a9a8643d77bd860619880e4ca81a2

8 years agolxcpp: Remounting /proc and /sys on attach 41/46641/5
Jan Olszak [Mon, 24 Aug 2015 09:13:05 +0000 (11:13 +0200)]
lxcpp: Remounting /proc and /sys on attach

[Feature]       Remounting /proc /sys
                Filesystem handling functions
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I8015b7a66c1fabab9133ad360e9e7a45c069082c

8 years agolxcpp: Simple attach implementation 40/46340/8
Jan Olszak [Tue, 18 Aug 2015 10:02:12 +0000 (12:02 +0200)]
lxcpp: Simple attach implementation

[Feature]       Running code in the container's context
                Socketpair wrapper - Channel
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Ib5b1011c5f8578ab9e258bcbea3cd7aa3bc233a3

8 years agovsm: update network related help, formating changes 63/46463/2
Krzysztof Dynowski [Thu, 20 Aug 2015 14:10:52 +0000 (16:10 +0200)]
vsm: update network related help, formating changes

[Feature]       clarify help for net-create command
[Cause]         poor help on how to create virtual network
[Solution]      extend description format, inerpretation
[Verification]  Build, install, run vsm net-create help

Change-Id: I09b877d090607fb9f8d3c5b367f6f6b2d1a7ed85

8 years agovsm: make vsm> prompt, finish prompt line on exit in interactive mode 42/46342/2
Krzysztof Dynowski [Wed, 19 Aug 2015 10:51:22 +0000 (12:51 +0200)]
vsm: make vsm> prompt, finish prompt line on exit in interactive mode

[Feature]       'vsm>' prompt, new line when exit
[Cause]         prompt gives clear info what is the interpreter
[Solution]      N/A
[Verification]  Build, install, use vsm command

Change-Id: Ic5b6751dbebc38d204565311380d6459448d25a0

8 years agovsm: persistant history of entered commands in interactive mode 22/46322/4
Krzysztof Dynowski [Fri, 7 Aug 2015 09:05:14 +0000 (11:05 +0200)]
vsm: persistant history of entered commands in interactive mode

[Feature]       Keep history of entered commands (in ~/.vsm_history file)
[Cause]         No history after starting vsm
[Solution]      use read_history/write_history from readline library
[Verification]  Build, install, use vsm command

Change-Id: I107ba49ac01d52825312416a11fbb094735401af

8 years agoSupport getting list of ip/mask for one interface, change netdev_set_ip* to netdev_ad... 29/45029/5
Krzysztof Dynowski [Thu, 30 Jul 2015 12:04:25 +0000 (14:04 +0200)]
Support getting list of ip/mask for one interface, change netdev_set_ip* to netdev_add_ip*

[Feature]       Get list of configured ip/mask for zone interface
[Cause]         Many ip/mask entries can be assigned to one interface
[Solution]      Implement generic method getting list of network addresses
[Verification]  Build, install, use vsm net-add-ip to add ips
                vsm net-list to get configured ips

Change-Id: I8d4c1b59e03800aa513811992cc13e71df8d599e

8 years agoCleanup cppcheck statistics 58/45358/6
Krzysztof Dynowski [Fri, 31 Jul 2015 13:01:38 +0000 (15:01 +0200)]
Cleanup cppcheck statistics

[Feature]       N/A
[Cause]         Cppcheck results reported on jenkins contains error/warning messages
[Solution]      Make code correction to satisfy cppcheck,
                add cppcheck configuration to suppress some messages (e.g. API funcs)
[Verification]  Have installed cppcheck >= v1.66
                Perform ./tests/cppcheck/cppcheck.sh script before commiting to review

Change-Id: Ice10bbc118ab921feb9cb7261d4a2bdc22282353

8 years agolxcpp: fix linking of 3rd party binaries with lxcpp 82/45282/3
Lukasz Pawelczyk [Tue, 4 Aug 2015 10:17:23 +0000 (12:17 +0200)]
lxcpp: fix linking of 3rd party binaries with lxcpp

[Feature]       N/A
[Cause]         To be finally able to link with lxcpp of 3rd party code
[Solution]      N/A
[Verification]  Link non-vasum program against liblxcpp

Change-Id: I218756ace9d9217db87d3e19b820d35653a22153

8 years agoInputMonitor connected to epoll dispatcher 85/44785/7
Mateusz Malicki [Mon, 27 Jul 2015 15:28:22 +0000 (17:28 +0200)]
InputMonitor connected to epoll dispatcher

[Feature]       InputMonitor connected to epoll dispatcher
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run tests

Change-Id: If2bdcd8c8493bc22357aa93b43b5c6e530c954d4

8 years agoAdd daemonize function to work in the background. 71/44871/12
Dariusz Michaluk [Tue, 28 Jul 2015 13:55:25 +0000 (15:55 +0200)]
Add daemonize function to work in the background.

[Feature]       Add daemonize function to work in the background.
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run tests, run server as daemon.

Change-Id: Ie8987ac4d23ac350ab6036c476ade47436afbe69

8 years agolxcpp: Added utils sources 10/45110/3
Jan Olszak [Fri, 31 Jul 2015 15:11:16 +0000 (17:11 +0200)]
lxcpp: Added utils sources

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Link only against liblxcpp

Change-Id: I7e9d32fc502a068dd9c50e5e45ab3ed07756f815

8 years agoFix lxcpp tests 12/45212/2
Dariusz Michaluk [Mon, 3 Aug 2015 13:52:58 +0000 (15:52 +0200)]
Fix lxcpp tests

[Bug]           N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: Idf5939f96ffb6af7380cfc5fe216361b53402801

8 years agolxcpp: setns wrapper 34/45034/6
Jan Olszak [Wed, 29 Jul 2015 13:06:02 +0000 (15:06 +0200)]
lxcpp: setns wrapper

[Feature]       Added setns wrapper
                Added Namespace type
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: Ib07374bb07183dba604053139d624bdf2a850268

8 years agoAdd test for Lock/UnlockQueue API 20/44920/4
Lukasz Kostyra [Tue, 28 Jul 2015 07:42:48 +0000 (09:42 +0200)]
Add test for Lock/UnlockQueue API

[Feature]       Test for Lock/UnlockQueue API
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Id8a88af8459a63e61db06668d4b4a57b2578b4e2

8 years agoMake vasum-cli arguments shorter/nicer with autocomplete, rename tool vasum-cli to vsm 12/44612/23
Krzysztof Dynowski [Thu, 23 Jul 2015 14:27:57 +0000 (16:27 +0200)]
Make vasum-cli arguments shorter/nicer with autocomplete, rename tool vasum-cli to vsm

[Feature]       Shorter and nicer arguments for command line tool
[Cause]         Messy underscore, too many commands
[Solution]      More generic commands, shorter, easier to enter names
[Verification]  Build, install, use vsm with various arguments
                Try autocompletion for arguments

Change-Id: I2e8d1bff3a5dcf96df1250b29b8df55c8f23171d

8 years agoFix pkg-config files from returning wrong relative paths. 15/44915/2
Lukasz Pawelczyk [Wed, 29 Jul 2015 10:03:08 +0000 (12:03 +0200)]
Fix pkg-config files from returning wrong relative paths.

[Bug]           The pkg-config files were using wrong relative paths
[Cause]         CMAKE_INSTALL_* variables are relative, cmake could handle
                them internally for INSTALL and similar, but for
                pkgconfig understands them literally.
[Solution]      Use absolute paths everywhere.
[Verification]  Check the content of *.pc files after make install.

Change-Id: I2a14d0f9ddc45238be7e8d487d186df1877730bd

8 years agolxcpp: Added logger, tests and changed exceptions 65/44865/6
Jan Olszak [Tue, 28 Jul 2015 11:12:10 +0000 (13:12 +0200)]
lxcpp: Added logger, tests and changed exceptions

[Feature]       Using libLogger in lxcpp in an example clone function.
                Set up unit-tests
                Changed exception names
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: I039bf3e17d791ccf1a18f17a9b2a180ee2081722

8 years agoRemove debug logs in release build. 83/44783/2
Dariusz Michaluk [Mon, 27 Jul 2015 14:45:35 +0000 (16:45 +0200)]
Remove debug logs in release build.

[Bug]           Remove debug logs in release build.
[Cause]         N/A
[Solution]      N/A
[Verification]  Build release/debug, run server.

Change-Id: Id34991a45e0fbee8edddfea10b64f69809141af3

8 years agoHide VsmZone and VsmNetdevType structs from API 48/44748/4
Lukasz Pawelczyk [Mon, 27 Jul 2015 09:20:37 +0000 (11:20 +0200)]
Hide VsmZone and VsmNetdevType structs from API

[Feature]       N/A
[Cause]         Make it easier to change them in the future without
                breaking the ABI. Also remove duplicate related API
                function from the code.
[Solution]      N/A
[Verification]  N/A

Change-Id: Ib0ec7374ee0f94cd88e2998e9d10f18ae094ee98

8 years agoAdded lxcpp's license 81/44781/4
Jan Olszak [Mon, 27 Jul 2015 13:23:38 +0000 (15:23 +0200)]
Added lxcpp's license

[Feature]       lxcpp is on LGPL 2.1 license
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: Ia1916f4ba8ea815467ea958020db401f46cfa5cb

8 years agoVarious changes relating to build on Ubuntu and Fedora Linux. 91/44191/8
Dariusz Michaluk [Fri, 17 Jul 2015 13:27:57 +0000 (15:27 +0200)]
Various changes relating to build on Ubuntu and Fedora Linux.

[Bug/Feature]   Various changes relating to build on Ubuntu and Fedora Linux.
[Cause]         N/A
[Solution]      N/A
Verification]   Build, run server, run tests.

Change-Id: Ie9f8c05a0de96b0dc07d506657a48f6dd1b074b4

8 years agolxcpp skeleton 13/44613/8
Mateusz Malicki [Thu, 23 Jul 2015 13:48:09 +0000 (15:48 +0200)]
lxcpp skeleton

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: I1950967edc720ad9b81301daa4e1b60ff8c3b41d

8 years agoFix build break 32/44732/1
Dariusz Michaluk [Mon, 27 Jul 2015 07:41:42 +0000 (09:41 +0200)]
Fix build break

[Bug]           C++ style comments are not allowed in ISO C90
[Cause]         N/A
[Solution]      N/A
[Verification]  Build

Change-Id: Iab690af9fc085c0707aacb83b901c3efde5ae638

8 years agoFix build break in clang 72/44672/2
Jan Olszak [Fri, 24 Jul 2015 12:28:35 +0000 (14:28 +0200)]
Fix build break in clang

[Feature]       N/A
[Cause]         No new line in vasum-client.h
[Solution]      N/A
[Verification]  N/A

Change-Id: Ic4cf72d42a173edeb0a6d450c1f2aad12bb22a59

8 years agoAdded libvasum-client's documentation 57/44657/2
Jan Olszak [Fri, 24 Jul 2015 09:25:51 +0000 (11:25 +0200)]
Added libvasum-client's documentation

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  ./generate_documentation.sh and verify

Change-Id: I9ec902cce2b29ca2d81fa8ca40db11977e0f3c3f

8 years agoClean up zones root path 95/44195/7
Mateusz Malicki [Fri, 17 Jul 2015 14:49:43 +0000 (16:49 +0200)]
Clean up zones root path

[Feature]       Clean up zones root path (according to cleanUpZonesPath flag)
[Cause]         N/A
[Solution]      Added cleanUpZonesPath to daemon.conf which tells whether
                to remove unknown files from the zonesPath;
                Added (vsm_)clean_up_zones_root to cli and client
[Verification]  Build, install, create files in zonesPath,
                run vasum-server with different flag value, check if
                zonesPath is as it should; execute command

Change-Id: I64a1656ef05ccd5fd7e83a48cd50234e2e6bd4b4

8 years agoAdded libLogger's documentation 04/44604/3
Jan Olszak [Thu, 23 Jul 2015 12:28:21 +0000 (14:28 +0200)]
Added libLogger's documentation

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  ./generate_documentation.sh and verify

Change-Id: I53a75f358e0e9182f51334544cb5da9722182cf9

8 years agoModify generate_documentation.sh 43/44543/2
Lukasz Kostyra [Thu, 23 Jul 2015 06:06:23 +0000 (08:06 +0200)]
Modify generate_documentation.sh

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Run script, output html dir should be in doc directory.
                Run without doxygen installed, should exit with an error message.

Change-Id: Ibfc0026da771ba1415f034ce8e81eaeb1deab0c2

8 years agoEnable file path stripping in Doxygen 97/44497/2
Lukasz Kostyra [Wed, 22 Jul 2015 13:34:12 +0000 (15:34 +0200)]
Enable file path stripping in Doxygen

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  ./generate_documentation.sh, access file's doc and check page title

Change-Id: I9f05262a5ec73327492aad722b15393335fc46c1

8 years agoFix Doxygen warnings 94/44494/3
Lukasz Kostyra [Mon, 20 Jul 2015 11:18:41 +0000 (13:18 +0200)]
Fix Doxygen warnings

[Bug]           Doxygen warnings during documentation generation.
[Cause]         Some docblocks were incomplete.
[Solution]      Fix warnings.
[Verification]  Build, run tests, ./generate_documentation.sh. During doc
                generation there will be warnings related to
                command-line-interface.hpp stating "no matching file memeber".
                This is a Doxygen bug and the only possible fix is to
                replace Args typedef with std::vector<std::string>.

Change-Id: I1523dc83a5f5e9902e5983ac5b95497d61f71cfc

8 years agoMain page in Markdown format 95/44495/3
Jan Olszak [Wed, 22 Jul 2015 13:18:09 +0000 (15:18 +0200)]
Main page in Markdown format

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  ./generate_documentation.sh and verify

Change-Id: I6b4f55de7f48bb66b3dd40a2313b6137919f028f

8 years agoAdded favicon to the documentation 81/44481/2
Jan Olszak [Wed, 22 Jul 2015 11:59:22 +0000 (13:59 +0200)]
Added favicon to the documentation

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  ./generate_documentation.sh and verify

Change-Id: I12145caf7a4e303dc51472ea1cb01a928561c8d7

8 years agoDispatching in the main thread 70/44170/6
Jan Olszak [Tue, 14 Jul 2015 12:59:32 +0000 (14:59 +0200)]
Dispatching in the main thread

[Feature]       Removed Server's ThreadDispatcher
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I100f8b370baeca78cbfcfdc803e360ebc40fd0ca

8 years agoUpdate Doxy CSS 53/44253/3
Lukasz Kostyra [Tue, 14 Jul 2015 13:37:18 +0000 (15:37 +0200)]
Update Doxy CSS

[Feature]       Doxy CSS updated with our custom documentation pages layout.
[Cause]         More eye-pleasant CSS needed.
[Solution]      Manually fix previously extracted CSS.
[Verification]  Generate docs and see if they are OK.

Change-Id: Ia88865ec399fee8e336a2c7e9bf74546d659f61d

8 years agoUpdate doxygen.cfg file, extract its HTML/CSS files 52/44252/3
Lukasz Kostyra [Tue, 14 Jul 2015 08:22:32 +0000 (10:22 +0200)]
Update doxygen.cfg file, extract its HTML/CSS files

[Feature]       Doxygen cfg file was updated to 1.8.6
[Cause]         Warnings during parsing
[Solution]      Upgraded doxygen cfg with doxygen -u
[Verification]  Generate documentation - no warnings related to deprecated
                doxygen.cfg parameters should occur (these appeared at the very
                beginning of parsing; keep in mind - Vasum comments do produce
                warnings and will be fixed further on).

The commit additionally extracts default HTML header and footer, and default
CSS schema. These are kept in doc folder together with doxygen.cfg. Doxygen was
set up to use these files when generating documentation.

Change-Id: Ie8f78f0617e42de5bcaa6ce75b46cb436d3c8fd3

8 years agoAdded file and syslog backends 72/44072/8
RomanKubiak [Thu, 16 Jul 2015 11:43:08 +0000 (13:43 +0200)]
Added file and syslog backends

[Feature]      New logger backends (file and syslog)
[Cause]        N/A
[Solution]     N/A
[Verification] Build, install, run tests

Change-Id: I0de1f4e121ca5ff24b5a0f148015afda7dc9e503

8 years agoIPC: Cleaned up EventPoll usage 83/44283/2
Jan Olszak [Mon, 20 Jul 2015 13:02:46 +0000 (15:02 +0200)]
IPC: Cleaned up EventPoll usage

[Feature]       Adding and removing fds to EventPoll
                is guarded internaly by Processor and Acceptor
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I97999591b6c586159698f4f0231740c3c52d5cc5

8 years agoAdd console_zone to cli 59/43859/6
Dariusz Michaluk [Tue, 23 Jun 2015 15:11:13 +0000 (17:11 +0200)]
Add console_zone to cli

[Feature]       Launch a console for the specified zone.
[Cause]         N/A
[Solution]      Add console_zone to cli.
[Verification]  Build, run server,
                vasum-cli create/start/console/shutdown zone.

Change-Id: I093837d6807931163321812a2bcba467a5a9f27e

8 years agoFix: cli: error handling 62/43962/2
Mateusz Malicki [Wed, 15 Jul 2015 14:26:20 +0000 (16:26 +0200)]
Fix: cli: error handling

[Bug]           Not all errors are propagated up
[Cause]         Not all errors has non empty status message
[Solution]      Throw exception regardless of the status messages
[Verification]  Build, install, run vasum-cli

Change-Id: Idcbfdf519f1834b9046d3cdd59a7293cae629e3f

8 years agoIgnoring SIGTERM 48/43948/2
Jan Olszak [Wed, 15 Jul 2015 12:54:10 +0000 (14:54 +0200)]
Ignoring SIGTERM

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: Ib81c67dc0738db5ef4713d6d8b2c2376a8323800

8 years agoSupport vasum-cli to be a script interpreter (2/2) 99/43599/7
Mateusz Malicki [Fri, 10 Jul 2015 12:08:06 +0000 (14:08 +0200)]
Support vasum-cli to be a script interpreter (2/2)

[Feature]       vasum-cli as script interpreter
[Cause]         n/a
[Solution]      file/pipe processing
[Verification]  Build, run vasum-cli script,
                vasum-cli -f script, cat script|vasum-cli

Change-Id: Ib2a1e4fc5fbecdac206063b6d3dd2a95b5923196

8 years agoSupport vasum-cli to be a script interpreter (1/2) 68/42768/10
Krzysztof Dynowski [Wed, 1 Jul 2015 15:29:32 +0000 (17:29 +0200)]
Support vasum-cli to be a script interpreter (1/2)

[Feature]       vasum-cli as script interpreter
[Cause]         n/a
[Solution]      file/pipe processing
[Verification]  Build, run vasum-cli script, vasum-cli -f script, cat script|vasum-cli

Change-Id: I6b8ff93fb359e429119e120d93a0851e2ae7e72e

8 years agoSignalFD tests 96/43696/7
Jan Olszak [Mon, 13 Jul 2015 08:31:03 +0000 (10:31 +0200)]
SignalFD tests

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I9dbcd567c958c66e826785f77912f60af8f521d1

8 years agoHandling signals with signalfd 87/43387/9
Jan Olszak [Tue, 7 Jul 2015 11:13:45 +0000 (13:13 +0200)]
Handling signals with signalfd

[Feature]       Synchronous signal handling
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I5a31fcb9929a3d8d36c1ea275c089412687478d5

8 years agoRemoved unused code (ZONE_CONNECTION macro) 54/42954/4
Mateusz Malicki [Mon, 6 Jul 2015 08:39:24 +0000 (10:39 +0200)]
Removed unused code (ZONE_CONNECTION macro)

[Bug]           Unused code
[Cause]         There is no connection to zone
[Solution]      Remove ZONE_CONNECTION macro and related code
[Verification]  Build

Change-Id: I805372a08ddd3507cbe6bfaeeca968560eb593e6

8 years agoMoved dispatching to Server 95/42995/4
Jan Olszak [Mon, 6 Jul 2015 09:58:10 +0000 (11:58 +0200)]
Moved dispatching to Server

[Feature]       Dispatcher can be used outside IPC.
[Cause]         Will be needed to process signalfd
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I17298da5e4758bbf0fa266bcf896f464df29c9a3

8 years agoFix method signature (add override) 85/42985/1
Mateusz Malicki [Mon, 6 Jul 2015 13:25:25 +0000 (15:25 +0200)]
Fix method signature (add override)

[Bug]           Can't compile with clang 3.6
[Cause]         Missing override in method signature
[Solution]      N/A
[Verification]  Compile with clang.

Change-Id: Iac6094321be0571ccb39bebc3e911665abd9053e

8 years agoFix doxygen comment 58/42958/1
Mateusz Malicki [Mon, 6 Jul 2015 09:41:16 +0000 (11:41 +0200)]
Fix doxygen comment

[Bug]           Can't compile with clang 3.6
[Cause]         Bad format of doxygen comment (command-line-interface.hpp)
[Solution]      N/A
[Verification]  Compile with clang.

Change-Id: If8a394d67ac37f402802a23bdf990f1ea70306d2

8 years agoInteractive mode and other improvements to vasum-cli tool 65/42065/8
Lukasz Pawelczyk [Mon, 22 Jun 2015 12:03:15 +0000 (14:03 +0200)]
Interactive mode and other improvements to vasum-cli tool

[Feature]       These features have been implemented/updated:
                - interactive mode
                - persistent connection during interactive mode
                - better help
                - simple mode for cli auto-completion
                The interactive mode allows to make full use of queue
                lock/unlock commands. They can also be easily tested
                with it.
[Cause]         n/a
[Solution]      n/a
[Verification]  Run vasum-cli and executed several commands.
                Tested auto completion. Tested lock/unlock queue.

Change-Id: If623559c9250bf480cc600ba89c2d5fe02137a18

8 years agoAdjust to coding style rules 28/42528/4
Krzysztof Dynowski [Mon, 29 Jun 2015 14:13:12 +0000 (16:13 +0200)]
Adjust to coding style rules

[Feature]       package includes in double quotes
[Cause]         n/a
[Solution]      replace tiangle brackets to double quotes
[Verification]  Build

Change-Id: I7fc5815a3213566172dc8561240f463d610e48ea

8 years agoVarious changes relating to Fedora Linux support. 68/42068/9
Dariusz Michaluk [Mon, 22 Jun 2015 08:59:52 +0000 (10:59 +0200)]
Various changes relating to Fedora Linux support.

[Bug/Feature]   Fix vasum-cli create_zone (add zone template name parameter).
                Default zone template depends on target platform.
                Create zones data directory.
                Add fedora zone template.
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests, run daemon,
                create/start/shutdown/destroy zone.

Change-Id: I63b4b6a60c85b826492e13d016f67e489cefb36c

8 years agoImplement a Lock/Unlock Queue API calls. 74/41874/7
Lukasz Pawelczyk [Thu, 18 Jun 2015 13:21:38 +0000 (15:21 +0200)]
Implement a Lock/Unlock Queue API calls.

[Feature]       Calls that make it possible to lock a queue exclusively
                to one client (IPC/DBUS) which can then order few calls
                in a row with a guarantee that no other client will
                interrupt.
[Cause]         n/a
[Solution]      n/a
[Verification]  Built, installed, run tests. Also see below.

Additional features implemented in this commit to support the above:
- DBus client disconnected notification. Adds a new callback to
  registerObject() that's called when a client that previously talked to
  the server gets disconnected.
- ZoneManager level client disconnect notification using the
  aforementioned DBus and already implemented IPC functionalities.
- Changed SwitchToDefault from signal to a method so we can return an
  error code when the queue is locked.
- MethodResultBuilder's getID() call that returns ipc independent
  identifier that client connections can be identified with (using
  getPeerID and getPeerName from IPC and DBus specific classes
  respectively).
- mGuard fixed in the DbusConnection class. Now it really does protect
  mConnection and mNameID as well as newly introduced mWatchedClients.
- Various half-related fixes/changes here and there (whitespaces,
  duplicate definition of PROXY_CALL in the DBus interface, etc).

There are no tests in this commit for the DBus features and the
Lock/Unlock queue. They will follow in the later commits.

To somewhat test the disconnect notifications (both, DBus level and
ZoneManager level) one can connect to the server using appropriate APIs
and watch the DEBUG/TRACE logs. This can be achieved using the following
commands:

$ dbus-send --system --dest=org.tizen.vasum.host \
            --type=method_call --print-reply \
            /org/tizen/vasum/host \
            org.tizen.vasum.host.manager.GetZoneIds
$ vasum-cli get_zone_ids

WARNING: this commit breaks API/ABI of libSimpleDbus

Change-Id: Ic0ed2371e563c34340ad41d66dd943a1abc8eb48

8 years agoOptimization turned off when compiling with coverage support 31/42231/3
Mateusz Malicki [Wed, 24 Jun 2015 14:38:03 +0000 (16:38 +0200)]
Optimization turned off when compiling with coverage support

[Feature]       Better coverage report
[Cause]         Optimization can broke coverage report
[Solution]      Turn off optimization
[Verification]  Build with 'CCOV' target, run, generate report

Change-Id: I13f04d16f6292e5def30a6af75c5fcbc5038fde1

8 years agoWrapper: send/recv socket fd - based on public domain code 87/42287/1
Krzysztof Dynowski [Thu, 25 Jun 2015 08:52:35 +0000 (10:52 +0200)]
Wrapper: send/recv socket fd - based on public domain code

[Bug/Feature]   Protex reported copy of code from LXC sources
[Cause]         Copied from vasum old api
[Solution]      Follow public domain examples from "Unix Network Programming"
[Verification]  Next protex report

Change-Id: I13163a3e0ef68d816ad194e515cab28629a7291f

8 years agoFix Klocwork issues 09/42109/1
Lukasz Kostyra [Tue, 23 Jun 2015 09:28:51 +0000 (11:28 +0200)]
Fix Klocwork issues

[Bug]           Issues reported by Klocwork
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, install, run tests

Change-Id: I745cccedceff96fc3b1f475da4308f17775a6d24

8 years agoCheck vasum runtime - rename vasum-check-env to vasum-check-config 98/41998/1
Krzysztof Dynowski [Fri, 19 Jun 2015 12:49:30 +0000 (14:49 +0200)]
Check vasum runtime - rename vasum-check-env to vasum-check-config

[Bug/Feature]   naming convention
[Cause]         N/A
[Solution]      rename
[Verification]  N/A

Change-Id: I6fb89a9378da7d4c04c0cae74935fdf67df5d3d6

8 years agoFinish CreateFile API 79/41579/6
Lukasz Kostyra [Tue, 16 Jun 2015 10:56:18 +0000 (12:56 +0200)]
Finish CreateFile API

[Feature]       N/A
[Cause]         Missing API
[Solution]      Add missing functions in ZonesManager and in Communication
[Verification]  Build, install, run tests

Change-Id: I417e1deeca2effcdb772189045263d0c9dd22de7

8 years agoAdd wrapper for lxc-fedora template 97/41597/5
Dariusz Michaluk [Tue, 16 Jun 2015 12:39:42 +0000 (14:39 +0200)]
Add wrapper for lxc-fedora template

[Feature]       Add wrapper for lxc-fedora template
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, create/start/shutdown/destroy zone.

Change-Id: Iaa071f19dedfb7406d576858d8c7be2600b1e077

8 years agoDon't print LOGS messages when log level is greater than TRACE 13/41813/2
Dariusz Michaluk [Thu, 18 Jun 2015 07:43:58 +0000 (09:43 +0200)]
Don't print LOGS messages when log level is greater than TRACE

[Bug]           LOGS messages was always printed
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run `vasum-server -r` and `vasum-server -r -l TRACE`

Change-Id: Iec4fdd5d40a3920a51afae0a687387cb71b85ea2

8 years agoVasum's logo and icons 84/41784/1
Jan Olszak [Wed, 17 Jun 2015 11:25:08 +0000 (13:25 +0200)]
Vasum's logo and icons

[Bug]           N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: I65f0288aa398674b4c1307f9f52255218caf7922

8 years agoRemove HostIpcConnection class 44/40844/5
Mateusz Malicki [Tue, 9 Jun 2015 14:14:42 +0000 (16:14 +0200)]
Remove HostIpcConnection class

[Bug]           Unnecessary HostIpcConnection class (ipc wrapper)
[Cause]         N/A
[Solution]      N/A
[Verification]  run ClientSuite tests

Change-Id: Ic2a3973593e3bec1d64715976c44ec460f66ee21

8 years agoAdd vsm_get_event_fd and vsm_enter_eventloop 35/40435/7
Mateusz Malicki [Wed, 3 Jun 2015 13:58:18 +0000 (15:58 +0200)]
Add vsm_get_event_fd and vsm_enter_eventloop

[Feature]       Provide possibility to implement custom event loop for
                user of vasum client library
[Cause]         Integration with other services
[Solution]      Possibility to fetch event fd and run event loop
[Verification]  run ClientSuite tests

Change-Id: Ic47e5de8bfd09889330d97d35d4c9ef47f238953

8 years agoCreate File in LxcZone 11/41211/9
Jan Olszak [Mon, 8 Jun 2015 14:17:16 +0000 (16:17 +0200)]
Create File in LxcZone

[Feature]       Create files in zones
                Pass file descriptors to those files
                Api definition
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run all tests

Change-Id: I9780b8922fac2548bae642b0e732dd96998996ab

8 years agoUnlock the latch even in the case of an exception 54/41454/2
Lukasz Pawelczyk [Mon, 15 Jun 2015 11:52:25 +0000 (13:52 +0200)]
Unlock the latch even in the case of an exception

[Feature]       N/A
[Cause]         If an exception is thrown during execute() the calling
thread's latch will never be unlocked.
[Solution]      Unlock the latch after the whole try/catch.
[Verification]  Built, installed, run tests

Change-Id: I2891d83f4f3459a2d2d60cdc4d2986e37894c959

8 years agoCheck vasum runtime environment, provide utility to check kernel config 26/40426/10
Krzysztof Dynowski [Wed, 3 Jun 2015 12:45:26 +0000 (14:45 +0200)]
Check vasum runtime environment, provide utility to check kernel config

[Bug/Feature]   check vasum enviroment and kernel config
[Cause]         N/A
[Solution]      server option to check runtime, script based on lxc-checkconfig
[Verification]  Build, install on target, run server and script

Change-Id: I28b6982694e7918cad31e59cee35b5872e554246

8 years agoMake all the API calls queue together so we guarantee order 96/40996/4
Lukasz Pawelczyk [Wed, 10 Jun 2015 16:27:02 +0000 (18:27 +0200)]
Make all the API calls queue together so we guarantee order

[Bug]           Some API calls were async hence the sync ones could have
                been run before them. There was no guarantee for the
                calls to be ordered the way they've been requested.
[Cause]         N/A
[Solution]      Add sync calls to the same queue as the async ones so we
                can guarantee their order of execution.
[Verification]  Built, installed, run tests.

Change-Id: Iab59552d46689fb86576539012004107f4e675b3

8 years agoRemove ZoneAdmin class 84/40984/3
Lukasz Kostyra [Wed, 10 Jun 2015 11:25:25 +0000 (13:25 +0200)]
Remove ZoneAdmin class

[Feature]       Removed ZoneAdmin class
[Cause]         Unneeded layer between Zone class and LXC Zone
[Solution]      Remove ZoneAdmin class, move its functionality to Zone class
[Verification]  Build, install, run tests

Change-Id: Id539ee2596c948f4cac6a0b9dff198d3d2b42c75

8 years agoFix for responding to a first request after socket activation 46/40846/4
Lukasz Pawelczyk [Tue, 9 Jun 2015 15:30:14 +0000 (17:30 +0200)]
Fix for responding to a first request after socket activation

[Bug]           When socket activated the first request might not be
                properly handled because all the callback might not have
                registered yet.
[Cause]         N/A
[Solution]      Delayed handling requests until all the callbacks have
                been registered.
[Verification]  Built, installed, run tests.
Did several tries with triggering socket activation:
                1. systemctl start vasum.service
2. vasum-cli create_zone test
3. systemctl stop vasum.service
                4. vasum-cli get_zone_ids
                5. observe no error and list of zones should show 'test'
                6. goto 3

Change-Id: I6de9742959d32afe68f496246065d3befc823955

8 years agoRemove unused function 55/40955/1
Mateusz Malicki [Wed, 10 Jun 2015 10:11:56 +0000 (12:11 +0200)]
Remove unused function

[Bug]           Compile error
[Cause]         capget is static unused function
[Solution]      Remove capget
[Verification]  Compile with clang

Change-Id: I3fb8e4b3de7f4bf4a02d3cb1c96009c3beb262c7

8 years agoFix bash completion in case of user grep color aliases 39/40839/2
Lukasz Pawelczyk [Tue, 9 Jun 2015 13:18:29 +0000 (15:18 +0200)]
Fix bash completion in case of user grep color aliases

[Bug]           Mitigate user grep aliases that use colors
[Cause]         N/A
[Solution]      Add --color=never to grep
[Verification]  Checked that bash completion works

Change-Id: Ifffaf2e931f1cd573c6629a1932aca28b924509a

8 years agoFix CMake variables 22/40822/4
Lukasz Kostyra [Tue, 9 Jun 2015 08:55:03 +0000 (10:55 +0200)]
Fix CMake variables

[Bug]           * systemd service/socket files should be in /usr/local/lib, while
                  compiled libraries should reside in /usr/local/lib64 on 64-bit
                  systems.
                * Two sockets were created - one by systemd service, one by vasum
                  IPC mechanisms.
[Cause]         N/A
[Solution]      Rename vasum-ipc.socket to vasum.socket
                Correct variables regarding library and systemd file locations
[Verification]  Build, install, run tests, run vasum-cli, check file locations and
                service files.

Change-Id: I54681eaebd00b1aec547617a2ea51b0675c24ec3

8 years agoRemove useless callback layer from Host*Connection 36/40736/3
Lukasz Kostyra [Tue, 26 May 2015 06:52:19 +0000 (08:52 +0200)]
Remove useless callback layer from Host*Connection

[Bug]           Host*Connection classes had redundant callback layer.
[Cause]         N/A
[Solution]      Make Host*Connection objects aware of ZonesManager.
                Remove unneeded callbacks.
[Verification]  For both with and without Dbus:
                  * Build
                  * Run tests
                  * Make sure, that vasum-cli works

Change-Id: I8fd76d279731efdf201e797f2ef7600aed355aaa

8 years agoVarious changes relating to build on Fedora Linux. 27/40427/3
Dariusz Michaluk [Fri, 29 May 2015 12:44:12 +0000 (14:44 +0200)]
Various changes relating to build on Fedora Linux.

[Bug/Feature]   Support different versions of json-c.
                Unify installation paths.
                Fix compiler warnings.
                Support different platform type in RPM spec file.
                Small changes in deamon and service configuration.
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run tests, run server on Tizen and Fedora.
                Select platform type with --define 'platform_type FEDORA or TIZEN'

Change-Id: I6ef85e9605d2069701ee68dd8e8946f0346387f5

8 years agoFile descriptor passing via IPC 68/40268/12
Jan Olszak [Mon, 1 Jun 2015 14:11:54 +0000 (16:11 +0200)]
File descriptor passing via IPC

[Feature]       FD passing via Unix socket
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run all tests

Change-Id: I1683a7e99a104d5dbdd5c0c56913753c9bdd3cf2

8 years agoRemoved Glib connected functions from API 36/40336/1
Jan Olszak [Tue, 2 Jun 2015 12:16:43 +0000 (14:16 +0200)]
Removed Glib connected functions from API

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  Build, run all tests

Change-Id: I3fe5e789535fcb53ee5d223172cb63bd44fb962c

8 years agoSmall documentation for github 21/40021/2
Jan Olszak [Wed, 27 May 2015 16:48:47 +0000 (18:48 +0200)]
Small documentation for github

[Feature]       N/A
[Cause]         N/A
[Solution]      N/A
[Verification]  N/A

Change-Id: Ia7beba020ae92619e3639ee70af65794d2b662a1

8 years agoFix configuration script permissions 06/40006/2
Jan Olszak [Wed, 27 May 2015 13:30:33 +0000 (15:30 +0200)]
Fix configuration script permissions

[Feature]       N/A
[Cause]         N/A
[Solution]      LXC templates have x permission
[Verification]  Build, run all tests

Change-Id: I6a2486a588f8a28dfe84f187a4889f0f9500e2a6

8 years agoVasum wrapper #8: implement socket related functions, obsolete vasum-daemon 60/39860/6
Krzysztof Dynowski [Mon, 25 May 2015 11:13:32 +0000 (13:13 +0200)]
Vasum wrapper #8: implement socket related functions, obsolete vasum-daemon

[Bug/Feature]   socket not opens, rpm install conflict
[Cause]         N/A
[Solution]      #8 implement socket creation, etc.
[Verification]  Build, install on target, check journal

Change-Id: I2c6dd5e40a08bda3722167c4e1f06b60bb53e7dc

8 years agoRemove libcap_ng and replace it with syscalls 50/39550/5
Lukasz Kostyra [Wed, 6 May 2015 10:16:49 +0000 (12:16 +0200)]
Remove libcap_ng and replace it with syscalls

[Feature]       libcap_ng is removed
[Cause]         N/A
[Solution]      Replace libcap_ng with syscalls
[Verification]  Build, install, run vasum-server without root and check if all
                needed capabilities were kept by the process.

Change-Id: Idab4c7b579c6541d941e8c9e9c792427428f8fe5

8 years agoFix GetZoneIdByPidTestMultiple, GrantRevoke 80/39680/3
Mateusz Malicki [Tue, 19 May 2015 16:38:11 +0000 (18:38 +0200)]
Fix GetZoneIdByPidTestMultiple, GrantRevoke

[Feature]       GetZoneIdByPidTestMultiple, GrantRevoke some times fails
[Cause]         Timeout was too small
[Solution]      Increase timeout
[Verification]  Build, install, run tests

Change-Id: Id191c1a6443e19f729dfc90c9a3c8c34dc4166e3