Argent1028 Posted October 30, 2023 Report Share Posted October 30, 2023 (edited) Hi, Starting from version 5.0.2, a bug appeared: when using unstable proxies, authorization stops working and nothing happened, could you add some handlers to reject them properly, for example, emit client error to catch them inside client.error handler ? Uncaught (in promise) Error: socket hang up at connResetException (node:internal/errors:704:14) at Socket.socketOnEnd (node:_http_client:505:23) at Socket.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1358:12) at process.processTicksAndRejections (node:internal/process/task_queues:83:21) node:_http_client:521 Uncaught (in promise) Error: Parse Error: Expected HTTP/ at Socket.socketOnData (node:_http_client:521:22) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Readable.push (node:internal/streams/readable:228:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23) When I revert to 5.0.1, errors are thrown in the client.on('error') handler Edited October 31, 2023 by Argent1028 Quote Link to comment Share on other sites More sharing options...
Dr. McKay Posted October 31, 2023 Report Share Posted October 31, 2023 5.0.3 should fix this for you. Quote Link to comment Share on other sites More sharing options...
Argent1028 Posted October 31, 2023 Author Report Share Posted October 31, 2023 Thanks, but I'm facing another problem: it gets stuck in an infinite loop when trying to get a list of servers. I have 10 accounts, the first 5-7 were successfully logged in, but all subsequent ones are stuck in this place. Maybe it would be better to share the CM list among all Steam user instances like it were before ? I don't know why, but some accounts just couldn't load this list and got stuck at the GetCMListForConnect stage. Quote Link to comment Share on other sites More sharing options...
Dr. McKay Posted October 31, 2023 Report Share Posted October 31, 2023 I refactored the WebAPI client to use a different HttpClient so that I could add a timeout to it, but then forgot why I refactored it in the first place. 5.0.4 adds the timeout, which should fix the issue. Sharing the CM list across multiple instances wouldn't be a bad idea, but it's not something I've got time for right now. Quote Link to comment Share on other sites More sharing options...
Argent1028 Posted November 1, 2023 Author Report Share Posted November 1, 2023 Could you please add it as an optional parameter to the client options as a quick fix? If the user passed cmList into client.options then use the list, otherwise load the list the same way as now. I believe this should significantly increase authorisation performance. Quote Link to comment Share on other sites More sharing options...
Argent1028 Posted November 5, 2023 Author Report Share Posted November 5, 2023 (edited) Hi, I refactored code to share cmlist between instances, this significantly increased auth performance, could you implement this snippet into steam-user ? const PROTOCOL_VERSION = 65580; const PRIVATE_IP_OBFUSCATION_MASK = 0xbaadf00d; // create global variable at the start of the file let cmListResponse // request cm list only if cmListResponse is undefined if (!cmListResponse) { try { cmListResponse = await this._apiRequest( 'GET', 'ISteamDirectory', 'GetCMListForConnect', 1, getCmListQueryString, 300 ); } catch (ex) { this.emit('debug', `GetCMListForConnect error: ${ex.message}`); if (++this._getCmListAttempts >= 10) { this.emit('error', ex); } else { setTimeout(() => this._doConnection()); } return; } } Edited November 5, 2023 by Argent1028 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.