Commit graph

4108 commits

Author SHA1 Message Date
JustArchi
34bdffb3cf Misc 2017-02-14 04:07:29 +01:00
JustArchi
d674d32132 Final misc contributing corrections 2017-02-14 04:07:03 +01:00
JustArchi
4be75669d1 Misc 2017-02-14 03:49:07 +01:00
JustArchi
b371ac7be8 Clarify contributing doc with thoughts from #467 2017-02-14 03:45:37 +01:00
JustArchi
cbcc045369 Move OnTimeChanged event from ASF to OS 2017-02-13 21:16:12 +01:00
JustArchi
56983c0470 Handle system clock updates
In very rare scenario of starting from time X, calculating SteamTimeDifference of Y, then changing time from X to Z, old Y difference might no longer be accurate, which could lead to temporary failure of generating tokens/confirmations for given time.
Steam accepts tokens for quite a while (15 minutes from their time IIRC), so this would only hit us if we started from really huge time gap X, and not just normal typical small max 1-2 minutes updates.
2017-02-13 20:53:06 +01:00
JustArchi
fe3f72594d AppVeyor deployment worked, make it release all pre-releases from now on
Stable releases will still be promoted manually, although from automated AppVeyor builds from now on
2017-02-12 15:58:01 +01:00
JustArchi
d523a131f9 Bump 2017-02-12 15:56:29 +01:00
JustArchi
3afb6fa0e8 Release tag fix 2017-02-12 15:50:24 +01:00
JustArchi
b0ecccd916 Correct AppVeyor permission to deploy 2017-02-12 15:42:51 +01:00
Łukasz Domeradzki
56b88c4c72 Merge pull request #465 from JustArchi/l10n
New Crowdin translations
2017-02-12 15:32:36 +01:00
JustArchi
0625e57333 Switch from self-compiled SK2 back to original SK2
It got updated so I no longer need my own version for bugfixes
2017-02-12 15:29:50 +01:00
JustArchi
d1cb536981 Start deploying through AppVeyor 2017-02-12 15:15:20 +01:00
Łukasz Domeradzki
fde9adb56b Translated 2017-02-11 23:50:51 +01:00
JustArchi
353af0d67b Update SK2 to latest master and rewrite ASF to use newly-introduced EPurchaseResultDetail 2017-02-11 22:24:49 +01:00
Łukasz Domeradzki
4a768f8ce0 New translations 2017-02-11 19:30:54 +01:00
Łukasz Domeradzki
a455a7bbdd New translations 2017-02-11 19:20:53 +01:00
Łukasz Domeradzki
36b5534f9e Translated 2017-02-11 19:20:50 +01:00
JustArchi
d554c57b34 Misc 2017-02-11 17:18:50 +01:00
JustArchi
befc71f358 Code cleanup 2017-02-11 17:09:15 +01:00
JustArchi
72045e5f71 Add WCF metadata publishing, #448 2017-02-11 16:06:05 +01:00
Łukasz Domeradzki
e1358f0b90 New translations 2017-02-10 22:03:49 +01:00
Łukasz Domeradzki
a9332c3a8c New translations 2017-02-10 21:32:27 +01:00
Łukasz Domeradzki
9f4a710676 New translations 2017-02-09 22:22:42 +01:00
Łukasz Domeradzki
d55ebb79da New translations 2017-02-09 22:22:38 +01:00
JustArchi
87eafaf81d Bump 2017-02-09 14:01:00 +01:00
JustArchi
21156a6c79 Link new translations 2017-02-09 13:45:31 +01:00
Łukasz Domeradzki
eb56b3c2ac Merge pull request #460 from JustArchi/l10n
New Crowdin translations
2017-02-09 13:44:28 +01:00
JustArchi
4b4f2626a8 Fix ASF crash on invalid IdentitySecret/SharedSecret 2017-02-09 13:23:54 +01:00
JustArchi
ec4439afb4 Make DismissInventoryNotifications false by default
The amount of people that have no clue what is happening is too damn high.
2017-02-09 13:16:30 +01:00
Łukasz Domeradzki
9b2a86d891 Translated 2017-02-09 11:42:42 +01:00
Łukasz Domeradzki
d2c2e30d47 New translations 2017-02-08 17:23:23 +01:00
JustArchi
d7f2610313 Bump MinHeartBeatTTL from 5 to 10 2017-02-08 14:55:40 +01:00
JustArchi
1363b23008 Handle temporary fetching failures appropriately 2017-02-08 14:41:28 +01:00
JustArchi
c1a1cf15b0 Misc 2017-02-08 14:36:10 +01:00
JustArchi
89a36beeae Improve statistics reporting
Skip reporting when user has private or empty inventory
2017-02-08 14:35:01 +01:00
JustArchi
92b9aeae31 Fix Mono compilation 2017-02-07 21:09:08 +01:00
Łukasz Domeradzki
ef01b304bb Translated 2017-02-07 20:22:25 +01:00
JustArchi
a8045ac50b Fix async/await with ConcurrentHashSet
Now this is a nice bug that was found accidentally by ArchiBoT...
ReaderWriterLockSlim() is very decent solution, but it's thread-based, and we're using our ConcurrentHashSet in mixed async/sync context. This means that if we use something like:
foreach (var item in concHashSet) {
    await AnythingAsync().ConfigureAwait(false);
}
It's totally possible that we'll request read lock as thread 1, and release the read lock as thread 2, which will lead to RWLock exception => System.Threading.SynchronizationLockException: The read lock is being released without being held.
Fortunately it looks like we didn't have any scenario like this in ASF, as this was possible only when we async/await while enumerating over ConcurrentHashSet, so that specific bug didn't affect ASF codebase (yet). Still, I must fix this as current implementation is not thread-safe, so our HashSet is in fact not concurrent in the first place.
I analyzed possible solutions and there are basically 3: either using ConcurrentDictionary and wrapping around it, replacing lock with SemaphoreSlim, or using third-party AsyncReaderWriterLock from StephenCleary. SemaphoreSlim entirely kills the concept of multiple readers one writer, and could affect performance negatively, moreover - it doesn't support upgreadable lock scenario we have with ReplaceIfNeededWith(). Concurrent dictionary would be nice if I didn't have that awful memory hit from storing mandatory pointless value, plus I don't really like concept of wrapping around conc dictionary if I can simply use it right away and drop my conc hashset entirely. AsyncReaderWriterLock seem to be really well written, and works on Mono + should be compatible with .NET core in the future, so we should go for it as it's the best bet both performance-wise and memory-wise.
This brings another package dependency and changes a bit backend of ConcurrentHashSet
2017-02-07 20:14:51 +01:00
JustArchi
f97379bf60 Misc 2017-02-07 17:35:52 +01:00
JustArchi
5197fffa3b Misc 2017-02-07 17:25:32 +01:00
Łukasz Domeradzki
dc74114f4c New translations 2017-02-07 14:23:13 +01:00
JustArchi
872151d2f7 Misc 2017-02-07 13:09:41 +01:00
JustArchi
d495d649ba Make WCF accept commands starting with '!' as well 2017-02-07 10:49:58 +01:00
Łukasz Domeradzki
dbd9389d6c Translated 2017-02-07 08:20:57 +01:00
Łukasz Domeradzki
965432d346 New translations 2017-02-07 02:40:49 +01:00
Łukasz Domeradzki
c4e1fe2bcf New translations 2017-02-06 22:51:51 +01:00
Łukasz Domeradzki
b0fc06f3d2 New translations 2017-02-06 22:51:48 +01:00
Łukasz Domeradzki
4845b21642 New translations 2017-02-06 22:40:49 +01:00
Łukasz Domeradzki
b7f3ce4036 New translations 2017-02-06 22:22:22 +01:00