Commit Graph

38 Commits

Author SHA1 Message Date
6940a6717a user: Cleanup/refactor ipmi_user_password()
Get rid of magic numbers, fix some formatting, drop unneeded checks.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2019-09-03 23:40:48 +03:00
51a2ab8180 user: Improve password length handling
No longer truncate passwords (16 < p <= 20) silently, instead attempt
to set a 20-char password when such a password is given.
Fail if an explicit length is exceeded, and any time the upper limit
is exceeded.
2019-09-03 23:40:48 +03:00
af062a9a5e user: Alter "set password" usage information
This changes the usage string to match reality and note that [<16|20>]
is an optional argument to set password.
2019-09-03 23:40:48 +03:00
e9716e216d Refactoring: optimize pointer checks
Remove all direct comparisons to 'NULL' for pointers.
Replace them with boolean-like 'if (ptr)' and 'if (!ptr)'.
This makes conditions shorter and easier to read.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2018-08-21 17:30:25 +03:00
9ecfb762bd Refactoring: get rid of superfluous comparisons
Make code better readable by replacing `if (rsp->ccode > 0)`
and 'if (rsp->ccode != 0)' with just `if (rsp->ccode)` as
rsp->ccode is anyway an unsigned byte and can't be negative.
Also replace 'if (rsp->ccode == 0)' with 'if (!rsp->ccode)'.

All these changes make lines shorter and easier to read as
a non-zero ccode is an indication of some failure, and so !ccode
naturally reads as 'no error'.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
2018-08-21 11:55:03 +03:00
6ee52071dd Refactoring. Remove useless feature test macros.
There are lots of feature test macros like _POSIX_SOURCE,
_BSD_SOURCE, etc. chaotically placed at the beginning of
multiple files without apparent reason, sometime purely
erroneously.

This commit removes them all for the sake of cleaner code.

