Commit Graph
36165 Commits
Author SHA1 Message Date
Martin Natanoandteejusb bb8fc0f4c2 Change access order for RageFS
Packages > Additional folders > User FS > Initial FS
2022-03-12 14:14:59 -08:00
teejusbandGitHub 6defe32d05 Merge pull request #21 from natano/netman-download-pr3
[Downloads 3/8] Mount directories read-only where possible
2022-03-12 14:12:31 -08:00
Martin Natano 168877f6a8 Mount directories read-only where possible 2022-03-12 22:30:54 +01:00
teejusbandGitHub 0aa42742e4 Merge pull request #20 from natano/netman-download-pr2
[Downloads 2/8] Allow to mark preferences as immutable or compat
2022-03-12 13:23:25 -08:00
Martin Natano d8b6d36a78 Allow to mark preferences as immutable or deprecated
- Deprecated: The option is read from the settings, but not written back
  when saving. This can be used for migrating options to a new name or
  format. (Not used yet.)
- Immutable: The option can not be changed from Lua. Used for
  security-relevant options that should not be changable by the theme or
  mod charts. Currently that's networking and some file system access
  options.
2022-03-12 22:19:19 +01:00
teejusbandGitHub eb0ab83d89 Merge pull request #19 from natano/netman-download-pr1
[Downloads 1/8] Merge /AdditionalSongs into /Songs, and /AdditionalCourses into /Courses
2022-03-12 12:15:47 -08:00
teejusbandGitHub 0dda63c7ee Merge pull request #28 from natano/sort-defaults
Tweak sort defaults to make more sense
2022-03-12 11:41:30 -08:00
teejusbandGitHub a6aac477b0 Merge pull request #27 from natano/fix-sort-length
Fix sort by length
2022-03-12 11:37:37 -08:00
Martin Natano 7bd7a9b41e Tweak sort defaults to make more sense
- SortBPMDivision: Reduce from 20 to 10 to match up with ECS "tiers".
- SortLengthDivision: Increase from 5 seconds to 1 minute. Divisions of
  5 seconds don't seem very useful.
2022-03-12 20:32:21 +01:00
Martin Natano acb3ad727a Fix sort by length
The sort order is not remembered between songs when sorting by length.
This can be fixed by recognizing SORT_LENGTH as a sort order that can be
used for songs.

Reported by @aeubanks in https://github.com/Simply-Love/Simply-Love-SM5/issues/363
2022-03-12 19:13:11 +01:00
Martin Natano 0861ed45c7 Merge /AdditionalSongs into /Songs, and /AdditionalCourses into /Courses
Includes a backwards-compatibility mechanism to adapt paths when loading
Stats.xml.
2022-03-11 22:35:31 +01:00
teejusbandGitHub 92ce8c6801 Merge pull request #18 from natano/remove-package-lib
Remove unsafe package library
2022-03-05 12:17:52 -08:00
Martin Natano afb3836367 Remove unsafe package library
package.loadlib() can be used to load a dynamic C library allowing
arbitrary code execution in mod charts and themes.

So far I haven't found any theme that depends on the library, so I think
removing it shouldn't break anything.
2022-03-04 21:27:55 +01:00
teejusbandGitHub 568f21b6b3 Merge pull request #17 from natano/itgm-update-jsoncpp
Update jsoncpp from version 0.5.0 to 1.9.5
2022-02-19 19:36:19 -08:00
teejusbandGitHub ea7d97719d Merge pull request #16 from natano/fix-leak
Prevent access to the root file system via the memorycard mount points
2022-02-19 19:35:16 -08:00
Martin Natano e1b5664f21 Update jsoncpp from version 0.5.0 to 1.9.5
Aside from including a ton of bug fixes, this should fix an issue in the
CI pipeline when building with system libraries that was caused by a
minor incompatibility between 0.5.0 and less ancient versions.

Also, switch to the amalgamated source, because it makes it easier to
keep it up to date.
https://github.com/open-source-parsers/jsoncpp/wiki/Amalgamated-(Possibly-outdated)
2022-02-19 14:10:55 +01:00
Martin Natano 3216fdec1e Prevent access to the root file system via the memorycard mount points
Before any memorycard is used the mount point exposes "/". Let's
introduce a special value "(empty)" to allow a DIR mount to point to
nothing.
2022-02-19 11:20:01 +01:00
teejusbandGitHub 5322843ace Merge pull request #15 from natano/remove-rootfs
Remove access to the root FS from lua
2022-02-06 10:24:35 -08:00
Martin Natano f79830e7af Fix typo in IniFile.WriteFile() error handling 2022-02-06 15:31:31 +01:00
Martin Natano 7d8ff85018 Remove access to the root FS from lua
On linux / is mounted to /rootfs in RageFile, which allows access to the
_whole_ filesystem from lua. This means themes and mod files can
re-write user data and extract files via USB profiles.

