Changeset 9421


Ignore:
Timestamp:
Oct 27, 2009, 11:00:34 PM (13 years ago)
Author:
charles
Message:

(trunk libT) #2531: when the user moves a torrent from one location to another, we don't need to reverify if the files are just rename()d

Location:
trunk/libtransmission
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/torrent.c

    r9404 r9421  
    24192419                if( do_move )
    24202420                {
     2421                    tr_bool renamed = FALSE;
    24212422                    errno = 0;
    24222423                    tr_torinf( tor, "moving \"%s\" to \"%s\"", oldpath, newpath );
    2423                     if( rename( oldpath, newpath ) )
     2424                    if( tr_moveFile( oldpath, newpath, &renamed ) )
     2425                    {
     2426                        err = TRUE;
     2427                        tr_torerr( tor, "error moving \"%s\" to \"%s\": %s",
     2428                                        oldpath, newpath, tr_strerror( errno ) );
     2429                    }
     2430                    else if( !renamed )
    24242431                    {
    24252432                        verify_needed = TRUE;
    2426                         if( tr_moveFile( oldpath, newpath ) )
    2427                         {
    2428                             err = TRUE;
    2429                             tr_torerr( tor, "error moving \"%s\" to \"%s\": %s",
    2430                                             oldpath, newpath, tr_strerror( errno ) );
    2431                         }
    24322433                    }
    24332434                }
     
    24552456            if( verify_needed )
    24562457                tr_torrentVerify( tor );
     2458            else if( tor->startAfterVerify ) {
     2459                tor->startAfterVerify = FALSE;
     2460                tr_torrentStart( tor );
     2461            }
    24572462        }
    24582463    }
  • trunk/libtransmission/utils.c

    r9382 r9421  
    13561356
    13571357int
    1358 tr_moveFile( const char * oldpath, const char * newpath )
     1358tr_moveFile( const char * oldpath, const char * newpath, tr_bool * renamed )
    13591359{
    13601360    int in;
     
    13861386    }
    13871387
    1388     /* they  might be on the same filesystem... */
    1389     if( !rename( oldpath, newpath ) )
    1390         return 0;
     1388    /* they might be on the same filesystem... */
     1389    {
     1390        const int i = rename( oldpath, newpath );
     1391        if( renamed != NULL )
     1392            *renamed = i == 0;
     1393        if( !i )
     1394            return 0;
     1395    }
    13911396
    13921397    /* copy the file */
  • trunk/libtransmission/utils.h

    r8904 r9421  
    420420
    421421/** on success, return 0.  on failure, return -1 and set errno */
    422 int tr_moveFile( const char * oldpath, const char * newpath );
     422int tr_moveFile( const char * oldpath, const char * newpath, tr_bool * renamed );
    423423
    424424
Note: See TracChangeset for help on using the changeset viewer.