Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
If sessions are stored in Skydrive on Windows 8.1, behaviour is undefined #125
If I have a session file stored in Skydrive on Windows 8.1 (so possibly the Documents folder), and that file has not been downloaded from the Net, Putty will show that session in the list but not load any settings from it.
The relevant API is http://msdn.microsoft.com/en-us/library/windows/desktop/dn323738%28v=vs.85%29.aspx but I'm not sure how you'd implement this in a portable way.
Expected results are:
Open Putty --> Select session from list --> Hit Load --> Session file is downloaded if it isn't local already --> Hit Open --> Session opens
Current results are:
Open Putty --> Select session from list --> Hit Load --> No hostname is loaded, no error is displayed
added a commit
Dec 28, 2013
I reproduced something like this by booting PuTTYTray (having the session list open), then deleting the session file out from under it, and getting no error. I've made it at least give an error.
I'm not sure I understand what SkyDrive specific behaviour you'd expect there? I guess it could say "I couldn't find the file because SkyDrive's semantics here are utterly bizarre", but that doesn't seem all that useful?
The files are marked as system & hidden, and when accessed via the shell API there's nothing bizarre about it (it just works by blocking). Note that various other Windows (mostly server) components have been doing this reparse-point-not-really-a-file thing for years (SIS, DFS, etc.).
You could filter the files out when listing them, but that seems poor, or you should force them to be loaded when needed. It should be possible to have a Windows-only function that does the check in that MSDN article for IO_REPARSE_TAG_FILE_PLACEHOLDER and invokes IShellItem::BindToHandler on it, before continuing the normal code path to open & read the file.