int
cliGetCollOprStat( rcComm_t *conn, collOprStat_t *collOprStat, int vFlag,
                   int retval ) {
    int status = retval;

    while ( status == SYS_SVR_TO_CLI_COLL_STAT ) {
        /* more to come */
        if ( collOprStat != NULL ) {
            if ( vFlag != 0 ) {
                printf( "num files done = %d, ", collOprStat->filesCnt );
                if ( collOprStat->totalFileCnt <= 0 ) {
                    printf( "totalFileCnt = UNKNOWN, " );
                }
                else {
                    printf( "totalFileCnt = %d, ", collOprStat->totalFileCnt );
                }
                printf( "bytesWritten = %lld, last file done: %s\n",
                        collOprStat->bytesWritten, collOprStat->lastObjPath );
            }
            free( collOprStat );
            collOprStat = NULL;
        }
        status = _cliGetCollOprStat( conn, &collOprStat );
    }

    if ( collOprStat != NULL ) {
        free( collOprStat );
    }

    return ( status );
}
示例#2
0
int
svrSendZoneCollOprStat( rsComm_t * rsComm, rcComm_t * conn,
                        collOprStat_t * collOprStat, int retval ) {
    int status = retval;

    while ( status == SYS_SVR_TO_CLI_COLL_STAT ) {
        status = _svrSendCollOprStat( rsComm, collOprStat );
        if ( status == SYS_CLI_TO_SVR_COLL_STAT_REPLY ) {
            status = _cliGetCollOprStat( conn, &collOprStat );
        }
        else {
            int myBuf = htonl( status );
            myWrite( conn->sock, ( void * ) &myBuf, 4, NULL );
            break;
        }
    }
    return status;
}