[OpenAFS] Perl Modules for OpenAFS 1.4

Mike Polek mike@pictage.com
Wed, 07 Dec 2005 12:35:40 -0800


In case anyone else uses the Perl modules for OpenAFS
and needs them working with OpenAFS 1.4 before the
the AFS-2.2.4 version of the Perl code comes out,
the following patch appears to fix up some minor
problems with the upgrade to 1.4.

(Many thanks to Norbert G. for maintaining the
  Perl code!)

Take care,
Mike Polek



-------------- >8 SNIP 8< -----------------------

--- AFS-2.2.3/src/Makefile.PL.orig      2005-02-15 07:19:17.000000000 -0800
+++ AFS-2.2.3/src/Makefile.PL   2005-12-07 12:14:42.000000000 -0800
@@ -140,6 +140,7 @@
  elsif ($version =~ /1.1/)   { $d_flag = 'OpenAFS 1.1'; }
  elsif ($version =~ /1.2/)   { $d_flag = 'OpenAFS 1.2'; }
  elsif ($version =~ /1.3/)   { $d_flag = 'OpenAFS 1.3'; }
+elsif ($version =~ /1.4/)   { $d_flag = 'OpenAFS 1.4'; }
  elsif ($version =~ /devel/) { $d_flag = 'OpenAFS devel'; }

  if ($version =~ /openafs/)  { $a_flag = '-DOpenAFS'; }
--- AFS-2.2.3/src/AFS.xs.orig   2005-02-15 07:14:13.000000000 -0800
+++ AFS-2.2.3/src/AFS.xs        2005-12-07 12:14:45.000000000 -0800
@@ -2012,7 +2012,6 @@
      return 0;
  }

-#ifndef OpenAFS
  afs_uint32 GetUInt32(as, aval)
      register char *as;
      afs_uint32 *aval;
@@ -2054,7 +2053,6 @@
      *aval = total;
      return 0;
  }
-#endif

  /* keep those lines small */
  static char *em(acode)
@@ -3665,17 +3663,18 @@
      {
          struct ViceIoctl vi;
          int32 code;
-        struct VolumeStatus status;
+        char space[MAXSIZE];
+        struct VolumeStatus *status = (struct VolumeStatus *) &space;

          vi.in_size = 0;
          vi.in = 0;
-        vi.out_size = sizeof(status);
-        vi.out = (char *) &status;
+        vi.out_size = MAXSIZE;
+        vi.out = (char *) &space;
          code = pioctl(path, VIOCGETVOLSTAT, &vi, follow);
          FSSETCODE(code);
          if (code == 0) {
              EXTEND(sp, 1);
-            PUSHs(sv_2mortal(newSViv(status.MaxQuota)));
+            PUSHs(sv_2mortal(newSViv(status->MaxQuota)));
          }
      }

-------------- >8 SNIP 8< -----------------------

-- 
Michael Polek
Manager of System Operations
Pictage, Inc.
1580 Francisco Street, Ste. 101
Torrance, CA 90501
(310) 525-1600 ext. 628
mike@pictage.com
Czar of all the Russias
--
Opinions are my own and do not necessarily reflect those
of the company. Viewer discretion is advised.
Please do not make any inferences about what is in this email
beyond what is stated. If there is any unclarity in this email,
please ask the author of the email for clarification. Any assumptions
about the content of this email or what it means are solely the
responsibility of the reader.
E Pluribus Unum. Annuit Coeptis. Novus Ordo Seclorum.

Confidentiality Notice:

This message, together with any attachments, is intended only for the use of
the individual or entity to which it is addressed. It may contain
information that is confidential and prohibited from disclosure. If you are
not the intended recipient, you are hereby notified that any dissemination
or copying of this message or any attachment is strictly prohibited. If you
have received this item in error, please notify the original sender and
destroy this item, along with any attachments.