butc-xbsa-20040714
[openafs.git] / src / butc / butc_xbsa.c
index e2c7764..85dc0e5 100644 (file)
@@ -24,6 +24,9 @@ RCSID
 #include <errno.h>
 #include "butc_xbsa.h"
 #include <afs/butx.h>
+#include <afs/bubasics.h>
+
+#include "error_macros.h"
 
 extern int debugLevel;
 
@@ -256,8 +259,8 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
 {
     char envStrs[XBSA_NUM_ENV_STRS][BSA_MAX_DESC];
     char *envP[XBSA_NUM_ENV_STRS + 1];
-    char *ADSMMaxObject = "MAXOBJ=";
-    char *ADSMServer = "DSMSRVR=";
+    char *ADSMMaxObject = "TSMMAXOBJ=";
+    char *ADSMServer = "TSMSRVR=";
     char *tempStrPtr;
     int i;
     int rc;
@@ -303,6 +306,7 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
            tempStrPtr = tempStrPtr + strlen(ADSMServer);
            strcat(tempStrPtr, serverName);
            envP[1] = NULL;
+           envP[0] = NULL;     /* Hack for TSM V5 */
        } else {
            envP[0] = NULL;
            ELog(0, "xbsa_Initialize: The serverName was not specified\n");
@@ -374,6 +378,8 @@ xbsa_Initialize(struct butx_transactionInfo * info, char *bsaObjectOwner,
        return (BUTX_GETENVFAIL);
     }
 
+ info->maxObjects = 255; /* Hack for ADSM V5: unclear what this actually means... */
+
     switch (XBSA_GET_SERVER_TYPE(info->serverType)) {
     case XBSA_SERVER_TYPE_ADSM:
        for (i = 0; i < XBSA_NUM_ENV_STRS; i++) {