From: Derrick Brashear Date: Mon, 4 Apr 2011 17:43:44 +0000 (-0400) Subject: afscp: build for windows X-Git-Tag: openafs-devel-1_7_1~622 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=d5349810730ff16c68280745398c136ddbdb2b8d afscp: build for windows attempt windows support for afscp Change-Id: I61cb1349466f24558b320bc40e3fae42ce654810 Reviewed-on: http://gerrit.openafs.org/4424 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/NTMakefile b/NTMakefile index 10b5544..c3a6544 100644 --- a/NTMakefile +++ b/NTMakefile @@ -508,7 +508,7 @@ client_osi: license $(NTMAKE) $(CD) ..\..\.. -afsd: client_osi +afsd: client_osi libafscp @echo ***** $@ $(DOCD) $(SRC)\WINNT\$@ $(CD) $(SRC)\WINNT\$@ @@ -676,6 +676,13 @@ rpctestlib: fsint libafsrpc $(NTMAKE) $(CD) ..\.. +libafscp: util afs volser vlserver rx auth fsint afsdobjs + @echo ***** $@ + $(DOCD) $(SRC)\$@ + $(CD) $(SRC)\$@ + $(NTMAKE) + $(CD) ..\.. + extra: netidmgr_plugin rpctestlib ! IF EXIST($(SRC)\WINNT\extra) && EXIST($(SRC)\WINNT\extra\NTMakefile) @echo ***** $@ diff --git a/src/config/afsconfig-windows.h b/src/config/afsconfig-windows.h index 507e696..1049f8d 100644 --- a/src/config/afsconfig-windows.h +++ b/src/config/afsconfig-windows.h @@ -263,5 +263,7 @@ typedef int errno_t; #define HAVE_GETCWD 1 #define HAVE_STRUPR 1 +#define HAVE_KRB5_CREDS_KEYBLOCK_ENCTYPE 1 + /* Build afsroken.dll as a dynamic library */ #define ROKEN_LIB_DYNAMIC 1 diff --git a/src/libafscp/NTMakefile b/src/libafscp/NTMakefile new file mode 100644 index 0000000..e614078 --- /dev/null +++ b/src/libafscp/NTMakefile @@ -0,0 +1,55 @@ +# Copyright 2000, International Business Machines Corporation and others. +# All Rights Reserved. +# +# This software has been released under the terms of the IBM Public +# License. For details, see the LICENSE file in the top-level source +# directory or online at http://www.openafs.org/dl/license10.html + +RELDIR=libacl +!INCLUDE ..\config\NTMakefile.$(SYS_NAME) +!INCLUDE ..\config\NTMakefile.version + +############################################################################ +# Install inc files + +INCFILEDIR = $(DESTDIR)\include\afs + +INCFILES =\ + $(INCFILEDIR)\afscp.h + + +############################################################################ +# build afscp.lib + +LIBFILE = $(DESTDIR)\lib\afs\afscp.lib + +afscflags = -I..\WINNT\kfw\inc\krb5 $(afscflags) + +LIBOBJS =\ + $(OUT)\afscp_callback.obj \ + $(OUT)\afscp_server.obj \ + $(OUT)\afscp_fid.obj \ + $(OUT)\afscp_volume.obj \ + $(OUT)\afscp_file.obj \ + $(OUT)\afscp_dir.obj \ + $(OUT)\afscp_init.obj \ + $(OUT)\afscp_util.obj \ + $(OUT)\afscp_dirops.obj \ + $(OUT)\afscp_acl.obj \ + $(OUT)\AFS_component_version_number.obj + +$(LIBFILE): $(LIBOBJS) + $(LIBARCH) + + +############################################################################ +# install afscp.lib + +install_headers: $(INCFILES) + +install: $(LIBFILE) + +clean:: + $(DEL) $(INCFILES) + +mkdir: diff --git a/src/libafscp/afscp_callback.c b/src/libafscp/afscp_callback.c index dfb5b3b..0bd158b 100644 --- a/src/libafscp/afscp_callback.c +++ b/src/libafscp/afscp_callback.c @@ -29,11 +29,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include -#include #ifdef AFS_NT40_ENV #include #include +#include +#include #endif + +#include #include "afscp.h" #include "afscp_internal.h" @@ -55,6 +58,7 @@ init_afs_cb(void) * untested here and may be unnecessary if rx_getAllAddr() can be used on that * platform. However, there was already an ifdef here surrounding UuidCreate(). */ + long rx_mtu = -1; int code; int cm_IPAddr[CM_MAXINTERFACE_ADDR]; /* client's IP address in host order */ int cm_SubnetMask[CM_MAXINTERFACE_ADDR]; /* client's subnet mask in host order */ @@ -307,7 +311,8 @@ SRXAFSCB_CallBack(struct rx_call * rxcall, AFSCBFids * Fids_Array, struct afscp_callback *cb; struct afscp_venusfid f; struct AFSFid *fid; - int i, j; + int i; + unsigned int j; if (server == NULL) { return 0; @@ -529,10 +534,7 @@ SRXAFSCB_TellMeAboutYourself(struct rx_call * a_call, for (i = 0; i < cm_noIPAddr; i++) { addr->addr_in[i] = cm_IPAddr[i]; addr->subnetmask[i] = cm_SubnetMask[i]; - addr->mtu[i] = (rx_mtu == -1 - || (rx_mtu != -1 - && cm_NetMtu[i] < - rx_mtu)) ? cm_NetMtu[i] : rx_mtu; + addr->mtu[i] = cm_NetMtu[i]; } } else { addr->numberOfInterfaces = 0; diff --git a/src/libafscp/afscp_dir.c b/src/libafscp/afscp_dir.c index 2dee41c..eb95c73 100644 --- a/src/libafscp/afscp_dir.c +++ b/src/libafscp/afscp_dir.c @@ -34,6 +34,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#ifdef AFS_NT40_ENV +#include +#endif #include "afscp.h" #include "afscp_internal.h" diff --git a/src/libafscp/afscp_fid.c b/src/libafscp/afscp_fid.c index 536f8f1..9d9183c 100644 --- a/src/libafscp/afscp_fid.c +++ b/src/libafscp/afscp_fid.c @@ -180,8 +180,11 @@ afscp_Stat(const struct afscp_venusfid *fid, struct stat *s) s->st_mode = S_IFREG; else if (status.FileType == Directory) s->st_mode = S_IFDIR; +#ifndef AFS_NT40_ENV else if (status.FileType == SymbolicLink) s->st_mode = S_IFLNK; + /* a behavior needs to be defined on Windows */ +#endif else { afscp_errno = EINVAL; return -1;