Hello Jordan,

since SF.net kinda sucks, let's do code review over e-mail.

~~~
+<<<<<<< ipmi_mc.h
+/* IPMI 2.0 command for system information*/
[...]
+=======
[...]
+>>>>>>> 1.12
~~~

Errr ... what???

~~~
+int ipmi_getsysinfo(struct ipmi_intf * intf, int param, int block, int set,
+            int len, void *buffer);
+int ipmi_setsysinfo(struct ipmi_intf * intf, int len, void *buffer);
~~~

If you want to make these available outside of 'lib/ipmi_mc.c', then
names of these functions must be 'ipmi_mc_...'. Therefore, two
steps/tickets are required. One is to change names of these functions
and second is the one under discussion.

~~~
+#define IPMI_CMD_SET_PEF_CONFIG_PARMS 0x12
+struct pef_cfgparm_set_policy_table_entry
+{
+  uint8_t id;
+  uint8_t sel;
+  struct pef_policy_entry entry;
+} ATTRIBUTE_PACKING;
~~~

Such things go into header file. Also, where is check whether
ATTRIBUTE_PACKING is supported/defined? What if it isn't???

~~~
+    rsp = ipmi_pef_msg_exchange(intf, &req, "Set Alert policy table entry");
+    if (!rsp) {
+        lprintf(LOG_ERR, " **Error setting Alert policy table entry");
+        return -1;
+    }
+    return 0;
~~~

No check for ccode? Huh?

~~~
+static void
+ipmi_pef_policy_enable(struct ipmi_intf * intf, int set, int enable)
+{
~~~

No, this function *returns* integer.

~~~
+        if (ptbl) {
+            free(ptbl);
+        }
~~~

You've missed ``ptbl = NULL;'' there.

~~~
+    if (set > 0 && set <= tbl_size) {
[...]
+    } else {
+          lprintf(LOG_ERR, "Invalid policy index, valid range =
(1..%d)", tbl_size);
+    }
~~~

Invert ``if'' and return early.

~~~
+static struct valstr endis[] = {
+    { .str = "enable", .val = 0x01 },
+    { .str = "disable", .val = 0x00 },
+    { .val = -1 },
+};
+
~~~

No, use strcmp()/strncmp() or whatever.

~~~
+    else if (!strncmp(argv[0], "setpolicy", 6)) {
~~~

Now, I'm not exactly fond of adding 'setpolicy'. How about to give
'pef' a bit of thought and redesign 'pef' cli interface? I find it
rather, well, not good, to be honest. And this isn't making it any
better.
I can only wonder why there isn't something like 'pef list
<policy|entry>' instead of 'policy' which lists policies and 'list'
which list entries. I'm sorry, but it makes no sense.

~~~
+        if (argc > 2) {
+            str2int(argv[1], &set);
~~~

A good one. :)

Also, please, read
http://sourceforge.net/p/ipmitool/wiki/coding_standards/ and change
code formatting in your patch.

Best regards,
Z.

--
Zdenek Styblik
email: zdenek.styb...@gmail.com
jabber: zdenek.styb...@gmail.com

------------------------------------------------------------------------------
Sponsored by Intel(R) XDK 
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to