/rootfs was only added for internal use by the alsa, oss and memory card
drivers, so it can be easily replaced with direct fstream file access.
2022-02-06 15:31:31 +01:00
teejusbandGitHub 2005713a32 Merge pull request #14 from natano/remove-crypto
Remove unused crypto & move mbedtls to "External Libraries"
2022-01-23 08:38:41 -08:00
teejusbandGitHub 6536db2106 Merge pull request #13 from natano/update-lua-5.1.5
Update lua from 5.1.1 to 5.1.5
2022-01-23 08:38:20 -08:00
Martin Natano b46ba8f66c Move mbedtls to "External Libraries" in cmake 2022-01-23 15:42:25 +01:00
Martin Natano c4851955e8 Remove unused extern/crypto 2022-01-23 15:31:27 +01:00
Martin Natano f49cb9eff5 Update lua from 5.1.1 to 5.1.5
This keeps all the SM patches intact, but applies the 5.1.5 fixes on
top. All newlines normalized to make diffing with upstream easier.

https://www.lua.org/bugs.html#5.1.2
https://www.lua.org/bugs.html#5.1.3
https://www.lua.org/bugs.html#5.1.4
https://www.lua.org/bugs.html#5.1.5
2022-01-23 12:19:16 +01:00
teejusbandGitHub 85900e471a Merge pull request #12 from natano/update-zlib
Update zlib from version 1.2.5 to 1.2.11
2022-01-22 12:36:22 -08:00
Martin Natano 69ca42e18c Update zlib from version 1.2.5 to 1.2.11 2022-01-22 20:17:48 +01:00
teejusbandGitHub c7d7ab9ae0 Merge branch 'stepmania:5_1-new' into beta 2022-01-21 00:11:53 -08:00
teejusbandGitHub 2c587c18a0 Merge pull request #11 from natano/win32-mbedtls
Add mbedtls and use it on windows
2022-01-18 13:11:02 -08:00
Martin Natano 6de676984d Add mbedtls and use it on windows 2022-01-18 20:50:15 +01:00
teejusb 7b1db8b2fb Define ssize_t to be the same width of size_t
The size of size_t is defined by the architecture (32bit or 64bit). Since ssize_t is not part of the standard, unlike size_t, it might not be defined but it should always be the same size as size_t.
2022-01-17 22:31:44 -08:00
teejusbandGitHub c51e0203b9 Merge pull request #5 from natano/netman
Implement NetworkManager
2022-01-16 09:47:46 -08:00
Martin Natano 3fab481611 fixup collect 2022-01-15 22:56:22 +01:00
Martin Natano bb826dc0b2 Allow cancellation of HTTP requests
`NETWORK::HttpRequest()` now returns a HttpRequestFuture with a
`Cancel()` method.
2022-01-15 22:56:22 +01:00
Martin Natano 134fa9a3d9 IXWebSocket: Allow to cancel asynchronous HTTP requests
Usage:

    auto args = this->httpClient.createRequest(url, method);
    httpClient.performRequest(args, ...);
    [...]
    // Oops, we don't actually want to complete the request!
    args->cancel = true;

Submitted upstream:
https://github.com/machinezone/IXWebSocket/pull/332
2022-01-15 22:56:22 +01:00
Martin Natano bc4a275510 Add parameter encoding helpers to NETWORK
This adds two more methods:
- `NETWORK:UrlEncode()`: Encode a single string value.
- `NETWORK:EncodeQueryParameters()`: Encode a table as query string.
2022-01-15 22:56:08 +01:00
Martin Natano dc49af3c59 Implement NetworkManager
For now there are two methods:

- `NETWORK:IsUrlAllowed()`: Check whether access to a certain URL is allowed.
- `NETWORK:HttpRequest()`: Perform an HTTP request.

By default access to the network is disabled for all target hosts. It
can be enabled by setting `HttpEnable=1` in the preferences. Individual
hosts have to be added to `HttpAllowHosts` as a comma separated list to
allow access.

See included docs for more details on usage.
2022-01-15 22:56:08 +01:00
teejusbandGitHub ddfc49e0b5 Merge pull request #10 from teejusb/tns
Add support for disabling timing windows on a per-player basis
2022-01-05 18:21:57 -08:00
teejusb a48a5b73ad Remove returned timing window table 2022-01-05 18:21:28 -08:00
teejusb 99ee1f2b84 Use bitset instead of map and adjust files accordingly. 2021-12-21 23:44:37 -08:00
Crystal SquirrelandGitHub 21bb1dbdd3 Merge pull request #2083 from natano/unbind-hyphen
Change the default binding for P2/back from hyphen to backslash
2021-12-16 11:31:20 +00:00
teejusb 2967165235 Logic fixes 2021-12-10 21:12:11 -08:00
teejusb c10d8e4eb5 Initial Implementation of disabling timing windows per player. 2021-12-10 00:27:21 -08:00
teejusb 47a6f625f1 Actually add the Visual Delay method 2021-12-06 13:10:02 -08:00
teejusbandGitHub 13ae6e56db Merge pull request #9 from teejusb/visualdelay
Add player specific Visual Delay.
2021-11-02 02:09:24 -07:00
teejusb 8673c28161 Convert ms to seconds. Use the PlayerState's m_Position in ArrowEffects so it actually works. 2021-10-26 21:22:17 -07:00
teejusb 02105d57dd Revert "Always use PlayerState's own timing because of visual delay."
This reverts commit 8edca26493.
2021-10-22 18:58:22 -07:00
teejusb 8edca26493 Always use PlayerState's own timing because of visual delay. 2021-10-22 18:54:54 -07:00
teejusb 6dc0ec5258 Woops, actually store the value of the visual delay. 2021-10-22 18:33:13 -07:00
teejusb 547b379765 Type and parsing fixes. 2021-10-22 18:18:15 -07:00