aldostools / webMAN-MOD

Extended services for PS3 console (web server, ftp server, netiso, ntfs, ps3mapi, etc.)
https://aldostools.github.io/webMAN-MOD/
GNU General Public License v3.0
1.29k stars 176 forks source link

System auto-off turns off PS3 while FTP transfer is active #16

Closed 444nonymous closed 5 years ago

444nonymous commented 7 years ago

This is not a bug, because it happens even while installing very big ps3 game updates. After the time set the PS3 turns off no matter what. It seems that auto-off only relies in pressed game pad keys (or remote control HDMI-CEC) to check if there is activity. So it checks only for user input, not ps3 activity.

I thought if it could be possible for webman to detect when the ps3 is going off (there is even a message popup a few minutes before) and keep the ps3 on in there is some activity like an ongoing FTP transfer, or game update download / install. While leaving normal auto-off for other passive actions like a game running unattended.

If there is way of doing it, it would be better to turn off the PS3 just after the FTP transfer finished. IE: I have a 2 hour auto-off setting, but I'm transferring hundreds of GB to a new HDD. Even if it's over gigabit LAN, it takes 3 hours, so I leave it unattended. Webman detects when the FTP file transfer is over and after 3 hours shows the same popup message the PS3 shows a few minutes before turning off the PS3. So it only delays the time needed to complete the transfer, instead of making the 2 hours countdown start again after the transfer is finished.

Thanks

aldostools commented 7 years ago

It is not possible to prevent that the system turns off if the auto-off option is enabled. Or at least I don't know how to prevent it.

I only can suggest you to disable the option while managing your system, and turn it back on when you have finished, or try using a larger period for auto-off.

444nonymous commented 7 years ago

If you can simulate clicks on XMB, and detect when a file transfer is active, that would work.

Even when running a game, if installing takes too long the PS3 will turn off. The only way to prevent it that I found is to press something in the controller. You could simulate a click that does not do anything.

444nonymous commented 7 years ago

Tested "Added experimental method to avoid auto-power off on ftp" -> https://github.com/aldostools/webMAN-MOD/commit/37b38988e667e5f5cf1a6acb58e2addd0759bb67

It does not work. Maybe you could detect the info message the PS3 shows like 5 minutes before shutting down. And if an FTP transfer is active (not just idle FTP login), simulate a click.

aldostools commented 7 years ago

Thank you for your feedback.

I have made a new test build that uses a different method to prevent the auto-power off: http://aldostools.org/temp/test/webftp_server.sprx

This version changes the setting in the xregistry when the FTP is active and restores the original value when the FTP is disconnected or when the plugin is unloaded (e.g. /shutdown.ps3 or /restart.ps3). The same method is applied for /install.ps3, /download.ps3 and /copy.ps3

You can verify that the setting is disabled in XMB while FTP is doing a file transfer.

For the rest of the commands, the xregistry is untouched to avoid potential corruption due excessive saving.

Please test it and report back if this method is a solutin to the issue.

444nonymous commented 7 years ago

