Search code examples
downloadnsis

How to get around NSIS download error "connecting to host"


So I'm trying to download and install PySVN as part of my program's stack. I'm downloading it rather than including, but the download is failing for unknown reasons. Here's the code:

!define PYSVN_FILE "py25-pysvn-svn161-1.7.0-1177.exe"   
!define PYSVN_DOWNLOAD_LOC "http://pysvn.tigris.org/files/documents/1233/45661/py25-pysvn-svn161-1.7.0-1177.exe"
${If} $pythonVersion == "2.5"
     NSISdl::download "${PYSVN_DOWNLOAD_LOC}" ${PYSVN_FILE}
${Else}
     NSISdl::download "${PYSVN2_DOWNLOAD_LOC}" ${PYSVN_FILE}
${EndIf}

Where ${PYSVN_DOWNLOAD_LOC} = http://pysvn.tigris.org/files/documents/1233/45661/py25-pysvn-svn161-1.7.0-1177.exe is what I'm trying to download.

The file obviously downloads fine from a web browser, but NSIS throws a "connecting to host" error when it tries to connect. I've tried giving it a big timeout value. Is this a proxy issue? How can I get around this without including the file in my installer?

Edit:

Thanks to Anders I've edited my code as follows:

  ${If} $pythonVersion == "2.5"
        inetc::get "${PYSVN_DOWNLOAD_LOC}" "${PYSVN_FILE}" /END
  ${Else}
        inetc::get "${PYSVN2_DOWNLOAD_LOC}" "${PYSVN_FILE}" /END
  ${EndIf}

Which now gives me a "302 (redirection)" error. The file and download location have not changed.


Solution

  • inetc::get /NOCANCEL /RESUME "" "http://file.blah" "$TEMP\Setup.exe"
        Pop $0
        StrCmp $0 "OK" dlok
        MessageBox MB_OK|MB_ICONEXCLAMATION "Error downloading. Click OK to abort installation." /SD IDOK
    dlok:
        !insertmacro closeAllBrowsers
        ; install plugin
        ExecWait `$TEMP\Setup.exe`