X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C8864F.6044F190@onstor-exch02.onstor.net>; Fri, 14 Mar 2008 20:48:05 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C8864F.6044F190"
References: <BB375AF679D4A34E9CA8DFA650E2B04E05B95C4A@onstor-exch02.onstor.net> <20080314183550.70e594cc@ripper.onstor.net>
Content-class: urn:content-classes:message
Subject: RE: FTI code + Migration script review
Date: Fri, 14 Mar 2008 20:46:44 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E05B95C4C@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: FTI code + Migration script review
Thread-Index: AciGPOcV0klpWq52THOF/iDzjlFWMQAEkjUE
From: "Sudharsan Srinivasan" <sudharsan@onstor.com>
To: "Andy Sharp" <andy.sharp@onstor.com>
Cc: "Tim Gardner" <tim.gardner@onstor.com>,
	"Paul Hammer" <paul.hammer@onstor.com>,
	"Sripal Surendiran (HCL)" <sripal.surendiran@onstor.com>,
	"Narain Ramadass" <narain.ramadass@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C8864F.6044F190
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Thanks Andy. We will look in to the review comments by Monday and take =
necessary action accordingly.

________________________________

From: Andy Sharp
Sent: Fri 3/14/2008 6:35 PM
To: Sudharsan Srinivasan
Cc: Tim Gardner; Paul Hammer; Sripal Surendiran (HCL); Narain Ramadass
Subject: Re: FTI code + Migration script review



On Thu, 13 Mar 2008 08:18:48 -0700 "Sudharsan Srinivasan"
<sudharsan@onstor.com> wrote:

> Hi Andy,
> While you continue your review of FTI, please pass on any review
> comments that you have so far. Sripal can take care of these
> comments. Also, I guess Larry has reviewed the makefiles. Kindly pass
> on any review comments that Larry might have.
> Regards
> Sudharsan

Here you go.  There is some work to do.  ifdef {OpenBSD,Linux} has to
be removed, plus some other stuff.  I think there are one or two files
that appear to have been a name change and not much more, but they are
showing up as adds from perforce.  Did they start as integrates or were
they just done as adds?



linux/rootfs/Makefile


     See Larry Scheer's review of this file.


linux/rootfs/etc/init.d/onstor


     not happy with removal of initial-config script, but am happy
     with emrscron related changes.

     please preserve the code from initial-config that performed the
     auto-upgrade function, and keep that functionality here.

     line 40, the grep regex is hair-raising.  please make it sane
     and as simple as possible.  something like

     grep -v '^#' /etc/network/interfaces | egrep "iface =
eth[01][[space]]\+ dhcp"



linux/rootfs/etc/init.d/onstor-config


     I think someone else said this already, but I'll repeat it: fix
     the name and/or the logic surrounding the variable INITIALCONFIG.
     It is not intuitive or self-documenting as is.  For example, change
     the name to NOT_INITIALCONFIG or change the logic, or even better,
     change the possible values to yes/no, and have INITIALCONFIG=3Dyes
     when the filer is in an initial config state.

     line 38, seriously dense sed script.  for maintainability,
     please turn it into 3 separate scripts, or better yet,
     three separate shell functions like "interfaces_reset_type",
     "interfaces_reset_address", "interfaces_reset_netmask" and
     call them from this function, for greater code reuseability.

     line 76, you can remove the call to newaliases, it is a no-op

     line 86, add back auto-upgrade logic from
     /etc/onstor/initial-config here.


linux/rootfs/etc/onstor/initial-config


     >>delete linux/rootfs/etc/onstor/initial-config

     don't delete it, just remove it from makefile for now


nfx-tree/code/sm-sct/taskmgr.c


     line 93-94; 112-113 indentation style does not match surrounding
     code.

     line 2333-2336, what does this do?


nfx-tree/code/ssc-initial-config/Makefile


     line 23 make this based on the value of $(OS) rather than $(PROD).


