Use unsigned IP addresses in bu*
[openafs.git] / src / butc / dump.c
index be1dcb2..5364949 100644 (file)
@@ -10,7 +10,6 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
-
 #include <sys/types.h>
 #ifdef AFS_NT40_ENV
 #include <winsock2.h>
@@ -23,6 +22,9 @@
 #endif
 #include <stdlib.h>
 #include <string.h>
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
 #include <rx/xdr.h>
 #include <rx/rx.h>
 #include <lwp.h>
 #include <afs/tcdata.h>
 #include <afs/bubasics.h>
 #include <afs/budb_client.h>
+#include <afs/butm_prototypes.h>
 #include <afs/vldbint.h>
 #include <afs/ktime.h>
 #include <afs/vlserver.h>
 #include <afs/volser.h>
+#include <afs/volser_prototypes.h>
 #include <afs/volint.h>
 #include <afs/cellconfig.h>
+#include <afs/bucoord_prototypes.h>
 
+#include "butc_internal.h"
 #include "error_macros.h"
 #include "butc_xbsa.h"
 #include "afs/butx.h"
 
-
 /* GLOBAL CONFIGURATION PARAMETERS */
 extern int dump_namecheck;
 extern int queryoperator;
@@ -53,11 +58,6 @@ extern struct ubik_client *cstruct;
 dlqlinkT savedEntries;
 dlqlinkT entries_to_flush;
 
-afs_int32 flushSavedEntries(), finishDump(), finishTape(), useTape(),
-addVolume();
-
-extern struct rx_connection *UV_Bind();
-
 extern afs_int32 groupId;
 extern afs_int32 BufferSize;
 extern afs_int32 statusSize;
@@ -100,7 +100,7 @@ afs_int32 tapeblocks;               /* Number of 16K tape datablocks in buffer (!CONF_XBSA) *
    else \
      sprintf(dumpname, "%s (DumpId %u)", name, dbDumpId);
 
-#if defined(AFS_NT40_ENV) || (defined(AFS_DARWIN_ENV) && !defined(AFS_DARWIN60_ENV)) || defined(AFS_SUN4_ENV)
+#if defined(AFS_NT40_ENV) || defined(AFS_SUN4_ENV)
 int
 localtime_r(time_t * t, struct tm *tm)
 {
@@ -136,6 +136,15 @@ struct dumpRock {
     struct dumpNode *node;
 };
 
+/* Forward declarations */
+
+int makeVolumeHeader(struct volumeHeader *, struct dumpRock *, int);
+int volumeHeader_hton(struct volumeHeader *, struct volumeHeader *);
+char retryPrompt(char *, afs_int32, afs_uint32);
+int getDumpTape(struct dumpRock *, int, afs_int32);
+int getXBSATape(struct dumpRock *);
+afs_int32 createDump(struct dumpRock *);
+
 /* configuration variables */
 #define HITEOT(code) ((code == BUTM_IO) || (code == BUTM_EOT) || (code == BUTM_IOCTL))
 extern int autoQuery;
@@ -150,7 +159,6 @@ afs_int32
 calcExpirationDate(afs_int32 expType, afs_int32 expDate, afs_int32 createTime)
 {
     struct ktime_date kd;
-    afs_int32 Add_RelDate_to_Time();
 
     switch (expType) {
     case BC_REL_EXPDATE:
@@ -171,11 +179,11 @@ calcExpirationDate(afs_int32 expType, afs_int32 expDate, afs_int32 createTime)
     }
 }
 
-afs_int32 curr_bserver = 0;
+afs_uint32 curr_bserver = 0;
 struct rx_connection *curr_fromconn = (struct rx_connection *)0;
 
 struct rx_connection *
