Chris Faherty wrote:
> I have found through experimentation that if you don't call NetLibClose()
> with true after a NetLibOpen() failure that you can end up in a
> quasi-connected state whereby you have to power-down the unit before trying

But in my case, NetLibOpen() never failed. I have quoted by NetLibOpen()
related code here. Please take a look at the else-part of the
first-level
if().

err = NetLibOpen(gP->net.netLibRefNum, &netIFErr);
if (err && (err != netErrAlreadyOpen))
{
        switch ( err )
        {
        case    netErrOutOfMemory:
                // display error code here
                err = nlErrOutOfMem;
                break;
                        
        default:
                // display error code here
                err = nlErrNetSetup;
                break;                          
        }
}
else
{
        /* NetLibOpen() succeeded. But the interface may not be up */
        netIFUp = true;
        if ( err == netErrAlreadyOpen )
                err = NetLibConnectionRefresh (gP->net.netLibRefNum,
                                true, &netIFUp, &netIFErr);
        if ( (netIFErr != 0 ) || (netIFUp != true) ) 
        {
                /* Interface didn't comeup. But....even though the interface
                 * didn't come up, library open succeeded. So we need to close
                 * the library.
                 */
                NetLibClose(gP->net.netLibRefNum, true);
                // display error here 
                err = nlErrNetInit;
        }
        else
        {
                gP->net.openCount++;
                err = nlSuccess;
        }
}


> /* Chris Faherty <[EMAIL PROTECTED]>, finger for PGP */

Reply via email to