vos-listaddrs-avoid-holes-in-index-20020805
[openafs.git] / src / volser / vos.c
index 266d761..056048f 100644 (file)
@@ -487,17 +487,17 @@ int fast,longlist, disp;
            fprintf(STDOUT,"    MaxQuota %10d K \n",pntr->maxquota);
            fprintf(STDOUT,"    Creation    %s",
                    ctime((time_t *)&pntr->creationDate));
-#if 0
+#ifdef FULL_LISTVOL_SWITCH
            fprintf(STDOUT,"    Copy        %s",
                    ctime((time_t *)&pntr->copyDate));
            if(!pntr->backupDate)
-               fprintf(STDOUT,"    Backup      Never\n");
+             fprintf(STDOUT,"    Backup      Never\n");
            else
-               fprintf(STDOUT,"    Backup      %s",
-                       ctime((time_t *)&pntr->backupDate));
+             fprintf(STDOUT,"    Backup      %s",
+                     ctime((time_t *)&pntr->backupDate));
            if (pntr->accessDate)
-               fprintf(STDOUT,"    Last Access %s",
-                       ctime((time_t *)&pntr->accessDate));
+             fprintf(STDOUT,"    Last Access %s",
+                     ctime((time_t *)&pntr->accessDate));
 #endif
            if(pntr->updateDate < pntr->creationDate)
                fprintf(STDOUT,"    Last Update %s",
@@ -636,14 +636,14 @@ static void XDisplayFormat(a_xInfoP, a_servID, a_partID, a_totalOKP,
                        a_xInfoP->maxquota);
                fprintf(STDOUT, "    Creation    %s",
                        ctime((time_t *)&a_xInfoP->creationDate));
-#if 0
+#ifdef FULL_LISTVOL_SWITCH
                fprintf(STDOUT,"    Copy        %s",
                        ctime((time_t *)&a_xInfoP->copyDate));
                if(!a_xInfoP->backupDate)
                    fprintf(STDOUT,"    Backup      Never\n");
                else
                    fprintf(STDOUT,"    Backup      %s",
-                       ctime((time_t *)&a_xInfoP->backupDate));
+                           ctime((time_t *)&a_xInfoP->backupDate));
                if (a_xInfoP->accessDate)
                    fprintf(STDOUT,"    Last Access %s",
                            ctime((time_t *)&a_xInfoP->accessDate));
@@ -3950,6 +3950,17 @@ register struct cmd_syndesc *as;
       printuuid=1;
   }
 
+  m_addrs.bulkaddrs_val = 0;
+  m_addrs.bulkaddrs_len = 0;
+
+  vcode = ubik_Call_New(VL_GetAddrs, cstruct, 0,
+                        0, 0, &m_unique, &nentries, &m_addrs);
+  if (vcode) {
+    fprintf(STDERR,"vos: could not list the server addresses\n");
+    PrintError("",vcode);
+    return( vcode );
+  }
+
   m_nentries            = 0;
   m_addrs.bulkaddrs_val = 0;
   m_addrs.bulkaddrs_len = 0;
@@ -3959,8 +3970,11 @@ register struct cmd_syndesc *as;
 
       vcode = ubik_Call_New(VL_GetAddrsU, cstruct, 0, &m_attrs, &m_uuid, 
                        &m_unique, &m_nentries, &m_addrs);
-      if(vcode == VL_NOENT)
-         break;
+      if(vcode == VL_NOENT) {
+         i++;
+          nentries++;
+          continue;
+      }
 
       if (vcode) {
          fprintf(STDERR,"vos: could not list the server addresses\n");
@@ -3971,7 +3985,7 @@ register struct cmd_syndesc *as;
       print_addrs(&m_addrs, &m_uuid, m_nentries, printuuid, noresolve);
       i++;
 
-      if ((as->parms[1].items)||(as->parms[0].items))
+      if ((as->parms[1].items)||(as->parms[0].items)||(i>nentries))
          break;
   }