Is this feature included in webman lite too? (like in this build https://github.com/aldostools/webMAN-MOD/commit/37b38988e667e5f5cf1a6acb58e2addd0759bb67) Just in case it did not work the first time because I was using lite.

I will test the new way in newer builds, because the FTP did not work for me before.

444nonymous commented 7 years ago

I've tested the latest webman lite https://github.com/aldostools/webMAN-MOD/commit/e0d5f46ebdc6955cf44c67829a567fb8785cdf61 and it's working fine.

I can verify that the setting is disabled in XMB while doing an FTP transfer but also when just logging in. So if you left a session open, idle (the ftp client will send anti-idle commands like noop, list, pwd, rest, etc) the ps3 will never turn off.

You could set an anti-idle time, if there is not an active file transfer going on after some minutes (or STOR and RETR are not being used while idle), restore the power save settings. And disable when file transfers start again.

You probably tried doing it this way, but It seems it's working the other. Also, just in case the ps3 or webman crashes, it could store and set the user configured system auto-off timeout when turning the PS3 on. I've noticed that power-off settings were kept disabled after the PS3 froze and had to hard reboot.

aldostools commented 7 years ago

You can try this test build: http://aldostools.org/temp/test/webMAN_MOD_1.43.36_Updater_20161011.pkg

Now it has a setting in /setup.ps3 that let you define the timeout of the FTP session (up to 4 hours 15 minutes). Set it to 0 if you don't want it to timeout.

This should solve the issue when the ftp client is left open in idle mode. If the ftp client keeps sending noop, the PS3 will stay on. It's responsibility of the use to configure the ftp client properly.

Regarding the auto-power off settings lost when PS3 froze; now I backup the current settings to /dev_hdd0/tmp/wmtmp/auto_power_off

The file is deleted when the setting is restored. If the file exists when the plugin starts, these settings will be applied to restore the original settings.

444nonymous commented 7 years ago

It's true, maybe I just should disable keep alive for PS3 connections. Before this new feature was implemented, would webman disconnect if it did not receive any command after a while?

I've tested the time-out option and it works with anti-idle commands disabled in the FTP client. So after X minutes without any activity, webman terminates the connection and restores the "system auto-off" settings.

It does not work if anti-idle commands are enabled in the FTP client . Main reason because keep-alive uses several commands: NOOP, REST 0, PWD, LIST, and many others that don't do anything (just get some info at most)

So you could define an alive connection by detecting the commands only a user would do: STOR, RETR, DELE, MKD, RMD, CWD, etc (browse directories, transfer and delete files and directories, etc)

But maybe this is too difficult to implement. So disabling keep-alive client side should be enough (if this time-out feature was necessary because webman never disconnected the client before)

444nonymous commented 7 years ago

By the way, I don't understand why "'Auto power off' is prevented only if USB polling is enabled", wich is disabled by default. There could be a separate setting for "Prevent System Auto-Off" if you need to have one.

aldostools commented 7 years ago

I agree that there should be a separate setting for "Prevent System Auto-Off". I have re-used the "USB polling" for both settings trying to reduce the number of additional settings in /setup.ps3 (which is already too cluttered).

An additional setting not only requires extra code (that increase the plugin size, thus increase the memory footprint). It also requires a label that must be translated to 23 languages.... I can translate to 3 or 5 languages without problem, but 23 is insane (if you sum the additional work updating the files sent by the translators at different times). This is the same reason why some labels are not very clear.

BTW I used "USB polling" because both settings are related to power.

444nonymous commented 7 years ago

If timeout=0, the ftp clients usually never disconnect. The ftp server should disconnect, and if it does not, "Prevent System Auto-Off" is enabled forever, because System Auto-Off settings will never be restored while there is a connection.

That way you can tie the timeout setting: timeout=0 -> "Prevent System Auto-Off" disabled timeout=1+ "Prevent System Auto-Off" enabled

The reason for disabling auto-off and having a timeout is leaving the ps3 unattended while transferring a lot of files for an unknown but long period of time. If you are doing a quick thing using the ftp, you are going to close the connection yourself and there should be no need for disabling auto-off.

After all "USB polling" is disabled by default, so "Prevent System Auto-Off" is disabled by default. Same with using "timeout=0", disabled by default. You can even change the name setting to make it clear that timeout enables "Prevent System Auto-Off". But it should be better to have a diferent setting if possible.

444nonymous commented 7 years ago

Tested it and it's working in the final build https://github.com/aldostools/webMAN-MOD/commit/435f0056fa143cfee1465a06226beabe294497ab .

But was it really necessary to remove it from lite when it was already working fine? I find to have this option much more useful than let's say "Disable content scan at startup", witch I never was sure what was trying to fix / improve. Or the shortcut just to "block servers" (when you can have "offline" for games activated, so it's not that useful any more). The rest of the options in lite seem to serve a basic purpose.

444nonymous commented 7 years ago

I'm not sure if this user / admin feature is implemented by default in the lite build, but it looks more like an advanced feature for the normal / full versions. It's a security option that makes more sense with builds that have more features to secure / restrict. Lite only has a few.

Please consider focusing webman lite to have just the best options to transfer / play games in the most common ways, while leaving the normal and full editions for the rest of most advanced / less used options. This new security options are a good a idea, but they should not replace useful FTP features.

Thanks.

444nonymous commented 7 years ago

IF the FTP client crashes or does not quit in a clean way, power settings are off and never restored. Just like if the PS3 crashes. Maybe this could be fixed too.

Thanks.

444nonymous commented 7 years ago

I have also noticed a bug. It works just turning on the PS3 and leaving it in the XMB, easy to reproduce. I have set auto off in PS3 options (10 mins for controller, 20 mins for Games, 1 hour for movies) and a 10 minute time-out for webman FTP.

If you start an ftp session, the ps3 will turn off (after the time set in the XMB options) while files are still being transferred. If I turn on the ps3 again, the file transfer will automatically resume and the FTP / webman options will work fine this second time, preventing auto-off.

I don't know why this happens, because I can see webman changing PS3 settings to prevent auto off.

Joonie86 commented 5 years ago

Closing old cases that have no further feedback. please use the latest version of wMM and report us

matcarfer commented 4 years ago

Latest version of wMM as of today, and after an hour it shuts off my ps3, despite auto-off settings on off. Strange as hell.

IllMethods commented 4 years ago

Same issue, I've been leaving mine on to do massive transfers and wake up in the morning and it had shut itself off with ftp client still showing huge amount left to transfer.

Latest webman mod, rebug 4.85 lite cex

aldostools commented 4 years ago

It is possible that the xregistry codes 0x32 and 0x33 used to configure the autopoweroff have changed in 4.85...

https://github.com/aldostools/webMAN-MOD/blob/master/vsh/xregistry.h#L667-L668 https://github.com/aldostools/webMAN-MOD/blob/master/include/autopoweroff.h#L16-L17

I cannot confirm it since I'm still on Rebug 4.84.2... Anyway I suggest to disable the Auto Power Off setting manually through XMB to prevent the issue. https://manuals.playstation.net/document/en/ps3/current/settings/powersave.html

riccetto80 commented 4 years ago

Hello! First of all thanks you for webman!!!

Second, i had same issue: on 4.86, hen super slim, the console was auto-shutdown even if in setting auto-shutdown was disable.

unloading webman from memory, instead of "disabled" the auto-shutdown feature showed "1 hour" i set up to disable and restarted the console. now is working with no shutdown.

so be advised, at least in my experience, webman can make the auto-shutdown, show as "disabled", when in fact is still active. you must disable auto-shutdown with webman unloaded from memory.

hope this help other with my same issue!