Update windows/README

The build instructions have changed somewhat, as have the requirements
for a build environment.
The default behavior for KRB5_CONFIG and KRB5CCNAME has also changed.
Attempt to remove mention of overly specific Windows versions that
are now quite old when the behavior persists in newer versions of Windows.
Document the usage of DNS by default and the reduced need for a large
krb5.ini file.
Talk a little more about the LSA cache.

The kerbsrc.win target is no longer supported.

ticket: 7363 (new)
target_version: 1.10.4
tags: pullup
Do not add empty dir to the include search list

windows/leashdll/include contains only a krb4 directory.
We have a dubious need for the latter through AFSroutines.c,
but the former can be eliminated.
Update FILES and WINFILES for kerbsrc.zip

Note that windows/wshelper/* was removed from the list, as it doesn't
exist.

The kerbsrc.zip target is slated for removal, but attempt to make it
more correct before removing it should it need to be revived.

Submitted by: Blaine Elzey  blaine.elzey at alcatel-lucent.com

ticket: 7364 (new)
Remove kerbsrc83

It's been a long time since systems were limited to 8.3 format
for file names.  No one should be thinking to try and build this
target, and if they do, we don't need a custom error message anymore.
Clean out the unneeded code from the Makefile.in.
Remove kerbsrc-nt

NT is long-gone; we don't need to keep a special-case error message
around telling people not to use it.
Clean out the unneeded code from the Makefile.in
Remove kerbsrc.win

It has been unloved and broken repeatedly for many years, requiring
updating of several variables whenever new directories are added
and similar tedia.  It was originally intended to avoid the need
for Unix utilities on Windows, but Microsoft provides the Utilities
and SDK for UNIX-based Applications which is enough rope to do a
native build.

Leave behind a warning message to anyone who does try to build the
target.

Clean up some now-unused infrastructure in the build system.

ticket: 7367 (new)
Remove some dead Makefile code

FILES is unused in util/{ss,et}/Makefile.in; some other unused
variables were nearby.
Fix typo

Actually expand the OUTPRE variable instead of just using a literal
string.

ticket: 7387 (new)
subject: Windows build leaves (OUTPRE)/krb5ccNN.res in ccapi/lib/win/srctmp
tags: pullup
target_version: 1.10.4
Add version info for ccapiserver.exe

Executables and shared libraries should have a file version, so
that the upgrade process works as expected.

ticket: 7386 (new)
tags: pullup
target_version: 1.10.4
Cache TGS-REPs too

Changes in r25660 inadvertently failed to insert TGS-REPs into the
lookaside cache.  Call finish_dispatch_cache() at the end of
dispatch() to handle this case.

ticket: 7388 (new)
target_version: 1.10.4
tags: pullup
Add support for loading interposer modules

Extend the syntax of the gss mech config file to allow a module type
delimited by triangle brackets.  If the module type is "interposer",
flag the mechanism entry as being an interposer mechanism.  A module
marked as an interposer is loaded immediately (so it can interpose a
built-in mechanism) and produces a list of OIDs to interpose.
Interposer mechanisms are not exposed to applications.

[ghudson@mit.edu: Stylistic changes, commit squashing, commit
message]
Add primitives for using interposed mechanisms

Add gssint_select_mechanism() to determine what mechanism to use for a
caller-specified OID, gssint_get_public_oid() to determine what
mechanism to expose to the caller, and gssint_make_public_oid_set to
translate an array of mech OIDs into a set of public OIDs.  In
gssint_get_mechanism(), match interposed OIDs as well as real ones.

[ghudson@mit.edu: Stylistic changes, commit squashing, commit message]
Use interposer mechanisms in mechglue functions

Wherever a GSSAPI mechglue function accepts a mech OID from the
caller, use gssint_select_mech_type() to choose the mechanism to use.
Wherever a mechglue function outputs a mech OID to the caller, use
gssint_get_public_oid() or gssint_make_public_oid_set() to expose the
public mech OID.

[ghudson@mit.edu: Stylistic changes, commit squashing, commit message]
Add SPI calls to import objects by mech oid

An interposer mech needs to be able to handle multiple mechanisms.
When importing a mech token for a name, cred, or context, the
interposer mech needs to know the mech type of the token being
imported.  To make this work, add SPI calls which accept a mech type
argument.

[ghudson@mit.edu: Stylistic changes, commit squashing, commit message]
GENC should always export composite names

RFC 6680 requires that gss_export_name_composite begin the output
token with 04 02.  So we must produce a composite token even if the
name has no authdata, and be able to consume a composite token with no
authdata attributes.

[ghudson@mit.edu: expanded commit message]

ticket: 7400 (new)
Add Python scripts to check for C style issues

util/cstyle-file.py checks a file for C style issues and displays
line-by-line output.  It is not terribly sophisticated, and can
probably be improved upon (e.g. by doing an emacs batch-reindent of
the file and checking for differences in indentation).

util/cstyle.py produces diffs using git, runs the file checker on each
modified C source file in each diff, and displays the output lines
attribute to the diff.