canonical / canonical/shopkeeper

Refactor: Overly complex manual HTTP/Socket handling in WorkshopClient

Open
#175 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

The WorkshopClient class implements low-level HTTP communication, including manual header parsing (e.g., in src/workshopclient.cpp:16-29) and complex asynchronous socket management (src/workshopclient.cpp:145-572). \n\nThis manual implementation is prone to errors and violates the principle of leveraging higher-level KDE Frameworks components. The entire networking layer (socket connection, read/write loop, header parsing, timeout logic) should ideally be refactored to use or a dedicated KF6 networking module, allowing Qt to handle the complexities of HTTP protocol adherence, retries, and asynchronous state management more robustly. This would significantly reduce boilerplate code and improve reliability.\n\nLocation: src/workshopclient.cpp

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing src/workshopclient.cpp:16-29 for manual header parsing and src/workshopclient.cpp:145-572 for socket, read/write, timeout, and asynchronous state handling. Determine which higher-level KDE Frameworks or KF6 networking component fits, then consider the work complete when the networking layer no longer manages these concerns manually and preserves the client's behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.