Bind 8.2.2.p5 NT problems

Mikael Forsberg mikaelforsberg at hotmail.com
Fri Sep 22 20:34:11 UTC 2000


Hi,

I found the cause of the below problem.
It was a bug in the NT port. (socket.c)

Also my previous problems with the ixfr file and log file that
growed forever were caused by the NT not allowing rename(From,To)
when the file To already existed. (logging.c and ns_ixfr.c)

Had also problem with RAS, Remote Access, together with NT,
as many others.(named.exe crashes immediatelly at startup)

The solution, seems to work (at least were I have tested it)
It assumes that the RAS service is installed as "RemoteAccess",
but I'm not sure how it is in non English versions of NT,
and that the RAS interface is listed as the last interface.

Have anyone a better solution?

Are the corrections for 8.2.3 and the latest Nortel fix available as
source files?
Are they possible to include and recompile in 8.2.2p5?

Regards

Mikael


>From: "Mikael Forsberg" <mikaelforsberg at hotmail.com>
>To: bind-users at isc.org
>Subject: Bind 8.2.2.p5 NT problems
>Date: Tue, 19 Sep 2000 16:47:22 EDT
>
>
>Hi,
>
>I'm running bind 8.2.2p5 on NT and have seen the named.exe crash
>several times during use of dynamic updates.
>
>I run a script that added a couple of hundred entries,
>but named stops after 100-300 entries.
>
>DrWatson says:
>
>Application exception occurred:
>        App:  (pid=365)
>        When: 9/18/2000 @ 20:38:4.734
>        Exception number: c0000005 (access violation)

Last message in the log

18-Sep-2000 20:36:51.000 maintenance: debug 1: next maintenance for zone
>'example.se' in 300 sec



socket.c

//Access violation. Did not send s to p_shutdown
int WSAAPI shutdown(SOCKET s,int how)
// Was: {return(p_shutdown)(how);}
{return(p_shutdown)(s,how);}



logging.c

static void
version_rename(log_channel chan) {
...
        // Delete the old file first
        sprintf(old_name, "%s.%d", chan->out.file.name, ver-1);
        DeleteFile(old_name);
        // continue as usual
        for (ver--; ver > 0; ver--) {
...


ns_ixfr.c

int ixfr_log_maint(struct zoneinfo *zp) {
...
        (void) my_fclose(to_fp);
        (void) close(fd);
        (void) my_fclose(from_fp);
        //Delete the old first
        DeleteFile (zp->z_ixfr_base);
        // Continue as usual
...




snmpmib.c
Forward declarations
int adjust_numInterfaces();

int GetInterfacesSNMP(struct ifdata *IFData[])
{
...
        orignumInterfaces = ifCountBind[0].value.asnValue.number;
        SNMP_FreeVarBind(&ifCountBind[0]);
        numInterfaces=adjust_numInterfaces(orignumInterfaces);
...}

int adjust_numInterfaces(int numInterface)
{
        SC_HANDLE scm;
        SC_HANDLE theService;
        SERVICE_STATUS StatusRec;
        DWORD PrevCheckPoint;

        scm = OpenSCManager( 0, 0, SC_MANAGER_ALL_ACCESS );
        if (!scm)
        {
                return numInterface;
        }
        else
        {
                // try to get a handle to the service
                theService = OpenService ( scm,TEXT("RemoteAccess"),
                                          SERVICE_ALL_ACCESS );

                if (!theService)
                {
                        return numInterface;
                }
                else
                {
                        return numInterface-1;
                }
        }
}


_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at 
http://profiles.msn.com.




More information about the bind-users mailing list