38 Commits

Author SHA1 Message Date
Alexander Amelkin
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
G Dutton
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
G Dutton
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
Alexander Amelkin
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
Alexander Amelkin
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
Alexander Amelkin
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
Alexander Amelkin
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
Zdenek Styblik
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
Alexander Yurtsev
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
Alexander Yurtsev
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
Zdenek Styblik
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
Alexander Rube
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
Zdenek Styblik
a98eedb272 Remove trailing white-spaces in ipmi_user.c 2015-09-11 06:09:25 +02:00
Zdenek Styblik
8081427543 _ipmi_set_user_password() - fix missing intf parameter in documentation 2015-01-30 13:15:36 +01:00
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
12b85b3c7b Init user_access_t struct in ipmi_user_priv() 2015-01-16 20:49:06 +01:00
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
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
Zdenek Styblik
50bd7d01a8 Don't use tmp variable since it's not necessary in ipmi_user_test() 2014-12-19 08:49:20 +01:00
Zdenek Styblik
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
Zdenek Styblik
f8ce85ee6c Clenaup formatting in ipmi_user_main() 2014-12-09 18:59:37 +01:00
Zdenek Styblik
2aa5d8c902 Code cleanup in ipmi_user_main()
This is just a tip of an iceberg, really.
2014-12-09 18:59:36 +01:00
Zdenek Styblik
3c34aa0e1d Cleanup formatting in ipmi_user_main() 2014-12-09 18:59:36 +01:00
Zdenek Styblik
a58a627fae Remove trailing white-spaces in ipmi_user.c 2014-12-09 18:59:36 +01:00
Petter Reinholdtsen
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