windows-xstat-20060304
authorJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 6 Mar 2006 03:11:31 +0000 (03:11 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 6 Mar 2006 03:11:31 +0000 (03:11 +0000)
====================
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.
====================

build xstat utils for windows

====================

more windows specific mods plus improved output of ipaddrs and port
numbers when debugging

src/afs/NTMakefile
src/config/NTMakefile
src/xstat/NTMakefile [new file with mode: 0644]
src/xstat/xstat_cm.c
src/xstat/xstat_cm.h
src/xstat/xstat_fs.c
src/xstat/xstat_fs.h
src/xstat/xstat_fs_callback.c

index 2817074..eee44ca 100644 (file)
@@ -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
 
index 755250e..2c1879a 100644 (file)
@@ -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 (file)
index 0000000..c76bf47
--- /dev/null
@@ -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
index 36bdd2d..753a974 100644 (file)
@@ -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)
index 809f92a..5566f7f 100644 (file)
@@ -21,6 +21,7 @@
  *------------------------------------------------------------------------*/
 
 #include <sys/types.h>         /*Basic system types */
+#ifndef AFS_NT40_ENV
 #ifndef        IPPROTO_IP
 #include <netinet/in.h>                /*Internet definitions */
 #endif
@@ -34,6 +35,7 @@
 #define _socket_h_
 #include <sys/socket.h>                /*Socket definitions */
 #endif
+#endif /* AFS_NT40_ENV */
 
 #include <rx/rx.h>             /*Rx definitions */
 #include <afs/afscbint.h>      /*AFS CM callback interface */
index e16ad07..848fee4 100644 (file)
@@ -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)
index 613e6a4..17631f3 100644 (file)
@@ -21,6 +21,7 @@
  *------------------------------------------------------------------------*/
 
 #include <sys/types.h>         /*Basic system types */
+#ifndef AFS_NT40_ENV
 #ifndef        IPPROTO_IP
 #include <netinet/in.h>                /*Internet definitions */
 #endif
@@ -34,6 +35,7 @@
 #define _socket_h_
 #include <sys/socket.h>                /*Socket definitions */
 #endif
+#endif /* AFS_NT40_ENV */
 
 #include <rx/rx.h>             /*Rx definitions */
 #include <afs/afsint.h>                /*AFS FileServer interface */
index 2938e47..6d05387 100644 (file)
 
 #include <afsconfig.h>
 #include <afs/param.h>
+#ifdef AFS_NT40_ENV
+#include <windows.h>
+#include <rpc.h>
+#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;