OSDN Git Service

Use gzwrite() for gzopen()
authorhenoheno <henoheno>
Sun, 26 Sep 2004 14:15:54 +0000 (23:15 +0900)
committerhenoheno <henoheno>
Sun, 26 Sep 2004 14:15:54 +0000 (23:15 +0900)
plugin/dump.inc.php

index 3992eef..d361ea9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /////////////////////////////////////////////////
-// $Id: dump.inc.php,v 1.21 2004/09/26 14:13:29 henoheno Exp $
+// $Id: dump.inc.php,v 1.22 2004/09/26 14:15:54 henoheno Exp $
 // Originated as tarfile.inc.php by teanan / Interfair Laboratory 2004.
 
 // [¹¹¿·ÍúÎò]
@@ -368,7 +368,7 @@ class tarlib
                $retvalue = 0;
                
                if ($this->status != TARLIB_STATUS_CREATE)
-                       return ''; // ¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤¤
+                       return ''; // File is not created
 
                unset($files);
 
@@ -533,9 +533,17 @@ class tarlib
        {
                $fixsize  = ceil($size / TARLIB_BLK_LEN) * TARLIB_BLK_LEN - $size;
 
-               fwrite($this->fp, $header, TARLIB_HDR_LEN);    // Header
-               fwrite($this->fp, $body, $size);               // Body
-               fwrite($this->fp, $this->dummydata, $fixsize); // Padding
+               if ($this->arc_kind == TARLIB_KIND_TGZ) {
+                       gzwrite($this->fp, $header, TARLIB_HDR_LEN);    // Header
+                       gzwrite($this->fp, $body, $size);               // Body
+                       gzwrite($this->fp, $this->dummydata, $fixsize); // Padding
+               } else {
+                       flock($this->fp, LOCK_EX);
+                        fwrite($this->fp, $header, TARLIB_HDR_LEN);    // Header
+                        fwrite($this->fp, $body, $size);               // Body
+                        fwrite($this->fp, $this->dummydata, $fixsize); // Padding
+                       flock($this->fp, LOCK_UN);
+               }
        }
 
        ////////////////////////////////////////////////////////////
@@ -676,15 +684,17 @@ class tarlib
        {
                if ($this->status == TARLIB_STATUS_CREATE)
                {
-                       // ¥Ð¥¤¥Ê¥ê¡¼¥¼¥í¤ò1024¥Ð¥¤¥È½ÐÎÏ
-                       fwrite($this->fp, $this->dummydata, TARLIB_HDR_LEN);
-                       fwrite($this->fp, $this->dummydata, TARLIB_HDR_LEN);
-
                        // ¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë
                        if ($this->arc_kind == TARLIB_KIND_TGZ) {
+                               // ¥Ð¥¤¥Ê¥ê¡¼¥¼¥í¤ò1024¥Ð¥¤¥È½ÐÎÏ
+                               gzwrite($this->fp, $this->dummydata, TARLIB_HDR_LEN);
+                               gzwrite($this->fp, $this->dummydata, TARLIB_HDR_LEN);
                                gzclose($this->fp);
                        } else {
-                                fclose($this->fp);
+                               // ¥Ð¥¤¥Ê¥ê¡¼¥¼¥í¤ò1024¥Ð¥¤¥È½ÐÎÏ
+                               fwrite($this->fp, $this->dummydata, TARLIB_HDR_LEN);
+                               fwrite($this->fp, $this->dummydata, TARLIB_HDR_LEN);
+                               fclose($this->fp);
                        }
                }
                else if ($this->status == TARLIB_STATUS_OPEN)