Make WordPress Core

Ticket #18201: 18201.diff

File 18201.diff, 5.1 KB (added by pento, 11 years ago)
  • wp-admin/includes/class-wp-filesystem-base.php

     
    3939        var $method = '';
    4040
    4141        /**
     42         * Whether this filesystem supports file MD5s
     43         *
     44         * @since 3.7
     45         * @access public
     46         * @var bool
     47         */
     48        var $supports_md5 = false;
     49
     50        /**
    4251         * Returns the path on the remote filesystem of ABSPATH
    4352         *
    4453         * @since 2.7
  • wp-admin/includes/class-wp-filesystem-ftpsockets.php

     
    266266                return false;
    267267        }
    268268
     269        function md5( $file ) {
     270                return false;
     271        }
     272
    269273        function mkdir($path, $chmod = false, $chown = false, $chgrp = false ) {
    270274                $path = untrailingslashit($path);
    271275                if ( empty($path) )
  • wp-admin/includes/update-core.php

     
    656656                return new WP_Error( 'insane_distro', __('The update could not be unpacked') );
    657657        }
    658658
     659        // Check if we have the correct files
     660        include_once( $from . $distro . 'wp-admin/includes/update-core-file-hashes.php' );
     661        if ( empty( $file_hashes ) ) {
     662                $wp_filesystem->delete( $from, true );
     663                return new WP_Error( 'no_file_hashes', __( 'The update did not contain file hashes' ) );
     664        }
     665
     666        if ( $wp_filesystem->supports_md5 ) {
     667                foreach ( $file_hashes as $file => $hash ) {
     668                        if ( $hash !== $wp_filesystem->md5( $file ) ) {
     669                                $wp_filesystem->delete( $from, true );
     670                                return new WP_Error( 'bad_file_hashes', __( 'The update did not match the included file hashes' ) );
     671                        }
     672                }
     673        }
     674
    659675        // Import $wp_version, $required_php_version, and $required_mysql_version from the new version
    660676        // $wp_filesystem->wp_content_dir() returned unslashed pre-2.8
    661677        $versions_file = trailingslashit( $wp_filesystem->wp_content_dir() ) . 'upgrade/version-current.php';
  • wp-admin/includes/class-wp-filesystem-direct.php

     
    2222         * @param mixed $arg ignored argument
    2323         */
    2424        function __construct($arg) {
    25                 $this->method = 'direct';
    26                 $this->errors = new WP_Error();
     25                $this->method       = 'direct';
     26                $this->errors       = new WP_Error();
     27                $this->supports_md5 = true;
    2728        }
    2829        /**
    2930         * connect filesystem.
     
    283284                return @touch($file, $time, $atime);
    284285        }
    285286
     287        function md5( $file ) {
     288                return @md5_file( $file );
     289        }
     290
    286291        function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
    287292                // safe mode fails with a trailing slash under certain PHP versions.
    288293                $path = untrailingslashit($path);
     
    346351                        $struc['lastmod']   = date('M j',$struc['lastmodunix']);
    347352                        $struc['time']          = date('h:i:s',$struc['lastmodunix']);
    348353                        $struc['type']          = $this->is_dir($path.'/'.$entry) ? 'd' : 'f';
     354                        $struc['md5']       = $this->md5( $path . '/' . $entry );
    349355
    350356                        if ( 'd' == $struc['type'] ) {
    351357                                if ( $recursive )
  • wp-admin/includes/class-wp-filesystem-ftpext.php

     
    246246        function touch($file, $time = 0, $atime = 0) {
    247247                return false;
    248248        }
     249
     250        function md5( $file ) {
     251                return false;
     252        }
     253
    249254        function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
    250255                $path = untrailingslashit($path);
    251256                if ( empty($path) )
  • wp-admin/includes/class-wp-filesystem-ssh2.php

     
    4949        var $options = array();
    5050
    5151        function __construct($opt='') {
    52                 $this->method = 'ssh2';
    53                 $this->errors = new WP_Error();
     52                $this->method       = 'ssh2';
     53                $this->errors       = new WP_Error();
     54                $this->supports_md5 = true;
    5455
    5556                //Check if possible to use ssh2 functions.
    5657                if ( ! extension_loaded('ssh2') ) {
     
    309310                //Not implemented.
    310311        }
    311312
     313        function md5( $file ) {
     314                $file = ltrim( $file, '/' );
     315                return md5_file( 'ssh2.sftp://' . $this->sftp_link . '/' . $file );
     316        }
     317
    312318        function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
    313319                $path = untrailingslashit($path);
    314320                if ( empty($path) )
     
    369375                        $struc['lastmod']   = date('M j',$struc['lastmodunix']);
    370376                        $struc['time']          = date('h:i:s',$struc['lastmodunix']);
    371377                        $struc['type']          = $this->is_dir($path.'/'.$entry) ? 'd' : 'f';
     378                        $struc['md5']       = $this->md5( $path . '/' . $entry );
    372379
    373380                        if ( 'd' == $struc['type'] ) {
    374381                                if ( $recursive )