-Bind(afs_int32 server)
+Bind(afs_uint32 server)
 {
     if (curr_fromconn) {
        if (curr_bserver == server)     /* Keep connection if have it */
@@ -291,7 +299,7 @@ dumpVolume(struct tc_dumpDesc * curDump, struct dumpRock * dparamsPtr)
        /* Create and Write the volume header */
        makeVolumeHeader(&hostVolumeHeader, dparamsPtr, fragmentNumber);
        hostVolumeHeader.contd = ((fragmentNumber == 1) ? 0 : TC_VOLCONTD);
-       volumeHeader_hton(&hostVolumeHeader, buffer);
+       volumeHeader_hton(&hostVolumeHeader, (struct volumeHeader *)buffer);
 
        rc = butm_WriteFileData(tapeInfoPtr, buffer, 1,
                                sizeof(hostVolumeHeader));
@@ -385,7 +393,7 @@ dumpVolume(struct tc_dumpDesc * curDump, struct dumpRock * dparamsPtr)
                hostVolumeHeader.contd = (endofvolume ? 0 : TC_VOLCONTD);
                hostVolumeHeader.magic = TC_VOLENDMAGIC;
                hostVolumeHeader.endTime = (endofvolume ? time(0) : 0);
-               volumeHeader_hton(&hostVolumeHeader, &buffer[bytesread]);
+               volumeHeader_hton(&hostVolumeHeader, (struct volumeHeader *)&buffer[bytesread]);
                bytesread += sizeof(hostVolumeHeader);
            }
 
@@ -636,10 +644,10 @@ xbsaDumpVolume(struct tc_dumpDesc * curDump, struct dumpRock * dparamsPtr)
     /* Create and Write the volume header */
     makeVolumeHeader(&hostVolumeHeader, dparamsPtr, 1);
     hostVolumeHeader.contd = 0;
-    volumeHeader_hton(&hostVolumeHeader, buffer);
+    volumeHeader_hton(&hostVolumeHeader, (struct volumeHeader *)buffer);
 
-    rc = xbsa_WriteObjectData(&butxInfo, buffer, sizeof(struct volumeHeader),
-                             &bytesWritten);
+    rc = xbsa_WriteObjectData(&butxInfo, (struct volumeHeader *)buffer,
+                             sizeof(struct volumeHeader), &bytesWritten);
     if (rc != XBSA_SUCCESS) {
        ErrorLog(1, taskId, rc, 0,
                 "Unable to write VolumeHeader data to the server\n");
@@ -854,7 +862,6 @@ dumpPass(struct dumpRock * dparamsPtr, int passNumber)
     int action, e;
     afs_int32 code = 0, tcode, dvcode;
     char ch;
-    char retryPrompt();
     struct vldbentry vldbEntry;
     struct sockaddr_in server;
     afs_int32 tapepos;
@@ -1148,7 +1155,6 @@ Dumper(void *param)
 
     extern struct deviceSyncNode *deviceLatch;
     extern struct tapeConfig globalTapeConfig;
-    extern afs_int32 createDump();
 
     taskId = nodePtr->taskID;  /* Get task Id */
     setStatus(taskId, DRIVE_WAIT);
@@ -1273,7 +1279,7 @@ Dumper(void *param)
     if (!CONF_XBSA) {
        code = butm_WriteEOT(&tapeInfo);
        if (code)
-           TapeLog(taskId, code, tapeInfo.error,
+           TapeLog(0, taskId, code, tapeInfo.error,
                    "Warning: Can't write end-of-dump on tape\n");
     }
 
@@ -1365,7 +1371,7 @@ Dumper(void *param)
                tmend.tm_hour, tmend.tm_min, tmend.tm_sec, hrs, min, sec,
                nodePtr->volumeSetName, dumpedvolumes,
                dumpedvolumes + failedvolumes,
-               dparams.tapeInfoPtr->kBytes + 1);
+               afs_printable_uint32_lu(dparams.tapeInfoPtr->kBytes + 1));
 
        fwrite(line, strlen(line), 1, centralLogIO);
        fflush(centralLogIO);
@@ -1375,7 +1381,7 @@ Dumper(void *param)
 
     FreeNode(taskId);          /* free the dump node */
     LeaveDeviceQueue(deviceLatch);
-    return (void *)(code);
+    return (void *)(intptr_t)(code);
 }
 
 #define BELLTIME 60            /* 60 seconds before a bell rings */
@@ -1410,7 +1416,7 @@ retryPrompt(char *volumeName, afs_int32 volumeId, afs_uint32 taskId)
     printf("a - abort, the entire dump\n");
 
     while (1) {
-       FFlushInput(stdin);
+       FFlushInput();
        putchar(BELLCHAR);
        fflush(stdout);
 
@@ -1533,7 +1539,6 @@ getDumpTape(struct dumpRock *dparamsPtr, int interactiveFlag,
     afs_int32 tapepos, lastpos;
 
     extern struct tapeConfig globalTapeConfig;
-    extern struct udbHandleS udbHandle;
 
     askForTape = interactiveFlag;
     dparamsPtr->wroteLabel = 0;