208 Commits

Author SHA1 Message Date
Łukasz Domeradzki
738d949f1f Misc 2025-10-26 23:15:38 +01:00
renovate[bot]
267cf1597e chore(deps): update dependency mstest to v4 (#3493)
* chore(deps): update dependency mstest to v4

* Misc improvement

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Łukasz Domeradzki <JustArchi@JustArchi.net>
2025-10-07 22:12:51 +02:00
Łukasz Domeradzki
71a708b515 Misc 2025-09-24 23:22:16 +02:00
Łukasz Domeradzki
50b9011323 Add hashing unit test 2025-09-24 23:17:25 +02:00
Łukasz Domeradzki
6bd2e088fc Misc 2025-08-08 19:37:57 +02:00
Łukasz Domeradzki
b4874a05c6 Code cleanups 2025-08-08 19:32:32 +02:00
renovate[bot]
5659818313 chore(deps): update dependency mstest to 3.10.0 (#3458)
* chore(deps): update dependency mstest to 3.10.0

* Adapt to new analyzers

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Łukasz Domeradzki <JustArchi@JustArchi.net>
2025-07-30 03:14:13 +02:00
Łukasz Domeradzki
ca0bd87357 Move from JetBrains.Annotations to JetBrains.Annotations.Sources 2025-07-24 14:05:07 +02:00
Łukasz Domeradzki
cf9a578815 Misc tests improvement 2025-05-07 23:58:11 +02:00
Łukasz Domeradzki
449f3556a7 Add extra unit test 2025-05-07 23:49:08 +02:00
Łukasz Domeradzki
61f876480a General code cleanups 2025-03-31 00:06:05 +02:00
Łukasz Domeradzki
ebc4601ed4 Add another useful json helper 2025-03-08 15:00:38 +01:00
Łukasz Domeradzki
dcde5d9d54 Misc test improvements 2025-02-13 00:20:10 +01:00
Łukasz Domeradzki
9e207025c5 Happy new year 2025-01-05 02:40:56 +01:00
Łukasz Domeradzki
40dc70e8c7 Misc 2024-09-22 20:42:44 +02:00
Łukasz Domeradzki
5cc684f4b6 .NET 9 improvements 2024-09-22 20:11:50 +02:00
Łukasz Domeradzki
b6805a94a3 Add workaround for LINQ race condition with concurrent collections
This is some next-level race condition, so for those interested:
- Concurrent collections are thread-safe in a way that each operation is atomic
- Naturally if you call two atomic operations in a row, the result is no longer atomic, since there could be some changes between the first and the last
- Certain LINQ operations such as OrderBy(), Reverse(), ToArray(), among more, use internal buffer for operation with certain optimization that checks if input is ICollection, if yes, it calls Count and CopyTo(), for OrderBy in this example
- In result, such LINQ call is not guaranteed to be thread-safe, since it assumes those two calls to be atomic, while they're not in reality.

This issue is quite hard to spot in real applications, since it's not that easy to trigger it (you need to call the operation on ICollection and then have another thread modifying it while enumerating). This is probably why we've never had any real problem until I've discovered this madness with @Aareksio in entirely different project.

As a workaround, we'll explicitly convert some ICollection inputs to IEnumerable, in particular around OrderBy(), so the optimization is skipped and the result is not corrupted.

I've added unit tests which ensure this workaround works properly, and you can easily reproduce the problem by removing AsLinqThreadSafeEnumerable() in them.

See https://github.com/dotnet/runtime/discussions/50687 for more insight

I have no clue who thought that ignoring this issue is a good idea, at the very least concurrent collections should have opt-out mechanism from those optimizations, there is no reason for them to not do that.
2024-08-16 03:25:58 +02:00
Łukasz Domeradzki
90f2d93768 Optimize mobile authenticator, add unit tests 2024-08-11 02:21:00 +02:00
Łukasz Domeradzki
f28d783272 Misc 2024-08-07 03:15:22 +02:00
Łukasz Domeradzki
2c9d015f38 Fix @xPaw breaking changes
How could you!
2024-08-07 03:02:04 +02:00
Łukasz Domeradzki
b664b85495 Remove ConfigureAwaitChecker.Analyzer
Appropriate detecion is now available in Roslyn
2024-07-20 01:01:45 +02:00
Łukasz Domeradzki
ca3f3e0cab Resolve selected .NET 9 analyzer warnings 2024-06-25 00:18:38 +02:00
Łukasz Domeradzki
3b2ca10b05 Closes #3203
When excessive amount of "missing amounts", so items in the set was missing on our side, there was a possibility for our logic to classify a good trade as bad one, because we didn't fill in enough holes, as the subtraction in the condition was calculated on each loop rather than once initially.

Since this could only worsen the neutrality score, but never improve it (as the amounts were sorted ascending), there was no abusive possibility due to that, only ignoring otherwise valid trades classifying them as worse than they were in reality.
2024-05-13 09:29:30 +02:00
Łukasz Domeradzki
ff02a4a8d4 Remove zxcvbn dependency
Pushing external lib purely to save user's from eventual stupidity is just simply not worth the bytes in the final zip archive.
2024-05-02 21:54:54 +02:00
Archi
48a14136a9 Update all file headers, again 2024-03-17 02:35:40 +01:00
Archi
c9acbb7bf2 Big post-PR cleanup 2024-03-17 02:29:04 +01:00
Archi
f98a159799 File header update 2024-03-17 00:06:13 +01:00
Vita Chumakova
184232995d Inventory fetching through CM (#3155)
* New inventory fetching

* use new method everywhere

* Store description in the asset, add protobuf body as a backing field for InventoryDescription, add properties to description

* parse trade offers as json, stub descriptions, fix build

* formatting, misc fixes

* fix pragma comments

* fix passing tradable property

* fix convesion of assets, add compatibility method

* fix fetching tradeoffers

* use 40k as default count per request

* throw an exception instead of silencing the error
2024-03-16 23:57:25 +01:00
Archi
6c9e9da740 Modernize unit tests 2024-02-22 16:08:54 +01:00
Sebastian Göls
dbf7148fbe Happy new year! (#3121)
Co-authored-by: Sebastian Göls <sebastian.goels@salvagninigroup.com>
2024-01-08 11:33:28 +01:00
Archi
40ab1d848c .NET 8 code enhancements 2023-12-11 23:55:13 +01:00
Łukasz Domeradzki
b34f18497d .NET 8 (#3005)
* Initial .NET 8

* Make it compile in release mode ignoring warnings for now

* First round of improvements

* Second round of improvements

* Third round of improvements

* Use new throws

* Fix .NET Framework, YAY, thanks madness!

Madness devs are awesome

* Misc

* Misc

* AF_NETLINK might be required for some http calls

No clue why

* Fix service files

Doesn't do what it should

* Update CardsFarmer.cs

* New improvements

* Address feedback

* Misc

* Misc

* Misc refactor

* Misc
2023-11-14 19:12:33 +01:00
Archi
2b06153fa2 Add additional test case 2023-11-14 16:25:40 +01:00
Sebastian Göls
0c125db118 Happy new year! (#2809) 2023-01-25 15:43:12 +01:00
Łukasz Domeradzki
df4f8d1e62 Improve fairness logic (#2807)
* Improve fairness logic

* Add unit test against abuse

* Further simplify the code

That first pass is not needed anymore, first loop covers it
2023-01-24 22:55:15 +01:00
Archi
b5af510eb9 Improve weak passwords reasons 2022-04-18 20:35:47 +02:00
Archi
1809028c77 Rider cleanup 2022-01-06 20:22:38 +01:00
Archi
71f4e16603 Misc 2021-12-14 23:10:11 +01:00
Archi
225003c5d1 Try to fix netf, once again into the breach 2021-12-12 01:44:17 +01:00
Archi
4f598d5c8f Latest Rider cleanups 2021-12-12 01:12:54 +01:00
Archi
d1fc7ebb74 Use C# 10 string interpolation wherever possible 2021-11-11 01:53:34 +01:00
Archi
1e6ab11d9f Use file-scoped namespaces 2021-11-10 21:23:24 +01:00
Sebastian Göls
fb4eb0b03a Use Madness via global usings (#2447)
* Use Madness via global usings

* Apply feedback

* Disable false positive null warning
2021-11-09 16:33:09 +01:00
Archi
1456efc341 Update Utilities.cs 2021-10-14 00:13:19 +02:00
Archi
fc0c916137 Extend warnings for --cryptkey and lack of it
@Abrynos
2021-10-13 23:24:07 +02:00
Sebastian Göls
be027523ac Warn about insecure passwords (#2419)
* Add warnings about password security

* Warn about weak steam passwords even if they are encrypted

* Apply feedback

* Apply feedback

* Simplify code

* Move return criteria up a bit for increased performance

* Choose more fitting strings for localization

* Extract const value

* Fix incorrect null reference warning

* Switch prefix operator for postfix one

Co-authored-by: Łukasz Domeradzki <JustArchi@JustArchi.net>

* Add tests

* Disable CA1724

The type name Utilities conflicts in whole or in part with the namespace name 'Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.Utilities'.

* Tell users why their password is considered weak

* Apply feedback

* Merge resource comments

* Misc.

* Use library for password testing and Run testing in background

* Clean up

* OncSeparate forbidden phrases forfor IPC passwords (once again)

* Additionally check encryption key

* Add comment about {0}

Co-authored-by: Łukasz Domeradzki <JustArchi@JustArchi.net>
2021-10-13 21:44:48 +02:00
Archi
7e9e90764b Use static lambdas wherever possible
Thanks Rider
2021-09-27 21:33:52 +02:00
Archi
f2d3a2a894 Use string interpolation wherever possible
Majority of cases still need to go through string.Format() due to localization requirements
2021-09-27 19:59:00 +02:00
Łukasz Domeradzki
9f281c6055 Embrace madness (#2394)
* Embrace madness

* Remove unused code

* Misc

* Address Abry's note

* Update for Madness 0.3.0
2021-08-07 14:03:46 +02:00
Archi
37689f4de6 Misc XML cleanup 2021-07-15 23:06:16 +02:00