Make WordPress Core

Ticket #17301: 17301.diff

File 17301.diff, 3.0 KB (added by pento, 11 years ago)
  • wp-admin/includes/file.php

     
    588588                if ( strpos($dir, $to) === false ) // If the directory is not within the working directory, Skip it
    589589                        continue;
    590590
     591                do_action( 'keepalive_tick' );
     592
    591593                $parent_folder = dirname($dir);
    592594                while ( !empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs) ) {
    593595                        $needed_dirs[] = $parent_folder;
     
    613615                if ( '__MACOSX/' === substr($info['name'], 0, 9) ) // Don't extract the OS X-created __MACOSX directory files
    614616                        continue;
    615617
     618                do_action( 'keepalive_tick' );
     619
    616620                $contents = $z->getFromIndex($i);
    617621                if ( false === $contents )
    618622                        return new WP_Error('extract_failed', __('Could not extract file from archive.'), $info['name']);
     
    690694
    691695        // Create those directories if need be:
    692696        foreach ( $needed_dirs as $_dir ) {
     697                do_action( 'keepalive_tick' );
    693698                if ( ! $wp_filesystem->mkdir($_dir, FS_CHMOD_DIR) && ! $wp_filesystem->is_dir($_dir) ) // Only check to see if the dir exists upon creation failure. Less I/O this way.
    694699                        return new WP_Error('mkdir_failed', __('Could not create directory.'), $_dir);
    695700        }
     
    703708                if ( '__MACOSX/' === substr($file['filename'], 0, 9) ) // Don't extract the OS X-created __MACOSX directory files
    704709                        continue;
    705710
     711                do_action( 'keepalive_tick' );
     712
    706713                if ( ! $wp_filesystem->put_contents( $to . $file['filename'], $file['content'], FS_CHMOD_FILE) )
    707714                        return new WP_Error('copy_failed', __('Could not copy file.'), $to . $file['filename']);
    708715        }
     
    740747                        if ( preg_match($skip_regex, $from . $filename) )
    741748                                continue;
    742749
     750                do_action( 'keepalive_tick' );
     751
    743752                if ( 'f' == $fileinfo['type'] ) {
    744753                        if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE) ) {
    745754                                // If copy failed, chmod file to 0644 and try again.
     
    10461055<?php
    10471056        return false;
    10481057}
     1058
     1059function connection_keepalive() {
     1060        if ( ! headers_sent() )
     1061                return;
     1062
     1063        static $last_sent;
     1064
     1065        if ( ! isset( $last_sent ) )
     1066                $last_sent = time();
     1067
     1068        // Only send every 10 seconds
     1069        if ( $last_sent + 10 > time() )
     1070                return;
     1071
     1072        $last_sent = time();
     1073
     1074        if ( DOING_AJAX )
     1075                echo ' '; // It might be JSON, which doesn't allow comments
     1076        else
     1077                echo "<!-- $last_sent -->";             
     1078}
     1079add_action( 'keepalive_tick', 'connection_keepalive' );
  • wp-admin/includes/update-core.php

     
    839839                        if ( preg_match($skip_regex, $from . $filename) )
    840840                                continue;
    841841
     842                do_action( 'keepalive_tick' );
     843
    842844                if ( 'f' == $fileinfo['type'] ) {
    843845                        if ( ! $wp_filesystem->copy($from . $filename, $to . $filename, true, FS_CHMOD_FILE) ) {
    844846                                // If copy failed, chmod file to 0644 and try again.