Commit Graph

2405 Commits

Author SHA1 Message Date
Jeffrey Altman
74197f04f3 install-notes-20040723
Update the install notes to describe conflicts between SMB Authentication
and Windows machines configured with non-Windows Kerberos authentication
used to map to local accounts.

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

More updates to smb auth vs external kerberos login
2004-07-23 23:25:23 +00:00
Derrick Brashear
56f82397c6 linux-null-out-stat-struct-20040723
FIXES 3812

we should memset this to 0. we should also only do it once for linux 2.2. code is slightly different in the cvs head.
2004-07-23 23:06:22 +00:00
Jeffrey Altman
d4b14b4e94 allserversdown-20040723
When all servers associated with a volume get into the CM_SERVERFLAG_DOWN
state, the error CM_ERROR_ALLOFFLINE would be returned by cm_ConnByMServers.
cm_Analyze was then supposed to be pausing for 5 seconds and then reset the
volume information.  Unfortunately, although it called cm_ForceUpdateVolume,
cm_ForceUpdateVolume does not reset the CM_SERVERFLAG_DOWN state on the
servers.  Therefore, when cm_ForceUpdateVolume calls cm_ConnByMServers it
would be given a CM_ERROR_ALLOFFLINE.  In other words, there was no way
out of the state.

cm_Analyze will now reset the CM_SERVERFLAG_DOWN as well as setting the
server status to not_busy after its 5 second wait.  This will allow
cm_ForceUpdateVolume to actually reset the volume information, and
refresh it if servers for the volume are newly accessible.

Also, added some missing locking calls in cm_Analyze.

In cm_ConnByMServers, change the error reporting to return CM_ERROR_ALLBUSY
only when all servers are busy or down; return CM_ERROR_ALLOFFLINE when all
servers are down; and only return CM_ERROR_NOSUCHVOLUME if the server list
for the volume is empty.  In all other cases return CM_ERROR_TIMEDOUT.
2004-07-23 22:55:23 +00:00
Jeffrey Altman
f84f7306a3 afslogon-domain-20040722
Fix null reference to bstr when active directory is not available
during a short domain acquisition
2004-07-23 00:21:06 +00:00
Jeffrey Altman
7da4cd1adc prototypes-20040723
fix prototype for afs_realm_of_cell
2004-07-22 23:41:27 +00:00
Jeffrey Altman
1a5fbdb943 afslogon-20040722
the procedure used to obtain the profile directory failed in Domains
which were not Forests.  If ADS_NAME_INITTYPE_GC fails, we must try
ADS_NAME_INITTYPE_DOMAIN which requires the Domain.  Added a Domain
parameter to QueryAdHomePathFromSid.  This was easy to obtain in
the NPLogonNotify since the logon domain is provided as a parameter.
Unfortunately, the domain provided to the winlogon event notification
routine is the user authentication domain, not the logon domain for
the local machine.  Needed to create a  GetLocalShortDomain function
which uses the IADsADSystemInfo COM interface to obtain the local
short domain.  With this in place, we can now properly detect the
profile directory in all cases.

Document MaxLogSize in registry.txt
2004-07-22 23:15:37 +00:00
Jeffrey Altman
d538abeb1b misc-cleanup-20040721
pass the correct data type into afssw_GetClientCellServDBDir
2004-07-22 10:42:40 +00:00
Jeffrey Altman
2743691b77 misc-cleanups-20040721
* Cleanup debug logging.  In particular, allow the TraceOptions registry
  value to be used as a bit flag as it was intended.  Give each type of
  debugging its own value instead of having each module test for the zero
  bit.

* Modify the handling of the afsd_init.log file.  This file originally
  was replaced on each start.  However, with auto-restart this causes
  any error information from the previous halt to be lost.  So it was
  changed quite a while back to append forever.  The problem with this
  is that the file gets unreasonably large.  Solution: add a new registry
  value, MaxLogSize, which determins how large the file should be allowed
  to become before truncation.  The default is 100K.  The magic value 0
  means grow indefinitely.

