diff options
author | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2017-09-06 11:40:45 +0530 |
---|---|---|
committer | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2017-10-12 23:36:37 +0530 |
commit | 070a3e49fdd8a6ecd5c71f6ee018ebe89ccd7a1f (patch) | |
tree | 7de0f5d48d4e408472194e369395ef563053eab5 /shadowlock.hpp | |
parent | bdb298f744cc71421f0c2e6f50254f933c6bb3cc (diff) | |
download | phosphor-user-manager-070a3e49fdd8a6ecd5c71f6ee018ebe89ccd7a1f.tar.gz phosphor-user-manager-070a3e49fdd8a6ecd5c71f6ee018ebe89ccd7a1f.zip |
Update shadow password file with new password
Change-Id: Ida7c1aba6f17ac6f006f159d08e2638808f3a54c
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
Diffstat (limited to 'shadowlock.hpp')
-rw-r--r-- | shadowlock.hpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/shadowlock.hpp b/shadowlock.hpp new file mode 100644 index 0000000..dc17b5a --- /dev/null +++ b/shadowlock.hpp @@ -0,0 +1,52 @@ +#pragma once + +#include <stdio.h> +#include <cassert> +#include <phosphor-logging/log.hpp> +#include <phosphor-logging/elog.hpp> +#include <xyz/openbmc_project/Common/error.hpp> +#include <phosphor-logging/elog-errors.hpp> +namespace phosphor +{ +namespace user +{ +namespace shadow +{ + +using InternalFailure = sdbusplus::xyz::openbmc_project::Common:: + Error::InternalFailure; +using namespace phosphor::logging; + +/** @class Lock + * @brief Responsible for locking and unlocking /etc/shadow + */ +class Lock +{ + public: + Lock(const Lock&) = delete; + Lock& operator=(const Lock&) = delete; + Lock(Lock&&) = delete; + Lock& operator=(Lock&&) = delete; + + /** @brief Default constructor that just locks the shadow file */ + Lock() + { + if (!lckpwdf()) + { + log<level::ERR>("Locking Shadow failed"); + elog<InternalFailure>(); + } + } + ~Lock() + { + if(!ulckpwdf()) + { + log<level::ERR>("Un-Locking Shadow failed"); + elog<InternalFailure>(); + } + } +}; + +} // namespace shadow +} // namespace user +} // namespace phosphor |