• 
      

    Fix several problems with rbssh

    Review Request #2105 — Created Feb. 6, 2011 and submitted — Latest diff uploaded

    Information

    Review Board
    release-1.5.x

    Reviewers

    This fixes several problems with rbssh on Windows and Linux.
    
    rbssh had problems with some types of repositories. Mostly, they expected
    certain command line options to be available that weren't. We now support
    -q/--quiet, -s (for subsystem selection), and -V (print version).
    
    In general, the rbssh code has been cleaned up to be a bit better structured
    and less hacky. We have classes for Posix and Windows, rather than
    individual functions. We also now tell OptionParser to leave behind any
    unknown arguments so that we can pass them to the command to run on the
    other server.
    
    rbssh now supports a shell and sftp. If a valid key or password wasn't
    available during authentication, we prompt for a new password. We do this
    three times before giving up.
    
    On Windows, the process was hanging around forever instead of properly
    shutting down. We now let stdin processing drive in the main thread and
    then, upon closing, we trigger a shutdown of the writer, which should
    close the other end and shut down the process.
    
    This also improves our logging situation by using the standard Python
    logging module instead of our own debug() function.
    With the other changes I have up, SSH worked on both Windows and Linux
    for all supported types of repositories.