* Update afslogon.dll.  Cleanup logging.  Fix some errors.  Remove unused
  variables.  AND do not Forget Tokens on Logoff if the profile is located
  in AFS space.

* Fix a bug introduced yesterday in cellconfig.c which caused problems
  accessing the CellServDB file

* Update the NSIS installer to replace the CRTL DLLs instead of overwrite
  them.

* Add new Startup Winlogon handler to initialize the TraceOption.
2004-07-22 10:23:52 +00:00
Derrick Brashear
efce9b6f29 fstrace-avoid-double-glock-in-dentry-code-during-fstrace-20040719
fstracing on a linux machine and trying to fs flush a file in the cache would trigger a hang on a machine with SMP kernel. fix it.

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================


fstracing on a linux machine and trying to fs flush a file in the cache would tr
igger a hang on a machine with SMP kernel. fix it.
2004-07-21 23:23:38 +00:00
Jeffrey Altman
9bc1b6a7b9 trace-logging-20040721
TraceLogging is supposed to be activated for different purposes
with bit flags.  The osi log and afslogon both used the same bit
flag.  Bit 0 is now for afslogon; and Bit 1 is for osi log.
2004-07-21 22:41:33 +00:00
Jeffrey Altman
0e64553af6 cifs-rap-20040721
Fix smb_ReceiveRAPNetShareEnum to report the correct buffer size to the
client
2004-07-21 17:08:28 +00:00
Jeffrey Altman
b0920fe9c2 registry-docs-logoff-20040721
* Update Windows Notes files

* Modify logoff procedure to use a pioctl to check if an arbitrary path
  exists within AFS

* Add a new registry value HKLM\Software\OpenAFS\Client  CellServDBDir
  which can be used to locate the CellServDB file in an arbitrary directory
2004-07-21 15:05:59 +00:00
Jeffrey Altman
feb3e76412 afslogon-20040720
Do not release the AFS Tokens at logoff if the user's profile was loaded
from AFS.  In this case we must keep the AFS tokens because we have no
idea how long writing back the profile might take.
2004-07-21 06:27:44 +00:00
Asanka Herath
8517719bc8 smb-rap-20040720
Add CIFS RAP support to the SMB server.  This allows AFS to be queried
with NetGetShareInfo, NetGetServerInfo, etc.  This allows the AFS SMB
server to be browsed using NET VIEW.
2004-07-21 05:43:07 +00:00
Jeffrey Altman
3ed4471744 user-auth-cell-20040720
remember to return the authentication cell name if found
2004-07-20 16:51:07 +00:00
Jeffrey Altman
fd8e75df5e submounts-20040720
Fix afsshare.c to strip the MountRoot off the afs-path before inserting into
the registry

Fix smb.c to read the submounts out of the registry.

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

fix submount extraction from registry
2004-07-20 16:48:18 +00:00
Jeffrey Altman
aa9dff3b1b afsshare-20040719
correct off by one error
2004-07-20 06:16:35 +00:00
Jeffrey Altman
25ec4c8140 ioctl-freelance-20040719
Do not perform a Cell Search when the name matches the SMB IOCTL filename.
This is a special name and is not to be treated as a cell.  The failure
to find the name produces DNS queries as well as disk access.
2004-07-19 23:40:12 +00:00
Derrick Brashear
32ee04d17d pthread-ft-approxtime-is-time-20040719
for tvolser most code paths simply never result in time being updated. seems dangerous.
2004-07-19 16:25:16 +00:00
Jeffrey Altman
f02a7996b9 win32-fd_set-20040719
Make sure that we do not alter the FD_SETSIZE on Windows.
On Windows this is an array of FD_SETSIZE.  FD_SETSIZE does
not define the maximum socket handle value.
2004-07-19 15:39:38 +00:00
Asanka Herath
60446a8ffe registry-20040715
Description of new afslogon functionality
2004-07-16 05:49:26 +00:00
Asanka Herath
7930ab4928 strsafe-20040715
String Safety fixes
2004-07-16 05:40:54 +00:00
Jeffrey Altman
9a8b4bbd93 ntmakefile-20040715
Updated makefiles to avoid macro redefinitions and add new files
to src/WINNT/afsd
2004-07-16 04:56:46 +00:00
Asanka Herath
01e6e22c15 afslogon-20040715
New file for AD logon processing routines.
2004-07-16 04:48:22 +00:00
Jeffrey Altman
fe991aa74f afslogon-wix-cleanup-20040715
- Fix NTMakefiles in many directories to define WIN32_LEAN_AND_MEAN NOGDI
  to avoid macro redefinitions

