Squash a frightening number of warnings from XBSA-related code
authorAnders Kaseorg <andersk@mit.edu>
Sat, 1 Aug 2015 07:15:39 +0000 (03:15 -0400)
committerDaria Brashear <shadow@your-file-system.com>
Sun, 2 Aug 2015 03:41:16 +0000 (23:41 -0400)
Mostly missing prototypes and mismatched format strings, but also some
more disturbing bugs.

Change-Id: I9a10728c7da645bb562374a3598414484de33f4d
Reviewed-on: http://gerrit.openafs.org/11960
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Daria Brashear <shadow@your-file-system.com>

src/butc/afsxbsa.c
src/butc/afsxbsa.h
src/butc/butc_internal.h
src/butc/butc_xbsa.c
src/butc/butc_xbsa.h
src/butc/dump.c
src/butc/lwps.c
src/butc/tcmain.c
src/butm/butm_prototypes.h
src/config/stds.h

index ac8ff62..ee296ba 100644 (file)
 
 #include <roken.h>
 
+#include <ctype.h>
+
 #if defined(AFS_AIX_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_LINUX26_ENV)
 #include <dlfcn.h>
 #endif
 
+#include <afs/tcdata.h>
 #include "butc_xbsa.h"
 #include <afs/butx.h>
+#include "butc_internal.h"
 
 /* Global Definations */
 #define APPLTYPE "afs-butc"
@@ -29,7 +33,7 @@
 #define NOHANDLE 0
 #define XAPI_FSINFO "FS for XOpen API"
 #define DIR_DELIMITER '/'
-#define STR_DIR_DELIMITER '/'
+#define STR_DIR_DELIMITER "/"
 
 xGlobal xopenGbl;
 char traceStr[DSM_MAX_RC_MSG_LENGTH+1];
@@ -196,7 +200,6 @@ void ourLogEvent_Ex(dsUint32_t dsmHandle, dsmLogType type, char *message,
 {
    dsmLogExIn_t dsmLogIn;
    dsmLogExOut_t dsmLogOut;
-   dsInt16_t    rc = 0;
    memset(&dsmLogOut, '\0', sizeof(dsmLogExOut_t));
 
    if (dsmHandle)
@@ -207,7 +210,7 @@ void ourLogEvent_Ex(dsUint32_t dsmHandle, dsmLogType type, char *message,
 
       strcpy(dsmLogIn.appMsgID, appMsg);
       dsmLogIn.message = message;
-      rc = AFSdsmLogEventEx(dsmHandle, &dsmLogIn, &dsmLogOut);
+      AFSdsmLogEventEx(dsmHandle, &dsmLogIn, &dsmLogOut);
    }
 }
 
@@ -638,7 +641,7 @@ qryRespBackupData *respBackupP
 }
 
 
