Hey dev guys (and gals),

In our environnement, we have an IP for our TFTP server and another IP for our ZENworks Imaging Server. Since we did a server update to 11.3, our imaging is not working anymore. While trying to fix the issue, I've been looking at various files in the pre-boot environnement. I've narrowed our issue to the script that download and install the Tuxero High Performance Driver.

Reading the following code aggravated me as I've lost quite a few hours on it. Come on Novell Devs! What was that about?

Filename /bin/zenworks.s, around line 359:
    #it is PXE boot, time to download high performance ntfs drive
    #First read the configuration file to know the driver file name

    res=`echo $PROXYADDR | grep '^[0].[0].[0].[0]$' | wc -l`
    if [ $res -eq 1 ]
    if test -f /settings.txt
    /usr/bin/dos2unix /settings.txt     >> /tmp/settings.log 2>&1
    echo "Run settings.txt" >> /tmp/settings.log  2>&1
    . /settings.txt        >> /tmp/settings.log 2>&1
    export PROXYADDR

    tftp $PROXYADDR -c get HighPerfDriver.conf > /dev/null 2>&1
First of all, what is that grep line? What are you trying to achieve here? Someone need to read up on POSIX regular expression. Not familiar with those? Well the dot in there mean any character, so that mean the IP address will match the regular expression but so will 0!0!0!0 , 0z0&0K0 , 0a0b0c0 or any other silly thing like that. Still troubling but technicaly correct are the [0] , in POSIX regular expression the brackets introduce a character class. For exemple [abc] would match either the character a , b or c . So [0] would match either.... Hmm.. well just 0 actually.

If you want to test for , just do so with a if [ "$PROXYADDR" == "" ] then and be done with it. Otherwise that whole block of code is pretty useless as it will never run.

Now, at the heart of my issue, do you know there is a envrionnement variable $TFTPIP available to you? I understand you're assuming that the TFTP server is running on the same IP address as the ZENworks Imaging Server so $PROXYADDR will work most of the time but in my case you're wrong.

Since the file settings.txt is run about 40 lines below that code, I've coded a work around by including the following in my settings.txt file:

tftp -m binary -c get /11.2.4/x86/tntfs.ko /modules/tntfs.ko
insmod /modules/tntfs.ko
PS.: Do you know that settings.txt is run both from /bin/zenworks.s and from /bin/config.s. And zenworks.s will eventualy call config.s (possibly through imaging.s, prompt.s or install.s) anyways making it running twice (or even three!! time if that grep match)?