- update text files

- add "authentication cell" registry value for afscreds.exe

From asanka@mit.edu:

Network provider :

  -  If the user is logging into an AD domain, then look up the user's
     profile path, find out which cell it's in and then authenticate to
     that cell instead of the default cell.

  -  Domain specific registry keys

  -  A few fixes for handling UNICODE_STRINGs

smb3.c :

  -  Delete partial security context during negotiation

client_cpa :

  -  As per the SDK which says we must handle CPL_INQUIRE message, we do.
     Also fixes a small bug where the icon isn't properly set when viewing
     the Control Panel folder.

loopbackutils.cpp

  -  Don't bother setting the app data template, because we are setting
     it in the MSI anyway.

install/wix/NTMakefile

  -  Add a configurable symbol AFSDEV_AUXWIXDEFINES which can be used to
     customize a build of the msi.

install/wix

  -  Move afslogon.dll to SYSTEM32 directory

  -  Add registry keys to support WinLogon notifications.

  -  Rename afsdcell.ini to CellServDB and move it to the client directory.

  -  If there's already an afsdcell.ini in the Windows directory, copy
     that over to the client directory instead.

  -  Add descriptions to AFS client and server services
2004-07-16 04:38:25 +00:00
Jeffrey Altman
8063c68dc8 winnotes-20040715
Update Windows note files with the latest changes.
2004-07-15 17:26:35 +00:00
Jeffrey Altman
aeae9c0301 nsis-installer-20040714
Move afs_cpa.cpl control panel to the OpenAFS\Client\Program
directory and register it in the registry via the
HKLM\Software\Microsoft\Windows\CurrentVersion\Control Panel\Cpls\
key.
2004-07-15 07:53:12 +00:00
Jeffrey Altman
f63ba24b48 nsis-20040714
Rename afsdcell.ini to CellServDB

Add Winlogon Event Notification support

Move afslogon.dll to %WINDIR%\System32
2004-07-15 06:24:22 +00:00
Jeffrey Altman
671792a8d2 cellservdb-20040714
Search for the CellServDB in the OpenAFS client install directory
not in the %WINDIR% directory
2004-07-15 06:22:14 +00:00
Jeffrey Altman
674afe86c0 afslogon-20040714
Add a Winlogon Event Notification handler to afslogon.dll to process
Logoff events.  Upon Logoff call ktc_ForgetAllTokens() on behalf of
the logged off user.

Fix a filename wildcard matching error introduced a few versions back.
2004-07-15 06:20:33 +00:00
Jeffrey Altman
7aca33e6eb incorrect-level-of-indirection-20040713
When freeing a server_t, do not indirect to GC the connections
2004-07-14 07:34:09 +00:00
Asanka Herath
59d81d9d24 xp-sp2-icf-20040713
Windows XP SP2 adds a firewall which blocks all incoming ports by default.
This patch adds support to the AFS Client Service (but not the AFS Server)
to automatically open the firewall to ports in use by the application.

One of the new requirements of this functionality is the use of the
latest Platform SDK "Microsoft Platform SDK for Windows XP SP2".

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

 For the XP SP2 SDK both the Core and Data Access SDKs are required
