• Stewart Brodie's avatar
    Fixed logon behaviour against NT4 servers. · e332cf0f
    Stewart Brodie authored
      Added automatic bug detection code.
      NT4 servers use differently formatted buffer to response to the logon
        requests and this was confusing the code which only knew about the
        oldest format of this buffer.  The code now knows about all three
        different possible response formats and processes them all properly.
      Windows 95/98 servers contain a bug which cause them to reverse the
        order of the date and time fields in QPathInformation transactions.
        My earlier workaround for this was to always reverse the time/date
        pairs - which causes it to fail when talking to Windows NT servers.
        On the first QPathInformation request on a given share, the request
        is first done on the root directory, and then the (non-broken) dir
        search transaction is executed and the results compared to determine
        whether the server is broken or not.  This means that it should
        interwork with NT, 95, 98 and also with Samba (which has a build
        option for emulating this bug or not!)
      Transact2 processing code is now aware of the multiple response packet
        options and can cope with the server sending secondary responses.
      Directory search entry per call limiter re-introduced to prevent these
        from secondary responses occurring anyway as they are still a pain to
        process efficiently.
      Tested against Windows 98 and Windows NT 4.
    Version 1.87, Tagged as 'LanManFS-1_87-1_1_1_1_2_6'