-afs_int32 dsm_MountLibrary()
+afs_int32 dsm_MountLibrary(void)
 {
 void * dynlib = NULL ;
 
@@ -986,7 +989,7 @@ BSA_Int16 BSAInit( long     *BSAHandleP,
 
       strcat(msg, ".\n");
 
-      sprintf(traceStr, msg);
+      strcpy(traceStr, msg);
    }
 
    *BSAHandleP = (long)dsmHandle;
@@ -1079,7 +1082,7 @@ BSA_Int16 BSATerminate(
    }
 
    dsmHandle = BSAHandle;
-   sprintf(traceStr2, "BSATerminate ENTRY: BSAHandle is %d.",
+   sprintf(traceStr2, "BSATerminate ENTRY: BSAHandle is %ld.",
                       BSAHandle);
    ourTrace(dsmHandle, TrFL, traceStr2);
 
@@ -1118,8 +1121,8 @@ BSA_Int16 BSAChangeToken(
 
    dsmHandle = BSAHandle;
 
-   sprintf(traceStr2, "BSAChangeToken ENTRY: BSAHandle:%d old:>%s< new:>%s<",
-           BSAHandle,oldTokenP,newTokenP);
+   sprintf(traceStr2, "BSAChangeToken ENTRY: BSAHandle:%ld old:>%s< new:>%s<",
+           BSAHandle,*oldTokenP,*newTokenP);
    ourTrace(dsmHandle, TrFL, traceStr2);
 
    rc = AFSdsmChangePW(dsmHandle, (char *)oldTokenP, (char *)newTokenP);
@@ -1169,7 +1172,7 @@ BSA_Int16 BSASetEnvironment(
 #endif
    }
 
-   sprintf(traceStr2, "BSASetEnvironment ENTRY: BSAHandle:%d envP:>%p< ",
+   sprintf(traceStr2, "BSASetEnvironment ENTRY: BSAHandle:%ld envP:>%p< ",
            BSAHandle,envP);
    ourTrace(BSAHandle, TrFL, traceStr2);
    XOPENRETURN(BSAHandle,"BSASetEnvironment",
@@ -1188,7 +1191,7 @@ BSA_Int16 BSAGetEnvironment(
    char        envString[ADSM_ENV_STRS][BSA_MAX_DESC];
    char        maxObjStr[6];  /* conversion field. value range is 16-256 */
    dsUint32_t  maxObjNum;
-   dsInt16_t   i, j;
+   dsInt16_t   i;
 
    if(!dsm_init)
    {
@@ -1209,7 +1212,7 @@ BSA_Int16 BSAGetEnvironment(
    {
       memset(envString[i], 0x00, BSA_MAX_DESC);
    }
-   sprintf(traceStr2, "BSAGetEnvironment ENTRY: BSAHandle:%d ObjOwner:'%s' appOwner:'%s' envP:>%p<.",
+   sprintf(traceStr2, "BSAGetEnvironment ENTRY: BSAHandle:%ld ObjOwner:'%s' appOwner:'%s' envP:>%p<.",
            BSAHandle,
            objOwnerP->bsaObjectOwner,
            objOwnerP->appObjectOwner,
@@ -1258,7 +1261,7 @@ BSA_Int16 BSAGetEnvironment(
 
    strcpy(envString[1],"TSMMAXOBJ=");
    maxObjNum = xopenGbl.dsmSessInfo.maxObjPerTxn;  /* convert to 32 bit */
-   sprintf(maxObjStr,"%lu", maxObjNum );
+   sprintf(maxObjStr,"%u", maxObjNum );
    strcat(envString[1], maxObjStr);
 
    strcpy(envString[2], "TSMSRVRSTANZA=");
@@ -1303,7 +1306,7 @@ BSA_Int16 BSABeginTxn(
 #endif
    }
 
-   sprintf(traceStr2, "BSABeginTxn ENTRY: BSAHandle:%d", BSAHandle);
+   sprintf(traceStr2, "BSABeginTxn ENTRY: BSAHandle:%ld", BSAHandle);
    ourTrace(BSAHandle, TrFL, traceStr2);
   /*========================================================
    don't actually issue BeginTxn yet, because we will do our
@@ -1348,7 +1351,7 @@ BSA_Int16 BSAEndTxn(
    memset(rsMsg,        '\0', DSM_MAX_RC_MSG_LENGTH + 1);
    memset(ourMessage,    '\0', DSM_MAX_RC_MSG_LENGTH + 1);
 
-   sprintf(traceStr2, "BSAEndTxn ENTRY: BSAHandle:%d Vote:>%d<", BSAHandle, vote);
+   sprintf(traceStr2, "BSAEndTxn ENTRY: BSAHandle:%ld Vote:>%d<", BSAHandle, vote);
    ourTrace(BSAHandle, TrFL, traceStr2);
 
    dsmHandle = BSAHandle;
@@ -1493,7 +1496,7 @@ ObjectDescriptor *BSAobjDescP
 
    memset(&backupData, 0x00, sizeof(qryBackupData));
 
-   sprintf(traceStr2, "BSAQueryObject ENTRY: BSAHandle:%d ObjOwner(qryDesc):'%s' appOwner(qryDesc):'%s' \n ObjName(qryDesc):'%.*s%.*s' \n copyType:%d ObjectType:%d status:%d ",
+   sprintf(traceStr2, "BSAQueryObject ENTRY: BSAHandle:%ld ObjOwner(qryDesc):'%s' appOwner(qryDesc):'%s' \n ObjName(qryDesc):'%.*s%.*s' \n copyType:%d ObjectType:%d status:%d ",
           BSAHandle,
           BSAqryDescP->owner.bsaObjectOwner,
           BSAqryDescP->owner.appObjectOwner,
@@ -1543,7 +1546,7 @@ ObjectDescriptor *BSAobjDescP
      ====================================================*/
    if (strlen(BSAqryDescP->objName.objectSpaceName) > BSA_MAX_OSNAME)
    {
-      sprintf(traceStr2, "BSAQueryObject: objectSpaceName too long (%d).",
+      sprintf(traceStr2, "BSAQueryObject: objectSpaceName too long (%" AFS_SIZET_FMT ").",
               strlen(BSAqryDescP->objName.objectSpaceName));
       ourTrace(BSAHandle,TrFL, traceStr2);
       bsaRC = BSA_RC_OBJNAME_TOO_LONG;
@@ -1557,7 +1560,7 @@ ObjectDescriptor *BSAobjDescP
    if (strlen(BSAqryDescP->objName.pathName) >
        min(DSM_MAX_HL_LENGTH, BSA_MAX_PATHNAME))
    {
-      sprintf(traceStr2, "BSAQueryObject: pathName too long (%d)",
+      sprintf(traceStr2, "BSAQueryObject: pathName too long (%" AFS_SIZET_FMT ")",
               strlen(BSAqryDescP->objName.pathName));
       ourTrace(BSAHandle, TrFL, traceStr2);
       bsaRC = BSA_RC_OBJNAME_TOO_LONG;
@@ -1616,7 +1619,7 @@ ObjectDescriptor *BSAobjDescP
          if (strlen(BSAqryDescP->desc) > ADSM_MAX_DESC)
          {
 
-            sprintf(traceStr2, "BSAQueryObject: description longer than ADSM max (%d). ", strlen(BSAqryDescP->desc));
+            sprintf(traceStr2, "BSAQueryObject: description longer than ADSM max (%" AFS_SIZET_FMT "). ", strlen(BSAqryDescP->desc));
             ourTrace(BSAHandle,TrFL, traceStr2);
             bsaRC = BSA_RC_DESC_TOO_LONG;
             XOPENRETURN(BSAHandle, "BSAQueryObject",
@@ -1812,7 +1815,7 @@ ObjectDescriptor *BSAobjDescP
 
    if (rc == DSM_RC_OK)
    {
-      sprintf(traceStr2, "BSAQueryObject(AFSdsmGetNextQObj) rc = %d, ObjOwner(objDesc):'%s' appOwner(objDesc):'%s' \n ObjName(objDesc):'%.*s%.*s' \n copyType:%d copyId:'%d %d' cGName:'%s'",
+      sprintf(traceStr2, "BSAQueryObject(AFSdsmGetNextQObj) rc = %d, ObjOwner(objDesc):'%s' appOwner(objDesc):'%s' \n ObjName(objDesc):'%.*s%.*s' \n copyType:%d copyId:'%lu %lu' cGName:'%s'",
        rc,
        BSAobjDescP->Owner.bsaObjectOwner,
        BSAobjDescP->Owner.appObjectOwner,
@@ -1821,7 +1824,7 @@ ObjectDescriptor *BSAobjDescP
        BSAobjDescP->copyType,
        BSAobjDescP->copyId.left,
        BSAobjDescP->copyId.right,
-       BSAobjDescP->cGName == NULL ? "" : BSAobjDescP->cGName);
+       BSAobjDescP->cGName);
        ourTrace(BSAHandle,TrFL, traceStr2);
    }
 
@@ -1837,7 +1840,6 @@ BSA_Int16 BSAGetObject(
 )
 {
    dsInt16_t      rc = 0;
-   dsInt16_t      rc1 = 0;
    BSA_Int16      bsaRC = 0;
    dsUint32_t     dsmHandle;
    DataBlk        getBlk;
@@ -1868,7 +1870,7 @@ BSA_Int16 BSAGetObject(
    memset(errPrefix,     '\0', DSM_MAX_RC_MSG_LENGTH + 1);
    memset(ourMessage,    '\0', DSM_MAX_RC_MSG_LENGTH + 1);
 
-   sprintf(traceStr2, "BSAGetObject ENTRY: BSAHandle:%d version:%d copyType:%d copyId:'%d %d' \n bufferLen:%d numBytes:%d ",
+   sprintf(traceStr2, "BSAGetObject ENTRY: BSAHandle:%ld version:%lu copyType:%d copyId:'%lu %lu' \n bufferLen:%d numBytes:%d ",
            BSAHandle,
            BSAobjDescP->version,
            BSAobjDescP->copyType,
@@ -1882,7 +1884,7 @@ BSA_Int16 BSAGetObject(
 
    if (BSAobjDescP->version != ObjectDescriptorVersion)
    {
-      sprintf(traceStr2,"Warning: BSAGetObject: objectDesc.version unexpected %d.", BSAobjDescP->version);
+      sprintf(traceStr2,"Warning: BSAGetObject: objectDesc.version unexpected %lu.", BSAobjDescP->version);
       ourTrace(BSAHandle,TrFL, traceStr2);
       /*==================================================================
        don't treat this as an error now since it isn't defined in the spec
@@ -1963,8 +1965,8 @@ BSA_Int16 BSAGetObject(
    else
    {
       /*=== appl may call BSAEndData to clean up trxn but don't count on it... ===*/
-      rc1 = AFSdsmEndGetObj(dsmHandle);
-      rc1 = AFSdsmEndGetData(dsmHandle);
+      AFSdsmEndGetObj(dsmHandle);
+      AFSdsmEndGetData(dsmHandle);
       xopenGbl.sessFlags =
                (xopenGbl.sessFlags | FL_END_DATA_DONE);  /* turn flag on */
     }
@@ -1980,7 +1982,6 @@ BSA_Int16 BSAGetData(
 )
 {
    dsInt16_t      rc = 0;
-   dsInt16_t      rc1 = 0;
    BSA_Int16      bsaRC = 0;
    dsUint32_t     dsmHandle;
    DataBlk        getBlk;
@@ -2003,7 +2004,7 @@ BSA_Int16 BSAGetData(
    dsmHandle = BSAHandle;
 
 
-   sprintf(traceStr2, "BSAGetData ENTRY: BSAHandle:%d, bufferLen:%d, numBytes:%d",
+   sprintf(traceStr2, "BSAGetData ENTRY: BSAHandle:%ld, bufferLen:%d, numBytes:%d",
            BSAHandle,
            BSAdataBlockP->bufferLen,
            BSAdataBlockP->numBytes);
@@ -2034,8 +2035,8 @@ BSA_Int16 BSAGetData(
       ourTrace(BSAHandle, TrFL,traceStr2);
 
       /*=== appl may call BSAEndData to clean up trxn but don't count on it... ===*/
-      rc1 = AFSdsmEndGetObj(dsmHandle);
-      rc1 = AFSdsmEndGetData(dsmHandle);
+      AFSdsmEndGetObj(dsmHandle);
+      AFSdsmEndGetData(dsmHandle);
       xopenGbl.sessFlags =
                (xopenGbl.sessFlags | FL_END_DATA_DONE);  /* turn flag on */
    }
@@ -2072,7 +2073,7 @@ BSA_Int16 BSASendData(
    dsmHandle = BSAHandle;
 
 
-   sprintf(traceStr2, "BSASendData ENTRY: BSAHandle:%d bufferLen: %d numBytes: %d ",
+   sprintf(traceStr2, "BSASendData ENTRY: BSAHandle:%ld bufferLen: %d numBytes: %d ",
            BSAHandle,
            BSAdataBlockP->bufferLen,
            BSAdataBlockP->numBytes);
@@ -2098,7 +2099,7 @@ BSA_Int16 BSASendData(
             xopenGbl.sessFlags = (xopenGbl.sessFlags | FL_RC_WILL_ABORT);
       }
       BSAdataBlockP->numBytes = (BSA_UInt16)dataBlkArea.numBytes;
-      sprintf(traceStr2, "BSASendData(AFSdsmSendData): BSAHandle:%d bufferLen: %d numBytes sent: %d ",
+      sprintf(traceStr2, "BSASendData(AFSdsmSendData): BSAHandle:%ld bufferLen: %d numBytes sent: %d ",
            BSAHandle,
            BSAdataBlockP->bufferLen,
            BSAdataBlockP->numBytes);
@@ -2114,7 +2115,6 @@ BSA_Int16 BSAEndData(
 )
 {
    dsInt16_t      rc = 0;
-   dsInt16_t      rc1 = 0;
    BSA_Int16      bsaRC = 0;
    dsUint32_t     dsmHandle;
 
@@ -2136,7 +2136,7 @@ BSA_Int16 BSAEndData(
    dsmHandle = BSAHandle;
 
 
-   sprintf(traceStr2, "BSAEndData ENTRY: BSAHandle:%d", BSAHandle);
+   sprintf(traceStr2, "BSAEndData ENTRY: BSAHandle:%ld", BSAHandle);
    ourTrace(BSAHandle,TrFL, traceStr2);
 
    /*=======================================================
@@ -2243,7 +2243,7 @@ BSA_Int16 BSACreateObject(
 
    if (BSAobjDescP != NULL && BSAdataBlockP != NULL)
    {
-   sprintf(traceStr2, "BSACreateObject ENTRY: BSAHandle:%d ObjOwner:'%s' appOwner:'%s' \n ObjName:'%.*s%.*s' \n objType:%d  size:'%d %d' resourceType:'%s'  \n bufferLen:%d numBytes:%d ",
+   sprintf(traceStr2, "BSACreateObject ENTRY: BSAHandle:%ld ObjOwner:'%s' appOwner:'%s' \n ObjName:'%.*s%.*s' \n objType:%d  size:'%lu %lu' resourceType:'%s'  \n bufferLen:%d numBytes:%d ",
 
            BSAHandle,
            BSAobjDescP->Owner.bsaObjectOwner[0] != '\0' ? BSAobjDescP->Owner.bsaObjectOwner : "",
@@ -2266,7 +2266,7 @@ BSA_Int16 BSACreateObject(
          XOPENRETURN(BSAHandle, "BSACreateObject",
                   bsaRC,__FILE__,__LINE__);
       }
-    sprintf(traceStr2, "BSACreateObject ENTRY: BSAHandle:%d", BSAHandle);
+    sprintf(traceStr2, "BSACreateObject ENTRY: BSAHandle:%ld", BSAHandle);
   }
 
   ourTrace(BSAHandle, TrFL, traceStr2);
@@ -2301,7 +2301,7 @@ BSA_Int16 BSACreateObject(
    /*=== check string lengths - if this too long, it won't fit in our objInfo ===*/
    if (strlen(BSAobjDescP->desc) > ADSM_MAX_DESC)
    {
-      sprintf(traceStr2,"BSACreateObject: description longer than TSM max (%d). ",
+      sprintf(traceStr2,"BSACreateObject: description longer than TSM max (%" AFS_SIZET_FMT "). ",
               strlen(BSAobjDescP->desc));
       ourTrace(BSAHandle, TrFL, traceStr2);
       bsaRC = BSA_RC_DESC_TOO_LONG;
@@ -2310,7 +2310,7 @@ BSA_Int16 BSACreateObject(
    }
    if (strlen(BSAobjDescP->objectInfo) > ADSM_MAX_OBJINFO)
    {
-      sprintf(traceStr2,"BSACreateObject: objInfo longer than TSM max (%d).",
+      sprintf(traceStr2,"BSACreateObject: objInfo longer than TSM max (%" AFS_SIZET_FMT ").",
       strlen(BSAobjDescP->objectInfo));
       ourTrace(BSAHandle,TrFL, traceStr2);
       bsaRC = BSA_RC_OBJINFO_TOO_LONG;
@@ -2329,7 +2329,7 @@ BSA_Int16 BSACreateObject(
 
    if (strlen(BSAobjDescP->objName.objectSpaceName) > BSA_MAX_OSNAME)
    {
-      sprintf(traceStr2, "BSACreateObject: objectSpaceName too long (%d)",
+      sprintf(traceStr2, "BSACreateObject: objectSpaceName too long (%" AFS_SIZET_FMT ")",
                        strlen(BSAobjDescP->objName.objectSpaceName));
       ourTrace(BSAHandle, TrFL, traceStr2);
       bsaRC = BSA_RC_OBJNAME_TOO_LONG;
@@ -2445,7 +2445,7 @@ BSA_Int16 BSACreateObject(
    if (strlen(BSAobjDescP->objName.pathName) >
             min(DSM_MAX_HL_LENGTH, BSA_MAX_PATHNAME))
    {
-      sprintf(traceStr2, "BSACreateObject: pathName too long (%d)",
+      sprintf(traceStr2, "BSACreateObject: pathName too long (%" AFS_SIZET_FMT ")",
               strlen(BSAobjDescP->objName.pathName));
       ourTrace(BSAHandle,TrFL, traceStr2);
       bsaRC = BSA_RC_OBJNAME_TOO_LONG;
@@ -2599,7 +2599,7 @@ BSA_Int16 BSADeleteObject(
 
    dsmHandle = BSAHandle;
 
-   sprintf(traceStr2, "BSADeleteObject ENTRY: BSAHandle:%d CopyType:%d \n ObjName:'%.*s%.*s' copyidP:'%d %d'.",
+   sprintf(traceStr2, "BSADeleteObject ENTRY: BSAHandle:%ld CopyType:%d \n ObjName:'%.*s%.*s' copyidP:'%lu %lu'.",
            BSAHandle,
            copyType,
            100,BSAobjNameP->objectSpaceName,
@@ -2746,7 +2746,7 @@ BSA_Int16 BSAMarkObjectInactive(
    memset(&delInfo, 0x00, sizeof(dsmDelInfo));
    memset(&queryBuffer, 0x00, sizeof(qryBackupData));
 
-   sprintf(traceStr2, "BSAMarkObjectInactive ENTRY: BSAHandle:%d \n ObjName:'%.*s%.*s'.",
+   sprintf(traceStr2, "BSAMarkObjectInactive ENTRY: BSAHandle:%ld \n ObjName:'%.*s%.*s'.",
            BSAHandle,
            100, BSAobjNameP->objectSpaceName,
            100, BSAobjNameP->pathName);
@@ -2763,7 +2763,7 @@ BSA_Int16 BSAMarkObjectInactive(
 
    if (strlen(BSAobjNameP->objectSpaceName) > DSM_MAX_FSNAME_LENGTH)
    {
-      sprintf(traceStr2, "BSAMarkObjectInactive: objectSpaceName too long (%d)", strlen(BSAobjNameP->objectSpaceName));
+      sprintf(traceStr2, "BSAMarkObjectInactive: objectSpaceName too long (%" AFS_SIZET_FMT ")", strlen(BSAobjNameP->objectSpaceName));
       ourTrace(BSAHandle,TrFL, traceStr2);
 
       bsaRC = BSA_RC_OBJNAME_TOO_LONG;
@@ -2777,7 +2777,7 @@ BSA_Int16 BSAMarkObjectInactive(
    if (strlen(BSAobjNameP->pathName) >
        min(DSM_MAX_HL_LENGTH, BSA_MAX_PATHNAME))
    {
-      sprintf(traceStr2, "BSAMarkObjectInactive: pathName too long (%d)",
+      sprintf(traceStr2, "BSAMarkObjectInactive: pathName too long (%" AFS_SIZET_FMT ")",
                          strlen(BSAobjNameP->pathName));
       ourTrace(BSAHandle,TrFL, traceStr2);
       bsaRC = BSA_RC_OBJNAME_TOO_LONG;
index 1ac3e57..d2af72b 100644 (file)
@@ -69,7 +69,6 @@ typedef struct {        /* defined as two unsigned 32-bit integers*/
 #define ADSM_ENV_STRS               3       /* number of env strings          */
 #define ObjectDescriptorVersion     1       /* ver for ObjectDescriptor       */
 #define UserDescriptorVersion       1       /* ver for UserDescriptor         */
-#define BSAObjectType_DATABASE      4       /*  ObjectType for Databases      */
 
 /* Return Codes Used
  */
@@ -327,7 +326,8 @@ typedef enum {
 typedef enum {
     BSAObjectType_ANY  = 1,
     BSAObjectType_FILE    = 2,
-    BSAObjectType_DIRECTORY = 3
+    BSAObjectType_DIRECTORY = 3,
+    BSAObjectType_DATABASE = 4,
  } ObjectType;
 
 /* Operation
index e51aadb..9cac228 100644 (file)
@@ -21,10 +21,18 @@ extern void waitDbWatcher(void);
 extern afs_int32 finishDump(struct budb_dumpEntry *);
 extern afs_int32 threadEntryDir(void *, afs_int32, afs_int32);
 
+/* dump.c */
+#ifdef xbsa
+struct butx_transactionInfo;
+extern afs_int32 InitToServer(afs_int32 taskId, struct butx_transactionInfo * butxInfoP,
+                              char *server);
+#endif
+
 /* list.c */
 extern afs_int32 allocTaskId(void);
 
-/* lwps.h */
+/* lwps.c */
+extern void ELog(afs_int32 task, char *fmt, ...);
 extern int ReadLabel(struct tc_tapeLabel *);
 extern void unmountTape(afs_int32, struct butm_tapeInfo *);
 extern int tapeExpired(struct butm_tapeLabel *);
index fcafeb6..f2da6a6 100644 (file)
 #include <dlfcn.h>
 #endif
 
+#include <afs/tcdata.h>
 #include "butc_xbsa.h"
 #include <afs/butx.h>
 #include <afs/bubasics.h>
 
+#include "butc_internal.h"
 #include "error_macros.h"
 
 extern int debugLevel;
@@ -64,6 +66,7 @@ BSA_Int16(*XBSAQueryApiVersion) (ApiVersion *);
 BSA_Int16(*XBSAGetEnvironment) (BSA_UInt32, ObjectOwner *, char **);
 #endif
 
+void
 xbsa_error(int rc, struct butx_transactionInfo *info)
 {
     switch (rc) {
@@ -126,8 +129,9 @@ xbsa_error(int rc, struct butx_transactionInfo *info)
 afs_int32
 xbsa_MountLibrary(struct butx_transactionInfo *info, afs_int32 serverType)
 {
+#ifndef NEW_XBSA
     void *dynlib;
-    int rc;
+#endif
 
     if (debugLevel > 98) {
        printf("\nxbsa_MountLibraray\n");
@@ -378,7 +382,7 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
        }
        strcpy(info->objOwner.bsaObjectOwner, bsaObjectOwner);
     } else {
-       info->objOwner.bsaObjectOwner[0] = NULL;
+       info->objOwner.bsaObjectOwner[0] = '\0';
     }
 
     if (appObjectOwner) {
@@ -390,7 +394,7 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
        }
        strcpy(info->objOwner.appObjectOwner, appObjectOwner);
     } else {
-       info->objOwner.appObjectOwner[0] = NULL;
+       info->objOwner.appObjectOwner[0] = '\0';
     }
 
     if (secToken) {
@@ -402,7 +406,7 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
        }
        strcpy(info->secToken, secToken);
     } else {
-       info->secToken[0] = NULL;
+       info->secToken[0] = '\0';
     }
 
     rc = (int)XBSAInit(&(info->bsaHandle), &(info->secToken),
@@ -432,7 +436,7 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
     switch (XBSA_GET_SERVER_TYPE(info->serverType)) {
     case XBSA_SERVER_TYPE_ADSM:
        for (i = 0; i < XBSA_NUM_ENV_STRS; i++) {
-           if (strncmp(envP[i], ADSMMaxObject, sizeof(ADSMMaxObject)) == 0) {
+           if (strncmp(envP[i], ADSMMaxObject, strlen(ADSMMaxObject)) == 0) {
                tempStrPtr = envP[i];
                tempStrPtr = tempStrPtr + strlen(ADSMMaxObject);
                info->maxObjects = strtol(tempStrPtr, NULL, 10);
@@ -601,7 +605,7 @@ xbsa_QueryObject(struct butx_transactionInfo * info, char *objectSpaceName,
        }
        strcpy(queryDescriptor.objName.objectSpaceName, objectSpaceName);
     } else {
-       queryDescriptor.objName.objectSpaceName[0] = NULL;
+       queryDescriptor.objName.objectSpaceName[0] = '\0';
     }
 
     if (pathName) {
@@ -613,7 +617,7 @@ xbsa_QueryObject(struct butx_transactionInfo * info, char *objectSpaceName,
        }
        strcpy(queryDescriptor.objName.pathName, pathName);
     } else {
-       queryDescriptor.objName.pathName[0] = NULL;
+       queryDescriptor.objName.pathName[0] = '\0';
     }
 
     queryDescriptor.owner = info->objOwner;
@@ -743,7 +747,6 @@ xbsa_WriteObjectBegin(struct butx_transactionInfo * info,
                      char *objectInfo)
 {
     int rc;
-    int length;
     DataBlock dataBlock;
 
     if (debugLevel > 98) {
@@ -776,7 +779,7 @@ xbsa_WriteObjectBegin(struct butx_transactionInfo * info,
        }
        strcpy(info->curObject.objName.objectSpaceName, objectSpaceName);
     } else {
-       info->curObject.objName.objectSpaceName[0] = NULL;
+       info->curObject.objName.objectSpaceName[0] = '\0';
     }
 
     if (pathName) {
@@ -788,7 +791,7 @@ xbsa_WriteObjectBegin(struct butx_transactionInfo * info,
        }
        strcpy(info->curObject.objName.pathName, pathName);
     } else {
-       info->curObject.objName.pathName[0] = NULL;
+       info->curObject.objName.pathName[0] = '\0';
     }
 
     if (lGName) {
@@ -800,7 +803,7 @@ xbsa_WriteObjectBegin(struct butx_transactionInfo * info,
        }
        strcpy(info->curObject.lGName, lGName);
     } else {
-       info->curObject.lGName[0] = NULL;
+       info->curObject.lGName[0] = '\0';
     }
 
     if (objectDescription) {
@@ -816,7 +819,7 @@ xbsa_WriteObjectBegin(struct butx_transactionInfo * info,
        }
        strcpy(info->curObject.desc, objectDescription);
     } else {
-       info->curObject.desc[0] = NULL;
+       info->curObject.desc[0] = '\0';
     }
 
     if (objectInfo) {
@@ -832,7 +835,7 @@ xbsa_WriteObjectBegin(struct butx_transactionInfo * info,
        }
        strcpy(info->curObject.objectInfo, objectInfo);
     } else {
-       info->curObject.objectInfo[0] = NULL;
+       info->curObject.objectInfo[0] = '\0';
     }
 
     if (info->numObjects == info->maxObjects) {
@@ -910,7 +913,7 @@ xbsa_DeleteObject(struct butx_transactionInfo * info, char *objectSpaceName,
        }
        strcpy(objectName.objectSpaceName, objectSpaceName);
     } else {
-       objectName.objectSpaceName[0] = NULL;
+       objectName.objectSpaceName[0] = '\0';
     }
 
     if (pathName) {
@@ -921,7 +924,7 @@ xbsa_DeleteObject(struct butx_transactionInfo * info, char *objectSpaceName,
        }
        strcpy(objectName.pathName, pathName);
     } else {
-       objectName.pathName[0] = NULL;
+       objectName.pathName[0] = '\0';
     }
 
     rc = (int)XBSAMarkObjectInactive(info->bsaHandle, &objectName);
index e2bc299..635b068 100644 (file)
  */
 struct butx_transactionInfo {
     ApiVersion apiVersion;
+#ifdef NEW_XBSA
+    long bsaHandle;
+#else
     u_long bsaHandle;
+#endif
     afs_int32 serverType;      /* Type and flags           */
     afs_int32 maxObjects;      /* max objects/transaction  */
     afs_int32 numObjects;      /* objects in current trans */
index 2073522..cd5d591 100644 (file)
@@ -620,7 +620,7 @@ xbsaDumpVolume(struct tc_dumpDesc * curDump, struct dumpRock * dparamsPtr)
     hostVolumeHeader.contd = 0;
     volumeHeader_hton(&hostVolumeHeader, (struct volumeHeader *)buffer);
 
-    rc = xbsa_WriteObjectData(&butxInfo, (struct volumeHeader *)buffer,
+    rc = xbsa_WriteObjectData(&butxInfo, buffer,
                              sizeof(struct volumeHeader), &bytesWritten);
     if (rc != XBSA_SUCCESS) {
        ErrorLog(1, taskId, rc, 0,
@@ -633,7 +633,7 @@ xbsaDumpVolume(struct tc_dumpDesc * curDump, struct dumpRock * dparamsPtr)
     bytesWritten = sizeof(struct volumeHeader);
     if (bytesWritten != sizeof(struct volumeHeader)) {
        ErrorLog(1, taskId, rc, 0,
-                "The size of VolumeHeader written (%d) does not equal its actual size (%d)\n",
+                "The size of VolumeHeader written (%d) does not equal its actual size (%" AFS_SIZET_FMT ")\n",
                 bytesWritten, sizeof(struct volumeHeader));
        ERROR_EXIT(TC_INTERNALERROR);
     }
@@ -680,7 +680,7 @@ xbsaDumpVolume(struct tc_dumpDesc * curDump, struct dumpRock * dparamsPtr)
            hostVolumeHeader.contd = 0;
            hostVolumeHeader.magic = TC_VOLENDMAGIC;
            hostVolumeHeader.endTime = time(0);
-           volumeHeader_hton(&hostVolumeHeader, &buffer[bytesread]);
+           volumeHeader_hton(&hostVolumeHeader, (struct volumeHeader *)&buffer[bytesread]);
            bytesread += sizeof(hostVolumeHeader);
 
            /* End the dump and transaction with the volserver. We end it now, before
@@ -2029,14 +2029,14 @@ DeleteDump(void *param)
     extern struct udbHandleS udbHandle;
     extern struct deviceSyncNode *deviceLatch;
 
+    dumpid = ptr->dumpID;
+    taskId = ptr->taskId;      /* Get task Id */
+
     afs_pthread_setname_self("deletedump");
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);
     clearStatus(taskId, DRIVE_WAIT);
 
-    dumpid = ptr->dumpID;
-    taskId = ptr->taskId;      /* Get task Id */
-
     printf("\n\n");
     TapeLog(2, taskId, 0, 0, "Delete Dump %u\n", dumpid);
 
@@ -2194,6 +2194,6 @@ DeleteDump(void *param)
        code = BUTX_DELETENOVOL;
        setStatus(taskId, TASK_ERROR);
     }
-    return (void *)(code);
+    return (void *)(uintptr_t)(code);
 }
 #endif
index b43449a..d262991 100644 (file)
@@ -982,15 +982,12 @@ xbsaRestoreVolumeData(struct rx_call *call, void *rock)
     afs_int32 headBytes, tailBytes, w;
     afs_int32 taskId;
     struct volumeHeader volTrailer;
-    afs_int32 vtsize = 0;
     int found;
     struct dumpNode *nodePtr;
-    struct tc_restoreDesc *Restore;
     afs_int32 bytesRead, tbuffersize, endData = 0;
     char *buffer = (char *)bufferBlock, tbuffer[256];
 
     nodePtr = rparamsPtr->nodePtr;
-    Restore = nodePtr->restores;
     taskId = nodePtr->taskID;
 
     /* Read the volume fragment one block at a time until
index 65d25b7..197fe25 100644 (file)
@@ -56,6 +56,7 @@
 #define XBSA_TCMAIN
 #include "butc_xbsa.h"
 #include "butc_prototypes.h"
+#include "butc_internal.h"
 
 #define N_SECURITY_OBJECTS 3
 #define ERRCODE_RANGE 8                /* from error_table.h */
index b25a30f..aad5f32 100644 (file)
@@ -11,6 +11,7 @@
 
 /* file_tm.c */
 
+extern void incSize(struct butm_tapeInfo *info, afs_uint32 dataSize);
 extern afs_int32 SeekFile(struct butm_tapeInfo *, int);
 extern afs_int32 butm_file_Instantiate(struct butm_tapeInfo *,
                                       struct tapeConfig *);
index f4a9812..4b4c688 100644 (file)
@@ -178,7 +178,7 @@ typedef struct afs_hyper_t {        /* unsigned 64 bit integers */
         } else if ((n) >= 2*s) { /*Shift off all bits*/                    \
            (a).high = (a).low = 0;                                         \
         } else if ((n) < s) { /*Part of low shifted into high*/            \
-           (a).high = ((a).high<<(n)) | (((a).low>>(s-(n))) & (1<<(n))-1); \
+           (a).high = ((a).high<<(n)) | (((a).low>>(s-(n))) & ((1<<(n))-1)); \
            (a).low  = (a).low << (n);                                      \
         } else if ((n) >= s) { /*All of low shifted into high plus some*/  \
            (a).high = (a).low << ((n)-s);                                  \