2004-07-14 07:12:20 +00:00
Hans-Gunther Borrmann
ccea80c085 butc-xbsa-20040714
FIXES 5827

update for xbsa 5
2004-07-14 05:46:48 +00:00
Chas Williams
4f13d9daa9 glock-kernel-lock-ordering-20040714
FIXES 5836

make lock order consistent
some routines have kernel lock held when entered, so...
2004-07-14 05:34:46 +00:00
Chas Williams
b7b62574fd fix-fstrace-for-linux-20040714
FIXES 5835

don't deadlock when flushing dcache children
2004-07-14 05:21:54 +00:00
Chas Williams
4aba717d64 linux-free-dont-drop-alloc-sem-20040714
FIXES 5831

dropping semaphore not needed, so don't
2004-07-14 05:14:31 +00:00
Christoph Becker-Freyseng
f70a694a15 linux24-update-20040713
FIXES 5713

make getgroups compile
deal with afs_suser(x) and afs_suser()
2004-07-14 05:08:06 +00:00
Jeffrey Altman
8e3383a9ea no-more-ini-files-20040713
Get rid of all %WINDIR% INI files

afs_freelance.ini moved to the HKLM hive SOFTWARE\OpenAFS\Client\Freelance

afsdcell.ini moved to the Openafs Client install directory and renamed
to CellServDB to match Unix and the Openafs Server.

afsdsbmt.ini moved to the registry.  Submounts are moved to HKLM hive
SOFTWARE\OpenAFS\Client\Submounts.  Active Maps and Drive Mappings are
moved to the HKCU hive SOFTWARE\OpenAFS\Client\Active Maps and Mappings.
CSCPolicy is moved to HKCU hive.

afsdns.ini is no longer used.

NSIS installer updated to migrate the afsdcell.ini to CellServDB

The cm_freelance.ini module has been modified to migrate the afs_freelance.ini
data to the registry on first execution.

The afsdsbmt.ini file data is not currently being migrated.
2004-07-14 04:28:36 +00:00
Jeffrey Altman
f2235b4832 migrate-to-registry-20040713
* NTMakefile: missing commit from SMB AUTH patches

* cm_config.c: obtain location of CellServDB from registry
	[HKLM\SOFTWARE\OpenAFS\Client] "CellServDB"=reg_sz
  This will allow us to move from %WINDIR%\afsdcell.ini to
  C:\Program Files\OpenAFS\Client\CellServDB.  This is necessary
  for compatibility with Terminal Server in which applications
  are not given access to %WINDIR%.

* cm_freelance.c: migrate freelance mount point data from
  %WINDIR%\afs_freelance.ini to the registry
	[HKLM\SOFTWARE\OpenAFS\Client\Freelance]
  Each value, whose name is unimportant, contains one mount point
  entry.  After the first execution of this code, the current data
  in afs_freelance.ini will be moved to the registry and then all
  subsequent data access will be performed via the registry.
  The afs_freelance.ini file will be deleted after the migration
  has occurred.
2004-07-13 14:09:16 +00:00
Jeffrey Altman
10e32e99ce ntlm-back-connection-hostnames-20040713
Add function configureBackConnectionHostNames(void)

On Windows XP SP2, Windows 2003 SP1, and all future Windows operating systems
there is a restriction on the use of SMB authentication on loopback connections.
There are two work arounds available:

  (1) We can disable the check for matching host names.  This does not
  require a reboot:
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
    "DisableLoopbackCheck"=dword:00000001

  (2) We can add the AFS SMB/CIFS service name to an approved list.  This
  does require a reboot:
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0]
    "BackConnectionHostNames"=multi-sz

