New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

If sessions are stored in Skydrive on Windows 8.1, behaviour is undefined #125

Open
voltagex opened this Issue Dec 28, 2013 · 2 comments

Comments

3 participants
@voltagex

voltagex commented Dec 28, 2013

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

@FauxFaux

This comment has been minimized.

Show comment
Hide comment
@FauxFaux

FauxFaux Dec 28, 2013

Owner

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?

Owner

FauxFaux commented 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?

@twpol

This comment has been minimized.

Show comment
Hide comment
@twpol

twpol Dec 28, 2013

Contributor

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.

Contributor

twpol commented Dec 28, 2013

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment