From 389f7115a7d9db51fc058de9727f11454373bc3a Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 6 Mar 2006 03:16:40 +0000 Subject: [PATCH] STABLE14-windows-xstat-20060304 more windows specific mods plus improved output of ipaddrs and port numbers when debugging (cherry picked from commit 638eef405b802fb1215efc9e828996a8c6381067) --- src/afs/NTMakefile | 6 ++- src/config/NTMakefile | 3 ++ src/xstat/NTMakefile | 81 +++++++++++++++++++++++++++++++++++ src/xstat/xstat_cm.c | 21 ++++----- src/xstat/xstat_cm.h | 2 + src/xstat/xstat_fs.c | 23 +++++----- src/xstat/xstat_fs.h | 2 + src/xstat/xstat_fs_callback.c | 8 ++++ 8 files changed, 124 insertions(+), 22 deletions(-) create mode 100644 src/xstat/NTMakefile diff --git a/src/afs/NTMakefile b/src/afs/NTMakefile index 281707459..eee44ca98 100644 --- a/src/afs/NTMakefile +++ b/src/afs/NTMakefile @@ -12,10 +12,12 @@ RELDIR=afs ################################################ # compile_et to get unified_afs.h -$(DESTDIR)\include\afs\unified_afs.c $(DESTDIR)\include\afs\unified_afs.h: unified_afs.et unified_afs.p.h +INCDIR=$(DESTDIR)\include\ + +$(INCDIR)\afs\unified_afs.c $(INCDIR)\afs\unified_afs.h: unified_afs.et unified_afs.p.h $(DEL) unified_afs.c unified_afs.h $(COMPILE_ET) unified_afs -h unified_afs $(COPY) unified_afs.h $(DESTDIR)\include\afs -install: $(DESTDIR)\include\afs\unified_afs.c +install: $(INCDIR)\afs\unified_afs.c $(INCDIR)\afs\afs_stats.h diff --git a/src/config/NTMakefile b/src/config/NTMakefile index f90a4ba0d..18e7e86a1 100644 --- a/src/config/NTMakefile +++ b/src/config/NTMakefile @@ -230,6 +230,9 @@ idirs: doclink ! IF (!EXIST($(OJT)\volser)) $(MKDIR) $(OJT)\volser ! ENDIF +! IF (!EXIST($(OJT)\xstat)) + $(MKDIR) $(OJT)\xstat +! ENDIF ! IF (!EXIST($(OJT)\WINNT)) $(MKDIR) $(OJT)\WINNT ! ENDIF diff --git a/src/xstat/NTMakefile b/src/xstat/NTMakefile new file mode 100644 index 000000000..c76bf4760 --- /dev/null +++ b/src/xstat/NTMakefile @@ -0,0 +1,81 @@ +# 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 + +# Makefile for the module providing the client side of the File Server +# and Cache Manager extended statistics gathering. + +RELDIR=xstat +!INCLUDE ..\config\NTMakefile.$(SYS_NAME) +!INCLUDE ..\config\NTMakefile.version + +LIBDIR = $(DESTDIR)\lib +INCDIR = $(DESTDIR)\include +BINDIR = $(DESTDIR)\bin + +RPCINCLS=$(INCDIR)\lwp.h $(INCDIR)\rx\rx.h + +LIBS= \ + $(LIBDIR)\afs\afsint.lib \ + $(LIBDIR)\afs\afscmd.lib \ + $(LIBDIR)\afsrx.lib \ + $(LIBDIR)\afslwp.lib \ + $(LIBDIR)\afs\afspioctl.lib \ + $(LIBDIR)\afs\afsutil.lib \ + $(LIBDIR)\afs\afsreg.lib + + +install: \ + $(INCDIR)\afs\xstat_fs.h \ + $(INCDIR)\afs\xstat_cm.h \ + $(LIBDIR)\afs_xstat_fs.lib \ + $(LIBDIR)\afs_xstat_cm.lib \ + $(BINDIR)\xstat_fs_test.exe \ + $(BINDIR)\xstat_cm_test.exe + +# +# File Server data collection +# +FSINCLS= $(INCDIR)\xstat_fs.h $(RPCINCLS) + +{.}.c{$(OUT)}.obj: + $(C2OBJ) $< + +$(LIBDIR)\afs_xstat_fs.lib: $(OUT)\xstat_fs.obj $(OUT)\xstat_fs_callback.obj $(OUT)\AFS_component_version_number.obj + $(LIBARCH) + +$(BINDIR)\xstat_fs_test.exe: $(OUT)\xstat_fs_test.obj $(LIBDIR)\afs_xstat_fs.lib $(LIBS) + $(EXECONLINK) rpcrt4.lib + $(_VC_MANIFEST_EMBED_EXE) + $(EXEPREP) + +# +# Cache Manager data collection +# +CMINCLS=$(INCDIR)\xstat_cm.h $(RPCINCLS) + +$(LIBDIR)\afs_xstat_cm.lib: $(OUT)\xstat_cm.obj $(OUT)\AFS_component_version_number.obj + $(LIBARCH) + +$(BINDIR)\xstat_cm_test.exe: $(OUT)\xstat_cm_test.obj $(LIBDIR)\afs_xstat_cm.lib $(LIBS) + $(EXECONLINK) + $(_VC_MANIFEST_EMBED_EXE) + $(EXEPREP) + +# +# Misc targets +# +clean:: + $(DEL) -f $(OUT)\*.obj + $(DEL) -f $(OUT)\*.pdb + $(DEL) -f $(OUT)\*.ilk + $(DEL) -f $(INCDIR)\afs\xstat_fs.h + $(DEL) -f $(INCDIR)\afs\xstat_cm.h + $(DEL) -f $(LIBDIR)\afs_xstat_fs.lib + $(DEL) -f $(LIBDIR)\afs_xstat_cm.lib + $(DEL) -f $(BINDIR)\xstat_cm_test.exe + $(DEL) -f $(BINDIR)\xstat_fs_test.exe + $(DEL) -f AFS_component_version_number.c diff --git a/src/xstat/xstat_cm.c b/src/xstat/xstat_cm.c index 36bdd2d14..753a97457 100644 --- a/src/xstat/xstat_cm.c +++ b/src/xstat/xstat_cm.c @@ -403,6 +403,7 @@ xstat_cm_Init(int a_numServers, struct sockaddr_in *a_socketArray, char *hostNameFound; /*Ptr to returned host name */ int conn_err; /*Connection error? */ int collIDBytes; /*Num bytes in coll ID array */ + char hoststr[16]; /* * If we've already been called, snicker at the bozo, gently @@ -528,9 +529,9 @@ xstat_cm_Init(int a_numServers, struct sockaddr_in *a_socketArray, */ if (xstat_cm_debug) { printf("[%s] Copying in the following socket info:\n", rn); - printf("[%s] IP addr 0x%lx, port %d\n", rn, - (a_socketArray + curr_srv)->sin_addr.s_addr, - (a_socketArray + curr_srv)->sin_port); + printf("[%s] IP addr 0s, port %d\n", rn, + afs_inet_ntoa_r((a_socketArray + curr_srv)->sin_addr.s_addr,hoststr), + ntohs((a_socketArray + curr_srv)->sin_port)); } memcpy(&(curr_conn->skt), a_socketArray + curr_srv, sizeof(struct sockaddr_in)); @@ -539,8 +540,8 @@ xstat_cm_Init(int a_numServers, struct sockaddr_in *a_socketArray, hostutil_GetNameByINet(curr_conn->skt.sin_addr.s_addr); if (hostNameFound == NULL) { fprintf(stderr, - "[%s] Can't map Internet address %lu to a string name\n", - rn, curr_conn->skt.sin_addr.s_addr); + "[%s] Can't map Internet address %s to a string name\n", + rn, afs_inet_ntoa_r(curr_conn->skt.sin_addr.s_addr,hoststr)); curr_conn->hostName[0] = '\0'; } else { strcpy(curr_conn->hostName, hostNameFound); @@ -554,9 +555,9 @@ xstat_cm_Init(int a_numServers, struct sockaddr_in *a_socketArray, */ if (xstat_cm_debug) printf - ("[%s] Connecting to srv idx %d, IP addr 0x%lx, port %d, service 1\n", - rn, curr_srv, curr_conn->skt.sin_addr.s_addr, - curr_conn->skt.sin_port); + ("[%s] Connecting to srv idx %d, IP addr %s, port %d, service 1\n", + rn, curr_srv, afs_inet_ntoa_r(curr_conn->skt.sin_addr.s_addr,hoststr), + ntohs(curr_conn->skt.sin_port)); curr_conn->rxconn = rx_NewConnection(curr_conn->skt.sin_addr.s_addr, /*Server addr */ curr_conn->skt.sin_port, /*Server port */ 1, /*AFS service # */ @@ -564,8 +565,8 @@ xstat_cm_Init(int a_numServers, struct sockaddr_in *a_socketArray, 0); /*# of above */ if (curr_conn->rxconn == (struct rx_connection *)0) { fprintf(stderr, - "[%s] Can't create Rx connection to server '%s' (%lu)\n", - rn, curr_conn->hostName, curr_conn->skt.sin_addr.s_addr); + "[%s] Can't create Rx connection to server '%s' (%s)\n", + rn, curr_conn->hostName, afs_inet_ntoa_r(curr_conn->skt.sin_addr.s_addr,hoststr)); conn_err = 1; } if (xstat_cm_debug) diff --git a/src/xstat/xstat_cm.h b/src/xstat/xstat_cm.h index 809f92ae6..5566f7f2e 100644 --- a/src/xstat/xstat_cm.h +++ b/src/xstat/xstat_cm.h @@ -21,6 +21,7 @@ *------------------------------------------------------------------------*/ #include /*Basic system types */ +#ifndef AFS_NT40_ENV #ifndef IPPROTO_IP #include /*Internet definitions */ #endif @@ -34,6 +35,7 @@ #define _socket_h_ #include /*Socket definitions */ #endif +#endif /* AFS_NT40_ENV */ #include /*Rx definitions */ #include /*AFS CM callback interface */ diff --git a/src/xstat/xstat_fs.c b/src/xstat/xstat_fs.c index e16ad0746..848fee41b 100644 --- a/src/xstat/xstat_fs.c +++ b/src/xstat/xstat_fs.c @@ -46,6 +46,7 @@ extern char *hostutil_GetNameByINet(); /*Host parsing utility */ extern afs_int32 SRXAFSCB_CallBack(); extern afs_int32 SRXAFSCB_InitCallBackState3(); extern afs_int32 SRXAFSCB_Probe(); +extern afs_int32 SRXAFSCB_ProbeUUID(); extern afs_int32 SRXAFSCB_GetCE(); extern afs_int32 SRXAFSCB_GetLock(); @@ -444,6 +445,7 @@ xstat_fs_Init(int a_numServers, struct sockaddr_in *a_socketArray, int conn_err; /*Connection error? */ int PortToUse; /*Callback port to use */ int collIDBytes; /*Num bytes in coll ID array */ + char hoststr[16]; /* * If we've already been called, snicker at the bozo, gently @@ -594,10 +596,11 @@ xstat_fs_Init(int a_numServers, struct sockaddr_in *a_socketArray, * printable name if possible. */ if (xstat_fs_debug) { + char hoststr[16]; printf("[%s] Copying in the following socket info:\n", rn); - printf("[%s] IP addr 0x%lx, port %d\n", rn, - (a_socketArray + curr_srv)->sin_addr.s_addr, - (a_socketArray + curr_srv)->sin_port); + printf("[%s] IP addr %s, port %d\n", rn, + afs_inet_ntoa_r((a_socketArray + curr_srv)->sin_addr.s_addr,hoststr), + ntohs((a_socketArray + curr_srv)->sin_port)); } memcpy(&(curr_conn->skt), a_socketArray + curr_srv, sizeof(struct sockaddr_in)); @@ -606,8 +609,8 @@ xstat_fs_Init(int a_numServers, struct sockaddr_in *a_socketArray, hostutil_GetNameByINet(curr_conn->skt.sin_addr.s_addr); if (hostNameFound == NULL) { fprintf(stderr, - "[%s] Can't map Internet address %lu to a string name\n", - rn, curr_conn->skt.sin_addr.s_addr); + "[%s] Can't map Internet address %s to a string name\n", + rn, afs_inet_ntoa_r(curr_conn->skt.sin_addr.s_addr,hoststr)); curr_conn->hostName[0] = '\0'; } else { strcpy(curr_conn->hostName, hostNameFound); @@ -621,9 +624,9 @@ xstat_fs_Init(int a_numServers, struct sockaddr_in *a_socketArray, */ if (xstat_fs_debug) printf - ("[%s] Connecting to srv idx %d, IP addr 0x%lx, port %d, service 1\n", - rn, curr_srv, curr_conn->skt.sin_addr.s_addr, - curr_conn->skt.sin_port); + ("[%s] Connecting to srv idx %d, IP addr %s, port %d, service 1\n", + rn, curr_srv, afs_inet_ntoa_r(curr_conn->skt.sin_addr.s_addr,hoststr), + ntohs(curr_conn->skt.sin_port)); curr_conn->rxconn = rx_NewConnection(curr_conn->skt.sin_addr.s_addr, /*Server addr */ curr_conn->skt.sin_port, /*Server port */ @@ -632,8 +635,8 @@ xstat_fs_Init(int a_numServers, struct sockaddr_in *a_socketArray, 0); /*# of above */ if (curr_conn->rxconn == (struct rx_connection *)0) { fprintf(stderr, - "[%s] Can't create Rx connection to server '%s' (%lu)\n", - rn, curr_conn->hostName, curr_conn->skt.sin_addr.s_addr); + "[%s] Can't create Rx connection to server '%s' (%s)\n", + rn, curr_conn->hostName, afs_inet_ntoa_r(curr_conn->skt.sin_addr.s_addr,hoststr)); conn_err = 1; } if (xstat_fs_debug) diff --git a/src/xstat/xstat_fs.h b/src/xstat/xstat_fs.h index 613e6a4cc..17631f31b 100644 --- a/src/xstat/xstat_fs.h +++ b/src/xstat/xstat_fs.h @@ -21,6 +21,7 @@ *------------------------------------------------------------------------*/ #include /*Basic system types */ +#ifndef AFS_NT40_ENV #ifndef IPPROTO_IP #include /*Internet definitions */ #endif @@ -34,6 +35,7 @@ #define _socket_h_ #include /*Socket definitions */ #endif +#endif /* AFS_NT40_ENV */ #include /*Rx definitions */ #include /*AFS FileServer interface */ diff --git a/src/xstat/xstat_fs_callback.c b/src/xstat/xstat_fs_callback.c index 67e6a272e..e427e845f 100644 --- a/src/xstat/xstat_fs_callback.c +++ b/src/xstat/xstat_fs_callback.c @@ -24,6 +24,10 @@ #include #include +#ifdef AFS_NT40_ENV +#include +#include +#endif RCSID ("$Header$"); @@ -54,7 +58,11 @@ init_afs_cb() { int count; +#ifdef AFS_NT40_ENV + UuidCreate((UUID *)&afs_cb_interface.uuid); +#else afs_uuid_create(&afs_cb_interface.uuid); +#endif count = rx_getAllAddr(&afs_cb_interface.addr_in, AFS_MAX_INTERFACE_ADDR); if (count <= 0) afs_cb_interface.numberOfInterfaces = 0; -- 2.39.5