The algorithm will be:
  Check to see if cm_NetbiosName exists in the BackConnectionHostNames list
   If not, add it to the list.  (This will not take effect until the next reboot.)
      and check to see if DisableLoopbackCheck is set.
      If not set, set the DisableLoopbackCheck value to 0x1
                  and create HKLM\SOFTWARE\OpenAFS\Client  UnsetDisableLoopbackCheck
   else If cm_NetbiosName exists in the BackConnectionHostNames list,
      check for the UnsetDisableLoopbackCheck value.
      If set, set the DisableLoopbackCheck flag to 0x0
      and delete the UnsetDisableLoopbackCheck value
2004-07-13 07:22:53 +00:00
Derrick Brashear
229051032d admin-doc-sysname-20040713
FIXES 4054

update docs to reflect sys being static.
2004-07-13 07:08:32 +00:00
Hans-Gunther Borrmann
320ddefc69 butc-xbsa-20040713
FIXES 5761

update for butc xbsa support
2004-07-13 06:52:44 +00:00
Rainer Schöpf
4bd03a76c5 kdump-linux-26-20040713
FIXES 5814

update kdump for linux 2.6
2004-07-13 06:49:54 +00:00
Rainer Schöpf
3791318ca4 afs-cold-shutdown-20040713
FIXES 5768

use correct syscall parm for cold shutdown
2004-07-13 06:45:14 +00:00
Jeffrey Altman
d03840f85c smb-auth-20040711
Over last several years significant efforts have been made to work around
the inability to protect user tokens from use by inappropriate entities.
The tokens are associated with a given userid and session by a combination
of an SMB based ioctl and an authenticated/encrypted RPC.  This has opened
the door for tokens to be borrowed by other users if they could connect
to the same SMB server with the identical userid.  This was trivially
possible because the SMB connections were unauthenticated.

This patch adds two forms of authenticated SMB connections: NTLM and
Extended Security (aka GSS SPNEGO).  By default Extended Security mode
is used.  This patch has been tested on 2000 workstation, 2000 server,
XP SP1, and 2003 Server, and XP SP2 RC2.  The Extended Security works on
all platforms except for XP SP2 RC2 regards of whether or not the machine
is part of a domain or not; and whether or not a local or domain account
is used.

On XP SP2 RC2, attempts to use negotiate Extended Security result in a
Logon Denied error from AcceptSecurityContext() and a substatus code of
0x7C90486A is logged to the Security Event log via the NTLM SSP.
The SMB AUTH NTLM mode succeeds on XP SP2 RC2.

Disabling SMB Authentication or specifying the use of NTLM mode may be done
via the registry.

Value   : smbAuthType
Type    : DWORD {0..2}
Default : 2

  If this value is specified, it defines the type of SMB authentication
  which must be present in order for the Windows SMB client to connect
  to the AFS Client Service's SMB server.  The values are:
    0 = No authentication required
    1 = NTLM authentication required
    2 = Extended (GSS SPNEGO) authentication required
  The default is Extended authentication
2004-07-11 22:22:57 +00:00
Jeffrey Altman
5489c6c955 unicode-strings-20040711
UNICODE_STRING buffers are measured by their length field;
do not assume they are nul terminated
2004-07-11 21:56:27 +00:00
Jeffrey Altman
ec5b34b8fc winnotes-registry-20040708
Add descriptions of Global Drive Mappings; MaxCPUs, and Environment
Variables
2004-07-08 15:45:58 +00:00
Jeffrey Altman
3f337727bc aklog-uninitialized-variable-20040708
make sure that the krb5_context is initialized to 0.  Otherwise, we
might try to free it.
2004-07-08 14:25:40 +00:00
Jeffrey Altman
f328d29f96 local-rpc-20040708
change the default RPC type from "ncacn_np" to "ncalrpc"
This says to use local rpc instead of named pipes from the
client to the server.  Named pipes can still be used by
specifying the "AFS_RPC_PROTSEQ" environment variable.
2004-07-08 14:24:00 +00:00
Love Hörnquist-Åstrand
3fb32a2561 openafs-for-arla-20040708
FIXES 5490

allow use of openafs binaries with arla's linux 2.6 support
2004-07-08 06:35:26 +00:00