nfx-tree/code/ssc-initial-config/initial-config-linux.c


     >>add nfx-tree/code/ssc-initial-config/initial-config-linux.c

     this should be an integrate of initial-config-linux.c

     please pare down that massive list of includes to only those that
     are actually needed.

     line 85, many whitespace violations, including trailing whitespace

     line 93, return the errno, not -1.  adjust callers accordingly.

     line 99,151 not needed, fgets does this

     line 136,233,244 trailing whitespace

     line 142,156,164,173,177,188,196,203,207 return some kind of
     errno value, like ENOTFOUND.  ok, i just made that up, but you
     know what i mean. EINVAL, ENOENT, something like that.

     line 244, spacing?  operators should be surrounded with a space,
     like =3D=3D, ?, : and so on.  and of course fix the trailing space.

     line 250 why not return the actual errno? same for all the returns
     in this function.

     line function initconf_updateInterfaceConf()
     Instead of writing shell scripts on the fly like
     this, create a library of commonly used shell
     functions for yourself that do these common tasks,
     and then just invoke from your C code like so:
     do_system(". /onstor/lib/system-config-lib.sh;
     function_name %s %s", argument, argument);

     Many of these functions can be culled from the current
     initial-config script, and other places.  See my comments
     for onstor-config.

     line 361 the description text and the argument variable name
     could use some clarifying.  This method updates the default
     gateway address in the configuration file.  gateway - ip address
     of the gateway.  you get the idea.

     line 374, trailing whitespace

     line 385, this is a bogus route command.  you can let the route
     program figure out the netmask, or specify it correctly, but
     0.0.0.0 is never right, obviously.  to let route figure it out,
     which is probably best, use this:

     fprintf(fp, "route add default gw %s", gateway);

     obviously that also implies that you change the variable name to
     gateway, which is what it really is.


nfx-tree/code/ssc-initial-config/initial-config-openbsd.c


     >>add nfx-tree/code/ssc-initial-config/initial-config-openbsd.c

     I seriously doubt you need all these include files.  Please pare
     these down to the absolute minimum.  Same goes for the Linux
     version of this file.

     same comments as for the Linux version.

     much trailing whitespace as well.


nfx-tree/code/ssc-initial-config/initial-config.c


     Please do not use if[n]def OpenBSD or Linux, or variants thereof.
     Read the porting guide wiki page under the Cougar project if you
     need pointers on how to do that.

     please clean up trailing whitespace.

     Error return paths: in initial-config-$(OS) I said return errno
     value instead of -1.  Well, you can do that, or you can return
     some NFX_error_value that is appropriate.  Your choice.

     line 10 spelling

     line 381 do not use parens in return statements.  return is not
     a function call.

     line 385, this logic is broken in several ways.  just because a
     string in the file is longer than INITCONF_MAX_STR_SIZE, whatever
     the heck that is, doesn't mean an automatic error.  errors should
     only come from the parsing part of the code. not to mention that if
     (buf[0] !=3D '\0' && buf[strlen(buf) - 1] =3D=3D '\n') might fail =
but the
     string be complete.  and the assignement on line 386 is redundant.

     line 458, is there some reason the last argument in this function
     call is on another line?

     line 519 there is a standard scanf way to specify a variable
     field width.  please use that.  barring that, at least add a
     comment about what this code is doing.

     these (void) casts are not needed.

     line 529,564, why did these lines change?

     line 646, all operators should be surrounded by space, like '|'


     After these issues have been addressed I'll re-review.

nfx-tree/code/ssc-initial-config/initial-config.h


     line 22 no ifdef OpenBSD/Linux, please.  portable files should
     remain that way, not to mention that we don't build on the target
     system, so these macros shouldn't be counted on.  put OS specific
     defines in $(OS).h.

     line 95 ditto



nfx-tree/code/ssc-initial-config/migrate.sh


     >>add nfx-tree/code/ssc-initial-config/migrate.sh

     please clean up trailing whitespace.

     line 117,147 do something like this instead: /bin/mount -o
     ro,ufstype=3D44bsd "$SEC_DEV_FILE"4 $MOUNT_PT > /dev/null 2>&1

     line 119,149 please use proper spacing -- operators like ']' and
     ';' should have space around them.

     line 229,242 use spaces or tabs to indent, not both.  tabs are
     always preferred, of course.

     line 388, please include the official list(s) of config files, in
     /onstor/lib.  see flash_install.sh or initial-config for examples.

     updateCrontab() - cannot emrscron be used for this?  in conjunction
     with the modify-cron command, of course.  that way, you don't have
     to "upgrade" the crontab file.  on boot up, root crontab file is
     wiped and rebuilt every time, so this should be necessary at all.

     line 513 s/send/set/

     I like the fact that you've added code to have the user set the
     root password in addition to the admin password.  Please put a
     message in here to the user informing them that we cannot recover
     this password if they lose it, so they should make a record of
     it and keep it in a safe place;  only a system config reset will
     allow them to get the root password again, and of course all
     config info will be lost.




nfx-tree/code/ssc-initial-config/minlabel.c


     >>add nfx-tree/code/ssc-initial-config/minlabel.c

     looks ok


nfx-tree/code/ssc-initial-config/minlabel.h


     >>add nfx-tree/code/ssc-initial-config/minlabel.h

     looks ok

nfx-tree/code/ssc-nfxsh/Makefile


     looks good


nfx-tree/code/ssc-nfxsh/cmd_flash.c


     looks good


nfx-tree/code/ssc-nfxsh/vtysh-linux.c


     >>delete nfx-tree/code/ssc-nfxsh/vtysh-linux.c

     looks good


nfx-tree/code/ssc-nfxsh/vtysh-openbsd.c


     >>delete nfx-tree/code/ssc-nfxsh/vtysh-openbsd.c

     looks good


nfx-tree/code/ssc-nfxsh/vtysh_initial.c


     >>add nfx-tree/code/ssc-nfxsh/vtysh_initial.c

     this should have been done as an integrate of vtysh-openbsd.c,
     not a delete/add

     opening description: please fix


nfx-tree/code/ssc-pm/rc.onstor


     looks good


openbsd/src/usr.sbin/dhcp/dhclient/scripts/dhclient-script

     revert unchanged file?





------_=_NextPart_001_01C8864F.6044F190
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML dir=3Dltr><HEAD><TITLE>Re: FTI code + Migration script =
review</TITLE>=0A=
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dunicode">=0A=
<META content=3D"MSHTML 6.00.2900.3268" name=3DGENERATOR></HEAD>=0A=
<BODY>=0A=
<DIV id=3DidOWAReplyText53200 dir=3Dltr>=0A=
<DIV dir=3Dltr><FONT face=3DArial color=3D#000000 size=3D2>Thanks Andy. =
We will look in to the review comments by Monday and take necessary =
action accordingly.</FONT></DIV></DIV>=0A=
<DIV dir=3Dltr><BR>=0A=
<HR tabIndex=3D-1>=0A=
<FONT face=3DTahoma size=3D2><B>From:</B> Andy Sharp<BR><B>Sent:</B> Fri =
3/14/2008 6:35 PM<BR><B>To:</B> Sudharsan Srinivasan<BR><B>Cc:</B> Tim =
Gardner; Paul Hammer; Sripal Surendiran (HCL); Narain =
Ramadass<BR><B>Subject:</B> Re: FTI code + Migration script =
review<BR></FONT><BR></DIV>=0A=
<DIV>=0A=
<P><FONT size=3D2>On Thu, 13 Mar 2008 08:18:48 -0700 "Sudharsan =
Srinivasan"<BR>&lt;sudharsan@onstor.com&gt; wrote:<BR><BR>&gt; Hi =
Andy,<BR>&gt; While you continue your review of FTI, please pass on any =
review<BR>&gt; comments that you have so far. Sripal can take care of =
these<BR>&gt; comments. Also, I guess Larry has reviewed the makefiles. =
Kindly pass<BR>&gt; on any review comments that Larry might =
have.<BR>&gt; Regards<BR>&gt; Sudharsan<BR><BR>Here you go.&nbsp; There =
is some work to do.&nbsp; ifdef {OpenBSD,Linux} has to<BR>be removed, =
plus some other stuff.&nbsp; I think there are one or two files<BR>that =
appear to have been a name change and not much more, but they =
are<BR>showing up as adds from perforce.&nbsp; Did they start as =
integrates or were<BR>they just done as =
adds?<BR><BR><BR><BR>linux/rootfs/Makefile<BR><BR><BR>&nbsp;&nbsp;&nbsp;&=
nbsp; See Larry Scheer's review of this =
file.<BR><BR><BR>linux/rootfs/etc/init.d/onstor<BR><BR><BR>&nbsp;&nbsp;&n=
bsp;&nbsp; not happy with removal of initial-config script, but am =
happy<BR>&nbsp;&nbsp;&nbsp;&nbsp; with emrscron related =
changes.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; please preserve the code from =
initial-config that performed the<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
auto-upgrade function, and keep that functionality =
here.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 40, the grep regex is =
hair-raising.&nbsp; please make it sane<BR>&nbsp;&nbsp;&nbsp;&nbsp; and =
as simple as possible.&nbsp; something =
like<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; grep -v '^#' =
/etc/network/interfaces | egrep "iface eth[01][[space]]\+ =
dhcp"<BR><BR><BR><BR>linux/rootfs/etc/init.d/onstor-config<BR><BR><BR>&nb=
sp;&nbsp;&nbsp;&nbsp; I think someone else said this already, but I'll =
repeat it: fix<BR>&nbsp;&nbsp;&nbsp;&nbsp; the name and/or the logic =
surrounding the variable INITIALCONFIG.<BR>&nbsp;&nbsp;&nbsp;&nbsp; It =
is not intuitive or self-documenting as is.&nbsp; For example, =
change<BR>&nbsp;&nbsp;&nbsp;&nbsp; the name to NOT_INITIALCONFIG or =
change the logic, or even better,<BR>&nbsp;&nbsp;&nbsp;&nbsp; change the =
possible values to yes/no, and have =
INITIALCONFIG=3Dyes<BR>&nbsp;&nbsp;&nbsp;&nbsp; when the filer is in an =
initial config state.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 38, seriously =
dense sed script.&nbsp; for maintainability,<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
please turn it into 3 separate scripts, or better =
yet,<BR>&nbsp;&nbsp;&nbsp;&nbsp; three separate shell functions like =
"interfaces_reset_type",<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
"interfaces_reset_address", "interfaces_reset_netmask" =
and<BR>&nbsp;&nbsp;&nbsp;&nbsp; call them from this function, for =
greater code reuseability.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 76, you =
can remove the call to newaliases, it is a =
no-op<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 86, add back auto-upgrade =
logic from<BR>&nbsp;&nbsp;&nbsp;&nbsp; /etc/onstor/initial-config =
here.<BR><BR><BR>linux/rootfs/etc/onstor/initial-config<BR><BR><BR>&nbsp;=
&nbsp;&nbsp;&nbsp; &gt;&gt;delete =
linux/rootfs/etc/onstor/initial-config<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
don't delete it, just remove it from makefile for =
now<BR><BR><BR>nfx-tree/code/sm-sct/taskmgr.c<BR><BR><BR>&nbsp;&nbsp;&nbs=
p;&nbsp; line 93-94; 112-113 indentation style does not match =
surrounding<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
code.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 2333-2336, what does this =
do?<BR><BR><BR>nfx-tree/code/ssc-initial-config/Makefile<BR><BR><BR>&nbsp=
;&nbsp;&nbsp;&nbsp; line 23 make this based on the value of $(OS) rather =
than =
$(PROD).<BR><BR><BR>nfx-tree/code/ssc-initial-config/initial-config-linux=
.c<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;add =
nfx-tree/code/ssc-initial-config/initial-config-linux.c<BR><BR>&nbsp;&nbs=
p;&nbsp;&nbsp; this should be an integrate of =
initial-config-linux.c<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; please pare down =
that massive list of includes to only those =
that<BR>&nbsp;&nbsp;&nbsp;&nbsp; are actually =
needed.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 85, many whitespace =
violations, including trailing =
whitespace<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 93, return the errno, =
not -1.&nbsp; adjust callers =
accordingly.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 99,151 not needed, =
fgets does this<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 136,233,244 =
trailing whitespace<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line =
142,156,164,173,177,188,196,203,207 return some kind =
of<BR>&nbsp;&nbsp;&nbsp;&nbsp; errno value, like ENOTFOUND.&nbsp; ok, i =
just made that up, but you<BR>&nbsp;&nbsp;&nbsp;&nbsp; know what i mean. =
EINVAL, ENOENT, something like that.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
line 244, spacing?&nbsp; operators should be surrounded with a =
space,<BR>&nbsp;&nbsp;&nbsp;&nbsp; like =3D=3D, ?, : and so on.&nbsp; =
and of course fix the trailing space.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
line 250 why not return the actual errno? same for all the =
returns<BR>&nbsp;&nbsp;&nbsp;&nbsp; in this =
function.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line function =
initconf_updateInterfaceConf()<BR>&nbsp;&nbsp;&nbsp;&nbsp; Instead of =
writing shell scripts on the fly like<BR>&nbsp;&nbsp;&nbsp;&nbsp; this, =
create a library of commonly used shell<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
functions for yourself that do these common =
tasks,<BR>&nbsp;&nbsp;&nbsp;&nbsp; and then just invoke from your C code =
like so:<BR>&nbsp;&nbsp;&nbsp;&nbsp; do_system(". =
/onstor/lib/system-config-lib.sh;<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
function_name %s %s", argument, =
argument);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; Many of these functions can =
be culled from the current<BR>&nbsp;&nbsp;&nbsp;&nbsp; initial-config =
script, and other places.&nbsp; See my =
comments<BR>&nbsp;&nbsp;&nbsp;&nbsp; for =
onstor-config.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 361 the description =
text and the argument variable name<BR>&nbsp;&nbsp;&nbsp;&nbsp; could =
use some clarifying.&nbsp; This method updates the =
default<BR>&nbsp;&nbsp;&nbsp;&nbsp; gateway address in the configuration =
file.&nbsp; gateway - ip address<BR>&nbsp;&nbsp;&nbsp;&nbsp; of the =
gateway.&nbsp; you get the idea.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line =
374, trailing whitespace<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 385, this =
is a bogus route command.&nbsp; you can let the =
route<BR>&nbsp;&nbsp;&nbsp;&nbsp; program figure out the netmask, or =
specify it correctly, but<BR>&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0 is never =
right, obviously.&nbsp; to let route figure it =
out,<BR>&nbsp;&nbsp;&nbsp;&nbsp; which is probably best, use =
this:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; fprintf(fp, "route add default gw =
%s", gateway);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; obviously that also =
implies that you change the variable name to<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
gateway, which is what it really =
is.<BR><BR><BR>nfx-tree/code/ssc-initial-config/initial-config-openbsd.c<=
BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;add =
nfx-tree/code/ssc-initial-config/initial-config-openbsd.c<BR><BR>&nbsp;&n=
bsp;&nbsp;&nbsp; I seriously doubt you need all these include =
files.&nbsp; Please pare<BR>&nbsp;&nbsp;&nbsp;&nbsp; these down to the =
absolute minimum.&nbsp; Same goes for the =
Linux<BR>&nbsp;&nbsp;&nbsp;&nbsp; version of this =
file.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; same comments as for the Linux =
version.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; much trailing whitespace as =
well.<BR><BR><BR>nfx-tree/code/ssc-initial-config/initial-config.c<BR><BR=
><BR>&nbsp;&nbsp;&nbsp;&nbsp; Please do not use if[n]def OpenBSD or =
Linux, or variants thereof.<BR>&nbsp;&nbsp;&nbsp;&nbsp; Read the porting =
guide wiki page under the Cougar project if =
you<BR>&nbsp;&nbsp;&nbsp;&nbsp; need pointers on how to do =
that.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; please clean up trailing =
whitespace.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; Error return paths: in =
initial-config-$(OS) I said return errno<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
value instead of -1.&nbsp; Well, you can do that, or you can =
return<BR>&nbsp;&nbsp;&nbsp;&nbsp; some NFX_error_value that is =
appropriate.&nbsp; Your choice.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 10 =
spelling<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 381 do not use parens in =
return statements.&nbsp; return is not<BR>&nbsp;&nbsp;&nbsp;&nbsp; a =
function call.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 385, this logic is =
broken in several ways.&nbsp; just because a<BR>&nbsp;&nbsp;&nbsp;&nbsp; =
string in the file is longer than INITCONF_MAX_STR_SIZE, =
whatever<BR>&nbsp;&nbsp;&nbsp;&nbsp; the heck that is, doesn't mean an =
automatic error.&nbsp; errors should<BR>&nbsp;&nbsp;&nbsp;&nbsp; only =
come from the parsing part of the code. not to mention that =
if<BR>&nbsp;&nbsp;&nbsp;&nbsp; (buf[0] !=3D '\0' &amp;&amp; =
buf[strlen(buf) - 1] =3D=3D '\n') might fail but =
the<BR>&nbsp;&nbsp;&nbsp;&nbsp; string be complete.&nbsp; and the =
assignement on line 386 is redundant.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
line 458, is there some reason the last argument in this =
function<BR>&nbsp;&nbsp;&nbsp;&nbsp; call is on another =
line?<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 519 there is a standard scanf =
way to specify a variable<BR>&nbsp;&nbsp;&nbsp;&nbsp; field width.&nbsp; =
please use that.&nbsp; barring that, at least add =
a<BR>&nbsp;&nbsp;&nbsp;&nbsp; comment about what this code is =
doing.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; these (void) casts are not =
needed.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 529,564, why did these =
lines change?<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 646, all operators =
should be surrounded by space, like =
'|'<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; After these issues have been =
addressed I'll =
re-review.<BR><BR>nfx-tree/code/ssc-initial-config/initial-config.h<BR><B=
R><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 22 no ifdef OpenBSD/Linux, =
please.&nbsp; portable files should<BR>&nbsp;&nbsp;&nbsp;&nbsp; remain =
that way, not to mention that we don't build on the =
target<BR>&nbsp;&nbsp;&nbsp;&nbsp; system, so these macros shouldn't be =
counted on.&nbsp; put OS specific<BR>&nbsp;&nbsp;&nbsp;&nbsp; defines in =
$(OS).h.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 95 =
ditto<BR><BR><BR><BR>nfx-tree/code/ssc-initial-config/migrate.sh<BR><BR><=
BR>&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;add =
nfx-tree/code/ssc-initial-config/migrate.sh<BR><BR>&nbsp;&nbsp;&nbsp;&nbs=
p; please clean up trailing whitespace.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
line 117,147 do something like this instead: /bin/mount =
-o<BR>&nbsp;&nbsp;&nbsp;&nbsp; ro,ufstype=3D44bsd "$SEC_DEV_FILE"4 =
$MOUNT_PT &gt; /dev/null 2&gt;&amp;1<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
line 119,149 please use proper spacing -- operators like ']' =
and<BR>&nbsp;&nbsp;&nbsp;&nbsp; ';' should have space around =
them.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 229,242 use spaces or tabs to =
indent, not both.&nbsp; tabs are<BR>&nbsp;&nbsp;&nbsp;&nbsp; always =
preferred, of course.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 388, please =
include the official list(s) of config files, =
in<BR>&nbsp;&nbsp;&nbsp;&nbsp; /onstor/lib.&nbsp; see flash_install.sh =
or initial-config for examples.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
updateCrontab() - cannot emrscron be used for this?&nbsp; in =
conjunction<BR>&nbsp;&nbsp;&nbsp;&nbsp; with the modify-cron command, of =
course.&nbsp; that way, you don't have<BR>&nbsp;&nbsp;&nbsp;&nbsp; to =
"upgrade" the crontab file.&nbsp; on boot up, root crontab file =
is<BR>&nbsp;&nbsp;&nbsp;&nbsp; wiped and rebuilt every time, so this =
should be necessary at all.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; line 513 =
s/send/set/<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; I like the fact that you've =
added code to have the user set the<BR>&nbsp;&nbsp;&nbsp;&nbsp; root =
password in addition to the admin password.&nbsp; Please put =
a<BR>&nbsp;&nbsp;&nbsp;&nbsp; message in here to the user informing them =
that we cannot recover<BR>&nbsp;&nbsp;&nbsp;&nbsp; this password if they =
lose it, so they should make a record of<BR>&nbsp;&nbsp;&nbsp;&nbsp; it =
and keep it in a safe place;&nbsp; only a system config reset =
will<BR>&nbsp;&nbsp;&nbsp;&nbsp; allow them to get the root password =
again, and of course all<BR>&nbsp;&nbsp;&nbsp;&nbsp; config info will be =
lost.<BR><BR><BR><BR><BR>nfx-tree/code/ssc-initial-config/minlabel.c<BR><=
BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;add =
nfx-tree/code/ssc-initial-config/minlabel.c<BR><BR>&nbsp;&nbsp;&nbsp;&nbs=
p; looks =
ok<BR><BR><BR>nfx-tree/code/ssc-initial-config/minlabel.h<BR><BR><BR>&nbs=
p;&nbsp;&nbsp;&nbsp; &gt;&gt;add =
nfx-tree/code/ssc-initial-config/minlabel.h<BR><BR>&nbsp;&nbsp;&nbsp;&nbs=
p; looks =
ok<BR><BR>nfx-tree/code/ssc-nfxsh/Makefile<BR><BR><BR>&nbsp;&nbsp;&nbsp;&=
nbsp; looks =
good<BR><BR><BR>nfx-tree/code/ssc-nfxsh/cmd_flash.c<BR><BR><BR>&nbsp;&nbs=
p;&nbsp;&nbsp; looks =
good<BR><BR><BR>nfx-tree/code/ssc-nfxsh/vtysh-linux.c<BR><BR><BR>&nbsp;&n=
bsp;&nbsp;&nbsp; &gt;&gt;delete =
nfx-tree/code/ssc-nfxsh/vtysh-linux.c<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
looks =
good<BR><BR><BR>nfx-tree/code/ssc-nfxsh/vtysh-openbsd.c<BR><BR><BR>&nbsp;=
&nbsp;&nbsp;&nbsp; &gt;&gt;delete =
nfx-tree/code/ssc-nfxsh/vtysh-openbsd.c<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
looks =
good<BR><BR><BR>nfx-tree/code/ssc-nfxsh/vtysh_initial.c<BR><BR><BR>&nbsp;=
&nbsp;&nbsp;&nbsp; &gt;&gt;add =
nfx-tree/code/ssc-nfxsh/vtysh_initial.c<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; =
this should have been done as an integrate of =
vtysh-openbsd.c,<BR>&nbsp;&nbsp;&nbsp;&nbsp; not a =
delete/add<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; opening description: please =
fix<BR><BR><BR>nfx-tree/code/ssc-pm/rc.onstor<BR><BR><BR>&nbsp;&nbsp;&nbs=
p;&nbsp; looks =
good<BR><BR><BR>openbsd/src/usr.sbin/dhcp/dhclient/scripts/dhclient-scrip=
t<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; revert unchanged =
file?<BR><BR><BR></FONT></P></DIV></BODY></HTML>
------_=_NextPart_001_01C8864F.6044F190--