No new warnings are added due to that at least for gcc 5.4
on Linux with glibc 2.23.
2018-07-25 15:58:00 +03:00
432f06db3f Replace user_id masks with a macro (#8)
In multiple places throughout ipmi_user.c a user id mask
was used as a magic number, in some places the mask was wrong.
This commit replaces all those magic numbers with a single
IPMI_UID() macro.

Resolves ipmitool/ipmitool#6
2018-05-30 18:57:20 +03:00
eb5c73c04e ID:355 - Add macros and #include and reduce number of warnings
Commit adds macros and #include in order to bring down the number of `warning:
implicit declaration of function 'X' [-Wimplicit-function-declaration]`
warnings.
2016-03-13 11:40:10 +01:00
f62b924cb4 ID:413 - Print new line chne character when setting user privilege.
The ouput sting on setting user privilege level is missing the trailing new line character.
Add the missing character.
2016-01-19 20:41:58 +01:00
8055e0d9fb ID:412 - Check errors when setting a user password.
An error which can happen when setting a user password is silently ignored.
Add a completion code check and report error if any.
2016-01-19 20:40:15 +01:00
ffeb535db8 ID:392 - _ipmi_get_user_name() work-around for some BMCs
Commit adds a work-around for some BMCs which return ccode 0xCC when user is
disabled. However, this isn't reason to stop listing users as this ccode is
perceived as being "normal".
When 0xCC is returned, empty user name will be printed instead of bailing out.
2015-10-09 20:53:24 +02:00
3412d86143 ID:391 - changing data_len from 17 to 16 according to ipmi spec 22.29, first byte is completion code 2015-09-11 06:09:49 +02:00
a98eedb272 Remove trailing white-spaces in ipmi_user.c 2015-09-11 06:09:25 +02:00
8081427543 _ipmi_set_user_password() - fix missing intf parameter in documentation 2015-01-30 13:15:36 +01:00
8f1f31cfdc Remove ipmi_user_set_password()
Commit removes ipmi_user_set_password() as it's not being used anywhere.
2015-01-30 07:53:03 +01:00
66eee40df4 Hook functions in ipmi_user to _ipmi_set_user_password()
Commit hooks functions in ipmi_user to _ipmi_set_user_password() instead of
ipmi_user_set_password().
2015-01-30 07:46:39 +01:00
a6d47ceba4 Add _ipmi_set_user_password() function
Commit adds _ipmi_set_user_password() which is implementation of (22.30) Set
User Command. Function doesn't print anything on stdout/stderr.
2015-01-30 07:33:04 +01:00
21151953a5 Move #define from ipmi_user.c to ipmi_user.h
Commit moves defines of Set User Password operations to header file.
2015-01-30 07:08:57 +01:00
12b85b3c7b Init user_access_t struct in ipmi_user_priv() 2015-01-16 20:49:06 +01:00
708be8bc45 Hook ipmi_user_priv() to _ipmi_set_user_access()
Commit hooks ipmi_user_priv() to _ipmi_set_user_access(). Later got extended for
'change_priv_limit_only', because of the former.
Commit removes ipmi_user_set_userpriv(), because it's not used anywhere.
2015-01-09 12:48:35 +01:00
d6deeb264e Hook ipmi_print_user_list() and friends to _ipmi_* functions
Commit hooks ipmi_print_user_list() and related functions to new _ipmi_*
functions. It also removes old/unused functions and user_access_rsp struct.
2015-01-09 11:40:52 +01:00
fb36c69391 ipmi_print_user_summary() to utilize _ipmi_get_user_access()
Commit changes ipmi_print_user_summary() to utilize _ipmi_get_user_access() and
user_access_t instead of user_access_rsp.
2015-01-08 21:54:41 +01:00
d099dca9c5 Fix/remove pointer cast in _ipmi_set_user_access()
Commit removes invalid pointer in _ipmi_set_user_access().
2015-01-08 21:29:30 +01:00
31f9d4c635 Add _ipmi_get_user_access() and _ipmi_set_user_access()
Commit adds reusable functions _ipmi_get_user_access() and
_ipmi_set_user_access().
2015-01-08 16:44:18 +01:00
6d1afbf3a7 Add _ipmi_get_user_name()
Commit adds function _ipmi_get_user_name() which does nothing but fetches User
Name as per 22.29. There are no print-outs when the called.
2015-01-08 16:13:51 +01:00
c97dbd3461 Fix eval logic in ipmi_user_priv()
Commit fixes bug in eval logic of user input sanitization, resp. && -> ||. Also,
priv_level and user_id variables are initialized to 0 now(CID#1261318).
2014-12-30 15:33:05 +01:00
140add9d77 Fix user input validation in Channel and User sub-commands
Commit fixes validation of user input in Channel and User sub-commands.
2014-12-22 18:21:51 +01:00
ad77da2065 ID:349 - user set password - add option to choose 16/20 byte password
Commit adds option to 'user set password' to choose whether password should be
stored as 16 byte or 20 byte. From now on, it's possible to store even 5 bytes
long password as 20 byte password which should make it useless for IPMI v1.5
auth/sessions.
2014-12-20 16:40:55 +01:00
6e6a04f971 Make user User Privilege Limit is within range
Despite the fact we could leave this up to IPMI stack, we won't do that.
Therefore, is_ipmi_user_priv_limit() is added and user provided value checked.
2014-12-20 13:57:06 +01:00
befb21497f Create ask_password() and re-use code
Commit add function ask_password() which leads to code re-usability and shedding
couple lines of otherwise redundant code.
2014-12-20 13:43:38 +01:00
1d1ce49bf4 Fix 'user help' output
Commit fixes padding of 'user help' output. Also, list of expected values of
privilege leves have been added.
2014-12-19 09:57:49 +01:00
50bd7d01a8 Don't use tmp variable since it's not necessary in ipmi_user_test() 2014-12-19 08:49:20 +01:00
4d3decc4c0 Split ipmi_user_main() into smaller functions
Commit splits ipmi_user_main() into smaller functions. Hopefully, this will be
better than giant main() function.
2014-12-18 18:40:51 +01:00
f8ce85ee6c Clenaup formatting in ipmi_user_main() 2014-12-09 18:59:37 +01:00
2aa5d8c902 Code cleanup in ipmi_user_main()
This is just a tip of an iceberg, really.
2014-12-09 18:59:36 +01:00
3c34aa0e1d Cleanup formatting in ipmi_user_main() 2014-12-09 18:59:36 +01:00
a58a627fae Remove trailing white-spaces in ipmi_user.c 2014-12-09 18:59:36 +01:00
c18ec02f33 Move all files one level up in the file hierarcy, to avoid the useless ipmitool directory. 2014-02-05 17:30:32 +01:00