#include <OpenIPMI/ipmi_mc.h>Go to the source code of this file.
|
|
Definition at line 59 of file ipmi_user.h. Referenced by mc_user_list(). |
|
|
Definition at line 55 of file ipmi_user.h. |
|
|
Definition at line 46 of file ipmi_user.h. |
|
|
Definition at line 82 of file ipmi_user.h. |
|
||||||||||||||||||||||||
|
Definition at line 4712 of file mc.c. References ipmi_msg::cmd, ipmi_msg::data, ipmi_msg::data_len, got_user0(), IPMI_APP_NETFN, IPMI_GET_CHANNEL_AUTH_CAPABILITIES_CMD, ipmi_mc_send_command(), ipmi_mem_alloc(), ipmi_mem_free(), and ipmi_msg::netfn. Referenced by mc_user_list(), and mc_user_set(). 04717 { 04718 int rv; 04719 ipmi_user_list_t *list = NULL; 04720 ipmi_msg_t msg; 04721 unsigned char data[2]; 04722 04723 if (channel > 15) 04724 return EINVAL; 04725 if (user > 0x3f) 04726 return EINVAL; 04727 04728 list = ipmi_mem_alloc(sizeof(*list)); 04729 if (!list) 04730 return ENOMEM; 04731 memset(list, 0, sizeof(*list)); 04732 04733 list->channel = channel; 04734 list->handler = handler; 04735 list->cb_data = cb_data; 04736 if (user) { 04737 list->curr = user; 04738 list->max = user; 04739 } else { 04740 list->curr = 1; 04741 list->max = 0; 04742 } 04743 04744 /* First determine if we have 2.0 (RMCP+) support. */ 04745 msg.netfn = IPMI_APP_NETFN; 04746 msg.cmd = IPMI_GET_CHANNEL_AUTH_CAPABILITIES_CMD; 04747 msg.data = data; 04748 msg.data_len = 2; 04749 data[0] = (channel & 0xf) | (1 << 7); /* Request IPMI 2.0 data */ 04750 data[1] = 2; /* Request user level access */ 04751 04752 rv = ipmi_mc_send_command(mc, 0, &msg, got_user0, list); 04753 if (rv) 04754 ipmi_mem_free(list); 04755 return rv; 04756 }
|
|
||||||||||||||||||||||||||||
|
Definition at line 4962 of file mc.c. References ipmi_user_s::cb_data, ipmi_user_s::cb_only_set, ipmi_user_s::channel, ipmi_user_s::enable_set, ipmi_user_s::handler, handler, ipmi_mem_free(), ipmi_user_copy(), ipmi_user_free(), ipmi_user_s::link_enabled_set, ipmi_user_s::msg_enabled_set, ipmi_user_s::name_set, ipmi_user_s::num, ipmi_user_s::privilege_limit_set, ipmi_user_s::pw2_set, ipmi_user_s::pw_set, ipmi_user_s::session_limit_set, set_enable(), set_name(), set_pw(), and set_user_access(). Referenced by set_user1(). 04968 { 04969 int rv = 0; 04970 ipmi_user_t *user; 04971 04972 if (channel > 15) 04973 return EINVAL; 04974 if (num > 0x3f) 04975 return EINVAL; 04976 04977 user = ipmi_user_copy(iuser); 04978 if (!user) 04979 return ENOMEM; 04980 user->num = num; 04981 user->channel = channel; 04982 user->handler = handler; 04983 user->cb_data = cb_data; 04984 04985 if (user->cb_only_set || user->link_enabled_set || user->msg_enabled_set 04986 || user->privilege_limit_set || user->session_limit_set) 04987 rv = set_user_access(mc, user); 04988 else if (user->name_set) 04989 rv = set_name(mc, user); 04990 else if (user->pw_set || user->pw2_set) 04991 rv = set_pw(mc, user); 04992 else if (user->enable_set) 04993 rv = set_enable(mc, user); 04994 else { 04995 /* Nothing to do. */ 04996 handler(mc, 0, cb_data); 04997 ipmi_mem_free(user); 04998 } 04999 05000 if (rv) 05001 ipmi_user_free(user); 05002 05003 return rv; 05004 }
|
|
|
Definition at line 4759 of file mc.c. References ipmi_mem_alloc(). Referenced by ipmi_mc_set_user(), and ipmi_user_list_get_user(). 04760 { 04761 ipmi_user_t *rv; 04762 04763 rv = ipmi_mem_alloc(sizeof(*rv)); 04764 if (rv) 04765 memcpy(rv, user, sizeof(*rv)); 04766 return rv; 04767 }
|
|
|
Definition at line 4770 of file mc.c. References ipmi_mem_free(). Referenced by got_users(), ipmi_mc_set_user(), set_user1(), and set_user_done(). 04771 { 04772 ipmi_mem_free(user); 04773 }
|
|
||||||||||||
|
Definition at line 5108 of file mc.c. References ipmi_user_s::cb_only. Referenced by got_users(). 05109 { 05110 *val = user->cb_only; 05111 return 0; 05112 }
|
|
||||||||||||
|
Definition at line 5007 of file mc.c. References ipmi_user_s::channel. 05008 { 05009 *channel = user->channel; 05010 return 0; 05011 }
|
|
||||||||||||
|
Definition at line 5156 of file mc.c. References ipmi_user_s::enable, and ipmi_user_s::enable_read. 05157 { 05158 if (!user->enable_read) 05159 return ENOSYS; 05160 *val = user->enable; 05161 return 0; 05162 }
|
|
||||||||||||
|
Definition at line 5078 of file mc.c. References ipmi_user_s::link_enabled. Referenced by got_users(). 05079 { 05080 *val = user->link_enabled; 05081 return 0; 05082 }
|
|
||||||||||||
|
Definition at line 5093 of file mc.c. References ipmi_user_s::msg_enabled. Referenced by got_users(). 05094 { 05095 *val = user->msg_enabled; 05096 return 0; 05097 }
|
|
||||||||||||||||
|
Definition at line 5037 of file mc.c. References ipmi_user_s::name. Referenced by got_users(). 05038 { 05039 if (*len > 17) 05040 *len = 17; 05041 memcpy(name, user->name, *len); 05042 return 0; 05043 }
|
|
||||||||||||
|
Definition at line 5030 of file mc.c.
|
|
||||||||||||
|
Definition at line 5014 of file mc.c. References ipmi_user_s::num. Referenced by got_users(). 05015 { 05016 *num = user->num; 05017 return 0; 05018 }
|
|
||||||||||||
|
Definition at line 5123 of file mc.c. References ipmi_user_s::privilege_limit. Referenced by got_users(). 05124 { 05125 *val = user->privilege_limit; 05126 return 0; 05127 }
|
|
||||||||||||
|
Definition at line 5138 of file mc.c. References ipmi_user_s::session_limit, and ipmi_user_s::session_limit_read. Referenced by got_users(). 05139 { 05140 if (!user->session_limit_read) 05141 return ENOSYS; 05142 *val = user->session_limit; 05143 return 0; 05144 }
|
|
|
Definition at line 4461 of file mc.c. References ipmi_user_list_s::idx, ipmi_mem_alloc(), ipmi_mem_free(), and ipmi_user_list_s::users. 04462 { 04463 ipmi_user_list_t *rv; 04464 04465 rv = ipmi_mem_alloc(sizeof(*rv)); 04466 if (!rv) 04467 return NULL; 04468 memcpy(rv, list, sizeof(*rv)); 04469 rv->users = ipmi_mem_alloc(sizeof(ipmi_user_t) * list->idx); 04470 if (!rv->users) { 04471 ipmi_mem_free(rv); 04472 return NULL; 04473 } 04474 memcpy(rv->users, list->users, sizeof(ipmi_user_t) * list->idx); 04475 return rv; 04476 }
|
|
|
Definition at line 4479 of file mc.c. References ipmi_mem_free(), and ipmi_user_list_s::users. Referenced by got_user1(), got_user2(), and user_list_done(). 04480 { 04481 if (list->users) 04482 ipmi_mem_free(list->users); 04483 ipmi_mem_free(list); 04484 }
|
|
||||||||||||
|
Definition at line 4502 of file mc.c. References ipmi_user_list_s::channel. Referenced by got_users(). 04503 { 04504 *channel = list->channel; 04505 return 0; 04506 }
|
|
||||||||||||
|
Definition at line 4516 of file mc.c. References ipmi_user_list_s::enabled. Referenced by got_users().
|
|
||||||||||||
|
Definition at line 4523 of file mc.c. References ipmi_user_list_s::fixed. Referenced by got_users(). 04524 { 04525 *f = list->fixed; 04526 return 0; 04527 }
|
|
||||||||||||
|
Definition at line 4509 of file mc.c. References ipmi_user_list_s::max. Referenced by got_users(). 04510 { 04511 *max = list->max; 04512 return 0; 04513 }
|
|
||||||||||||
|
Definition at line 4493 of file mc.c. References ipmi_user_list_s::idx, ipmi_user_copy(), and ipmi_user_list_s::users. Referenced by got_users(), and set_user1(). 04495 { 04496 if (idx >= list->idx) 04497 return NULL; 04498 return ipmi_user_copy(&list->users[idx]); 04499 }
|
|
|
Definition at line 4487 of file mc.c. References ipmi_user_list_s::idx. Referenced by got_users().
|
|
||||||||||||
|
Definition at line 5115 of file mc.c. References ipmi_user_s::cb_only, and ipmi_user_s::cb_only_set. Referenced by set_user1(). 05116 { 05117 user->cb_only = val; 05118 user->cb_only_set = 1; 05119 return 0; 05120 }
|
|
|
Definition at line 5174 of file mc.c. References ipmi_user_s::cb_only_set, ipmi_user_s::enable_read, ipmi_user_s::enable_set, ipmi_user_s::link_enabled_set, ipmi_user_s::msg_enabled_set, ipmi_user_s::name_set, ipmi_user_s::privilege_limit_set, ipmi_user_s::session_limit_read, and ipmi_user_s::session_limit_set. 05175 { 05176 user->cb_only_set = 1; 05177 user->link_enabled_set = 1; 05178 user->msg_enabled_set = 1; 05179 user->privilege_limit_set = 1; 05180 user->session_limit_set = user->session_limit_read; 05181 user->enable_set = user->enable_read; 05182 user->name_set = 1; 05183 return 0; 05184 }
|
|
||||||||||||
|
Definition at line 5165 of file mc.c. References ipmi_user_s::enable, ipmi_user_s::enable_read, and ipmi_user_s::enable_set. Referenced by set_user1(). 05166 { 05167 user->enable = val; 05168 user->enable_set = 1; 05169 user->enable_read = 1; 05170 return 0; 05171 }
|
|
||||||||||||
|
Definition at line 5085 of file mc.c. References ipmi_user_s::link_enabled, and ipmi_user_s::link_enabled_set. Referenced by set_user1(). 05086 { 05087 user->link_enabled = val; 05088 user->link_enabled_set = 1; 05089 return 0; 05090 }
|
|
||||||||||||
|
Definition at line 5100 of file mc.c. References ipmi_user_s::msg_enabled, and ipmi_user_s::msg_enabled_set. Referenced by set_user1(). 05101 { 05102 user->msg_enabled = val; 05103 user->msg_enabled_set = 1; 05104 return 0; 05105 }
|
|
||||||||||||||||
|
Definition at line 5046 of file mc.c. References ipmi_user_s::name, and ipmi_user_s::name_set. Referenced by set_user1(). 05047 { 05048 if (len > 16) 05049 return EINVAL; 05050 memcpy(user->name, name, len); 05051 user->name_set = 1; 05052 return 0; 05053 }
|
|
||||||||||||
|
Definition at line 5021 of file mc.c. References ipmi_user_s::num. 05022 { 05023 if (num > 0x3f) 05024 return EINVAL; 05025 user->num = num; 05026 return 0; 05027 }
|
|
||||||||||||||||
|
Definition at line 5056 of file mc.c. References ipmi_user_s::pw, and ipmi_user_s::pw_set. Referenced by set_user1(). 05057 { 05058 if (len > 16) 05059 return EINVAL; 05060 memcpy(user->pw, pw, len); 05061 user->pw_set = 1; 05062 return 0; 05063 }
|
|
||||||||||||||||
|
Definition at line 5066 of file mc.c. References ipmi_user_s::can_use_pw2, ipmi_user_s::pw, and ipmi_user_s::pw2_set. Referenced by set_user1(). 05067 { 05068 if (! user->can_use_pw2) 05069 return ENOSYS; 05070 if (len > 20) 05071 return EINVAL; 05072 memcpy(user->pw, pw, len); 05073 user->pw2_set = 1; 05074 return 0; 05075 }
|
|
||||||||||||
|
Definition at line 5130 of file mc.c. References ipmi_user_s::privilege_limit, and ipmi_user_s::privilege_limit_set. Referenced by set_user1(). 05131 { 05132 user->privilege_limit = val; 05133 user->privilege_limit_set = 1; 05134 return 0; 05135 }
|
|
||||||||||||
|
Definition at line 5147 of file mc.c. References ipmi_user_s::session_limit, ipmi_user_s::session_limit_read, and ipmi_user_s::session_limit_set. Referenced by set_user1(). 05148 { 05149 user->session_limit = val; 05150 user->session_limit_set = 1; 05151 user->session_limit_read = 1; 05152 return 0; 05153 }
|