Skip to content

cleanup#12

Merged
PhilipDeegan merged 6 commits into
masterfrom
updates
Jan 11, 2026
Merged

cleanup#12
PhilipDeegan merged 6 commits into
masterfrom
updates

Conversation

@PhilipDeegan

@PhilipDeegan PhilipDeegan commented Jan 11, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Refactor

    • Removed platform-specific HTTP/HTTPS/TCP implementations, simplifying the public API surface.
  • Chores

    • Updated project copyright year to 2026.
    • Adjusted build/config paths and test locations in project config.
    • Replaced scheduled CI triggers with push/pull_request only and made CI download step more resilient.
  • API

    • Updated public qualifier macros across headers, affecting published declarations.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Jan 11, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@PhilipDeegan has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 19 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 0ee6a26 and 4529169.

📒 Files selected for processing (1)
  • inc/mkn/ram/os/nixish/http.hpp
📝 Walkthrough

Walkthrough

Updated license years and export/debug macros, adjusted project paths and CI triggers, and removed many platform-specific HTTP/HTTPS/TCP public headers and their APIs across nixish and win directories.

Changes

Cohort / File(s) Summary
License & header updates
LICENSE.md, inc/mkn/ram/asio/fcgi.hpp, inc/mkn/ram/html/..., inc/mkn/ram/http/..., inc/mkn/ram/mpi.hpp, inc/mkn/ram/tcp/..., src/any/..., src/nixish/..., src/win/..., tst/...
Bumped copyright years 2024 → 2026 in many headers/sources; no logic changes.
Debug macro rename
src/any/..., src/nixish/..., src/win/..., inc/mkn/ram/os/..., tst/...
Replaced KUL_DBG_FUNC_ENTER with MKN_KUL_DBG_FUNC_ENTER (added semicolons where required); no control-flow/API changes.
Export macro qualifier changes
inc/mkn/ram/http.hpp, inc/mkn/ram/os/win/*.hpp
Replaced KUL_PUBLISH with MKN_KUL_PUBLISH on several class/method declarations (export qualifier rename).
Large platform header removals
os/nixish/inc/mkn/ram/http.hpp, os/nixish/inc/mkn/ram/https.hpp, os/nixish/inc/mkn/ram/tcp.hpp, os/win/inc/mkn/ram/http.hpp, os/win/inc/mkn/ram/https.hpp, os/win/inc/mkn/ram/tcp.hpp
Entire deletion of POSIX/Windows HTTP, HTTPS (OpenSSL), and TCP public headers and their public APIs (Server, MultiServer, Socket, SocketServer, SSL request types, etc.).
Platform TCP tweaks
inc/mkn/ram/os/win/tcp.hpp, inc/mkn/ram/os/nixish/tcp.hpp
Added __MKN_RAM_TCP_BIND_SOCKTOPTS__ (default SO_REUSEADDR), adjusted getaddrinfo numeric service usage to this->port(), and replaced debug macro usages; minor semicolon/format fixes.
Project config & mappings
mkn.yaml
Adjusted base/include/src mappings (inc and src/any), updated platform if_src mappings, moved test mains from test/*tst/*, and added some build args.
CI workflow changes
.github/workflows/build_nix.yml, .github/workflows/build_osx.yml, .github/workflows/build_win.yml
Removed cron schedule triggers (workflows now run on push/pull_request only) and hardened curl download commands (retries/backoff) in some workflows.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

  • ++ #8 — Modifies the same GitHub Actions workflow files and scheduling triggers; likely related to the removed cron triggers.
  • ++ #7 — Alters CI workflow download/checkout steps and curl usage; overlaps with hardened curl command changes.

"I hopped through headers, nibbling old dates,
Year now two thousand twenty-six — how great!
I cleared some servers, sockets, and a trail,
Moved paths and CI cron off the rail.
A carrot for code — a tidy little tale. 🥕"

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'cleanup' is too vague and generic. While the PR does perform maintenance work (copyright updates, macro renamings, file removals), the title does not convey the primary changes—it could refer to any type of cleanup and fails to distinguish this PR's scope. Provide a more specific title that summarizes the main changes, such as 'Update copyright year, refactor macros, and remove platform-specific headers' or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
inc/mkn/ram/os/win/tcp.hpp (1)

52-54: Good addition of compile-time configurability.

The preprocessor guard allows customization of socket options, which is a good practice. However, note that Line 325 in the start() method still uses SO_REUSEADDR directly instead of the configurable __MKN_RAM_TCP_BIND_SOCKTOPTS__ macro. This means the macro currently only affects the bind() method signature (line 303) but not the actual socket setup.

♻️ Optional: Use the configurable macro consistently

If you want the macro to control the actual socket option used:

     lisock = socket(result->ai_family, result->ai_socktype, result->ai_protocol);
     int iso = 1;
-    int rc = setsockopt(lisock, SOL_SOCKET, SO_REUSEADDR, (char*)&iso, sizeof(iso));
+    int rc = setsockopt(lisock, SOL_SOCKET, __MKN_RAM_TCP_BIND_SOCKTOPTS__, (char*)&iso, sizeof(iso));
     if (lisock == INVALID_SOCKET) KEXCEPTION("socket failed with error: ") << WSAGetLastError();
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 86bbea9 and 9454594.

📒 Files selected for processing (45)
  • LICENSE.md
  • inc/mkn/ram/asio/fcgi.hpp
  • inc/mkn/ram/html/def.hpp
  • inc/mkn/ram/html/page.hpp
  • inc/mkn/ram/html/tag.hpp
  • inc/mkn/ram/html4.hpp
  • inc/mkn/ram/http.hpp
  • inc/mkn/ram/http/def.hpp
  • inc/mkn/ram/http/session.hpp
  • inc/mkn/ram/https.hpp
  • inc/mkn/ram/mpi.hpp
  • inc/mkn/ram/os/nixish/http.hpp
  • inc/mkn/ram/os/nixish/https.hpp
  • inc/mkn/ram/os/nixish/tcp.hpp
  • inc/mkn/ram/os/win/http.hpp
  • inc/mkn/ram/os/win/https.hpp
  • inc/mkn/ram/os/win/tcp.hpp
  • inc/mkn/ram/tcp.hpp
  • inc/mkn/ram/tcp/def.hpp
  • mkn.yaml
  • os/nixish/inc/mkn/ram/http.hpp
  • os/nixish/inc/mkn/ram/https.hpp
  • os/nixish/inc/mkn/ram/tcp.hpp
  • os/win/inc/mkn/ram/http.hpp
  • os/win/inc/mkn/ram/https.hpp
  • os/win/inc/mkn/ram/tcp.hpp
  • src/any/fcgi/server.cpp
  • src/any/http/request.cpp
  • src/any/http/response.cpp
  • src/any/http/server.cpp
  • src/nixish/http/multi.cpp
  • src/nixish/http/server.cpp
  • src/nixish/https/multi.cpp
  • src/nixish/https/request.cpp
  • src/nixish/https/server.cpp
  • src/win/http/multi.cpp
  • src/win/http/server.cpp
  • src/win/https/multi.cpp
  • src/win/https/request.cpp
  • src/win/https/server.cpp
  • tst/client.cpp
  • tst/fcgi.cpp
  • tst/server.cpp
  • tst/test.cpp
  • tst/usage.cpp
💤 Files with no reviewable changes (6)
  • os/win/inc/mkn/ram/https.hpp
  • os/nixish/inc/mkn/ram/http.hpp
  • os/win/inc/mkn/ram/http.hpp
  • os/win/inc/mkn/ram/tcp.hpp
  • os/nixish/inc/mkn/ram/https.hpp
  • os/nixish/inc/mkn/ram/tcp.hpp
🔇 Additional comments (41)
src/nixish/http/multi.cpp (2)

2-2: Copyright year updated appropriately.

The copyright year has been correctly updated to 2026 as part of the routine maintenance across the codebase.


33-47: No functional changes in implementation.

The MultiServer::start() method implementation remains unchanged. The code properly initializes the listening socket, configures poll file descriptors, and starts the thread pools for accepting connections and worker tasks.

src/win/https/request.cpp (1)

2-2: Copyright year updated correctly.

Routine copyright year update (2024 → 2026) is complete and consistent with the BSD 2-Clause license header.

src/nixish/https/multi.cpp (1)

2-2: Copyright year updated correctly.

Routine copyright year update (2024 → 2026) is complete and consistent with the BSD 2-Clause license header.

tst/server.cpp (2)

2-2: Copyright year updated correctly.

Routine copyright year update (2024 → 2026) is complete and consistent with the BSD 2-Clause license header.


1-268: Verify removal of platform-specific implementations mentioned in the PR summary.

The AI summary references removal of "platform-specific HTTP/HTTPS/TCP header implementations for POSIX and Windows" and reorganization of mkn.yaml paths, but these changes are not visible in the provided code segments. The provided files show only the final state with copyright updates; removed code is not displayed.

Please confirm that the broader structural changes (file removals, mkn.yaml updates, preprocessor guard additions) mentioned in the PR summary have been properly applied elsewhere in the changeset.

inc/mkn/ram/os/win/http.hpp (1)

2-2: Copyright year update—approved.

The copyright year has been updated from 2024 to 2026 with no functional changes to the implementation.

tst/client.cpp (1)

2-2: Copyright year update—approved.

The copyright year has been updated from 2024 to 2026 with no functional changes to the test implementation.

inc/mkn/ram/tcp.hpp (1)

83-87: No issues. The platform-specific TCP header files (os/win/tcp.hpp and os/nixish/tcp.hpp) exist in the repository and will be correctly included at lines 84 and 86.

src/nixish/https/server.cpp (1)

2-2: Copyright year update looks good.

The copyright year has been correctly updated to 2026. No functional changes.

src/win/https/multi.cpp (1)

2-2: Copyright year update looks good.

The copyright year has been correctly updated to 2026. No functional changes.

inc/mkn/ram/os/nixish/tcp.hpp (1)

2-2: Copyright year update looks good.

The copyright year has been correctly updated to 2026. No functional changes.

inc/mkn/ram/html/tag.hpp (1)

2-2: Copyright year update approved.

Straightforward maintenance update; no functional changes.

src/win/https/server.cpp (1)

2-2: Copyright year update approved.

Straightforward maintenance update; no functional changes.

tst/usage.cpp (1)

2-2: Copyright year update approved.

Straightforward maintenance update; no functional changes.

inc/mkn/ram/html/def.hpp (1)

2-2: LGTM!

Copyright year update to 2026 is appropriate.

LICENSE.md (1)

1-1: LGTM!

Copyright year update to 2026 in the license file is appropriate.

inc/mkn/ram/mpi.hpp (1)

3-3: LGTM!

Copyright year update to 2026 is appropriate.

src/nixish/https/request.cpp (1)

2-2: LGTM!

Copyright year update to 2026 is appropriate.

src/win/http/multi.cpp (1)

2-2: LGTM!

Copyright year update to 2026 is appropriate.

tst/test.cpp (1)

2-2: LGTM!

Copyright year update to 2026 is appropriate.

inc/mkn/ram/tcp/def.hpp (1)

2-2: LGTM!

Copyright year update to 2026 is appropriate.

inc/mkn/ram/asio/fcgi.hpp (1)

2-2: Copyright year update approved.

inc/mkn/ram/os/win/https.hpp (1)

2-2: Copyright year update approved.

src/nixish/http/server.cpp (1)

2-2: Copyright year update approved.

src/any/http/request.cpp (1)

2-2: Copyright year update approved.

The copyright year has been correctly updated to 2026. No functional changes detected.

inc/mkn/ram/https.hpp (1)

2-2: Copyright year update approved.

The copyright year has been correctly updated to 2026. No functional changes detected.

tst/fcgi.cpp (1)

2-2: Copyright year update approved.

The copyright year has been correctly updated to 2026. No functional changes detected.

inc/mkn/ram/http.hpp (1)

1-2: Copyright year updated appropriately.

The copyright year update from 2024 to 2026 is correct and consistent with the PR objectives. No functional code changes.

src/any/http/server.cpp (1)

1-2: Copyright year updated appropriately.

The copyright year update from 2024 to 2026 is correct. No functional code changes in the implementation.

inc/mkn/ram/http/session.hpp (1)

1-2: Copyright year updated appropriately.

The copyright year update from 2024 to 2026 is correct. No functional code changes in the template definitions.

inc/mkn/ram/os/nixish/http.hpp (1)

2-2: Copyright year updated consistently.

The year update from 2024 to 2026 is clean and does not affect any functional or structural aspects of the code.

src/any/http/response.cpp (1)

2-2: Copyright year updated consistently.

The year update from 2024 to 2026 is clean and does not affect any functional or structural aspects of the code.

inc/mkn/ram/html/page.hpp (1)

2-2: Copyright year updated consistently.

The year update from 2024 to 2026 is clean and does not affect any functional or structural aspects of the code.

src/win/http/server.cpp (1)

2-2: LGTM! Copyright year updated.

The copyright year update is appropriate for 2026.

inc/mkn/ram/http/def.hpp (1)

2-2: LGTM! Copyright year updated.

Consistent copyright year update across the codebase.

inc/mkn/ram/os/win/tcp.hpp (2)

2-2: LGTM! Copyright year updated.


317-317: LGTM! Explicit member access improves clarity.

The change from port() to this->port() makes the member function call explicit, which is good practice in template code and helps with name resolution.

mkn.yaml (3)

9-10: LGTM! Path reorganization.

The path updates normalize the structure by removing ./ prefixes and organizing platform-independent source code under src/any.


12-14: LGTM! Consistent platform-specific path organization.

The platform-specific source directories are now organized consistently under src/ (e.g., src/nixish, src/win), matching the src/any pattern for platform-independent code.


43-63: LGTM! Test directory reorganization.

All test entry points have been consistently updated to reflect the directory rename from test/ to tst/.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
inc/mkn/ram/os/win/https.hpp (1)

80-99: Standardize MKN_KUL_PUBLISH macro placement on line 99.

Line 99 uses MKN_KUL_PUBLISH virtual void stop(), which diverges from the codebase pattern. The predominant style is virtual MKN_KUL_PUBLISH <return_type> (used in lines 80, 83, 85 and http.hpp:78). Change line 99 to virtual MKN_KUL_PUBLISH void stop() override; for consistency.

src/win/https/request.cpp (1)

36-90: Remove the opening brace from line 36 in Requester::send() to match the consistent macro usage pattern.

The MKN_KUL_DBG_FUNC_ENTER macro is used inconsistently in this file:

  • Line 36: MKN_KUL_DBG_FUNC_ENTER { (with brace)
  • Lines 63 & 78: MKN_KUL_DBG_FUNC_ENTER (without brace)

The brace-free pattern is correct and used throughout the codebase and in the parallel Unix implementation (src/nixish/https/request.cpp). Line 36 should be changed to MKN_KUL_DBG_FUNC_ENTER without the brace, and the closing brace at line 61 should be removed.

🤖 Fix all issues with AI agents
In @inc/mkn/ram/os/win/tcp.hpp:
- Line 218: Remove the trailing semicolons from the debug macro invocations so
they match other usages; specifically update occurrences of
MKN_KUL_DBG_FUNC_ENTER (and the second occurrence at the nearby invocation
around the same block) to call the macro without a trailing semicolon, ensuring
consistency with other lines (e.g., the nix implementation and usages at lines
referenced in the review).

In @src/any/http/request.cpp:
- Line 86: The range-for is copying each std::pair from "atts" into p (for
(std::pair<std::string, std::string> const p ...)), causing unnecessary
allocations; change the loop variable to bind as a const reference (e.g., use
const reference or auto const& for p) so iterations use references to elements
in "atts" instead of copying them, leaving the body (ss << p.first << p.second
...) unchanged.
🧹 Nitpick comments (2)
mkn.yaml (1)

24-24: Inconsistent preprocessor macro naming convention.

There's an inconsistency in the naming of the new preprocessor flags:

  • Line 24: -D_MKN_RAM_INCLUDE_HTTPS_ uses the _MKN_RAM_ prefix
  • Line 39: -D_KUL_INCLUDE_FCGI_ uses the _KUL_ prefix

For consistency with the broader migration to the MKN_ namespace (as seen in line 20), consider standardizing to either:

  • _MKN_RAM_INCLUDE_FCGI_, or
  • A consistent prefix across both flags
📝 Suggested fix for naming consistency
 - name: fcgi
   parent: lib
-  arg: -D_KUL_INCLUDE_FCGI_
+  arg: -D_MKN_RAM_INCLUDE_FCGI_

Also applies to: 39-39

src/any/http/server.cpp (1)

108-108: Inconsistent semicolon after debug macro.

The macro invocation on line 108 has a trailing semicolon, while all other usages in this file (line 35) and throughout the codebase omit it. This inconsistency should be corrected.

🔧 Proposed fix for consistency
-  MKN_KUL_DBG_FUNC_ENTER;
+  MKN_KUL_DBG_FUNC_ENTER
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b9d4882 and cb57937.

📒 Files selected for processing (25)
  • .github/workflows/build_nix.yml
  • .github/workflows/build_osx.yml
  • inc/mkn/ram/http.hpp
  • inc/mkn/ram/os/nixish/http.hpp
  • inc/mkn/ram/os/nixish/https.hpp
  • inc/mkn/ram/os/nixish/tcp.hpp
  • inc/mkn/ram/os/win/http.hpp
  • inc/mkn/ram/os/win/https.hpp
  • inc/mkn/ram/os/win/tcp.hpp
  • mkn.yaml
  • src/any/fcgi/server.cpp
  • src/any/http/request.cpp
  • src/any/http/server.cpp
  • src/nixish/http/multi.cpp
  • src/nixish/http/server.cpp
  • src/nixish/https/multi.cpp
  • src/nixish/https/request.cpp
  • src/nixish/https/server.cpp
  • src/win/http/multi.cpp
  • src/win/http/server.cpp
  • src/win/https/multi.cpp
  • src/win/https/request.cpp
  • src/win/https/server.cpp
  • tst/client.cpp
  • tst/server.cpp
🚧 Files skipped from review as they are similar to previous changes (14)
  • .github/workflows/build_osx.yml
  • src/nixish/https/multi.cpp
  • tst/server.cpp
  • .github/workflows/build_nix.yml
  • inc/mkn/ram/os/nixish/tcp.hpp
  • tst/client.cpp
  • inc/mkn/ram/os/nixish/https.hpp
  • src/win/http/multi.cpp
  • src/win/https/server.cpp
  • inc/mkn/ram/os/nixish/http.hpp
  • src/nixish/http/server.cpp
  • src/nixish/https/request.cpp
  • src/win/http/server.cpp
  • src/win/https/multi.cpp
🧰 Additional context used
🧬 Code graph analysis (1)
inc/mkn/ram/os/win/tcp.hpp (2)
inc/mkn/ram/os/nixish/tcp.hpp (2)
  • host (70-75)
  • host (70-70)
inc/mkn/ram/tcp.hpp (1)
  • host (50-50)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (21)
inc/mkn/ram/os/win/http.hpp (3)

2-2: LGTM!

Copyright year update is appropriate.


85-85: LGTM!

Class export macro update is consistent with the repo-wide rename.


78-78: MKN_KUL_PUBLISH macro is correctly defined in the external mkn/kul dependency and properly accessible.

The macro is included via mkn/kul/log.hpp at line 42 and is consistently used throughout the codebase in the same manner (http.hpp, https.hpp, and related Windows implementations). The change is valid.

src/nixish/http/multi.cpp (2)

1-2: Copyright year bump looks good.
No functional impact.


33-35: No action needed. The macro MKN_KUL_DBG_FUNC_ENTER is properly available from the external kul library dependency and is used successfully across 70+ locations in the codebase without build breaks. The usage in src/nixish/http/multi.cpp:34 without a trailing semicolon follows the predominant pattern and is consistent with working code.

While the codebase does show inconsistent semicolon usage with this macro (some uses have ;, others don't), this reflects existing style variation rather than a defect in the current code.

inc/mkn/ram/os/win/tcp.hpp (4)

2-2: LGTM: Copyright year updated.

Routine maintenance to keep copyright current.


52-54: LGTM: Preprocessor guard for socket bind options.

This addition provides compile-time configurability for socket options with a sensible default (SO_REUSEADDR).


74-74: LGTM: Debug macro standardization.

The replacement of KUL_DBG_FUNC_ENTER with MKN_KUL_DBG_FUNC_ENTER aligns this Windows implementation with the nixish version and represents project-wide macro standardization.

Also applies to: 80-80, 98-98, 114-114, 190-190, 305-305, 355-355


317-317: LGTM: Explicit member access.

Using this->port() improves code clarity and avoids potential ambiguity.

inc/mkn/ram/os/win/https.hpp (2)

2-2: LGTM!

Copyright year updated appropriately.


102-102: LGTM!

The MKN_KUL_PUBLISH macro on the class declaration ensures proper DLL export visibility for the class and its vtable.

mkn.yaml (3)

9-14: The directory structure has been verified and all referenced paths exist in the repository:

  • inc/
  • src/any/
  • src/nixish/
  • src/win/

The path updates in lines 9-14 are consistent with the actual repository structure.


20-20: No code changes needed for macro renaming.

The mkn.yaml configuration has been updated to use MKN_KUL_SHARED and MKN_KUL_EXPORT instead of KUL_SHARED and KUL_EXPORT. Since these macros do not appear in any source code references, the build configuration change is self-contained and requires no additional updates.


43-43: Test directory restructure from test/ to tst/ is complete.

All test file paths have been successfully updated in mkn.yaml (lines 43, 49, 55, 59, 63) and all files have been moved to the tst/ directory. The old test/ directory has been removed and no stale references remain.

src/nixish/https/server.cpp (1)

2-2: LGTM!

The copyright year update and debug macro namespace standardization are consistent with the project-wide cleanup. No functional changes detected.

Also applies to: 35-35, 107-107, 126-126, 143-143, 169-169

src/any/http/request.cpp (1)

2-2: LGTM!

The copyright year update and debug macro namespace standardization are consistent with the project-wide cleanup.

Also applies to: 34-34, 82-82, 102-102

src/any/http/server.cpp (1)

2-2: LGTM!

The copyright year update and debug macro namespace standardization are consistent with the project-wide cleanup.

Also applies to: 35-35

inc/mkn/ram/http.hpp (1)

2-2: LGTM!

The copyright year update and class export macro namespace standardization (KUL_PUBLISHMKN_KUL_PUBLISH) are consistent with the project-wide cleanup. No functional changes to the public API detected.

Also applies to: 109-109, 157-157, 209-209, 220-220, 230-230

src/win/https/request.cpp (1)

1-30: LGTM: Copyright year updated.

The copyright year has been correctly updated to 2026.

src/any/fcgi/server.cpp (2)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate for ongoing maintenance.


37-37: Macro standardization correctly applied and verified.

The replacement of KUL_DBG_FUNC_ENTER with MKN_KUL_DBG_FUNC_ENTER is consistently applied across all 6 functions (lines 37, 56, 76, 86, 111, 140). No instances of the old macro remain in the codebase, and the new macro is properly available through the include chain: server.cppfcgi.hpptcp.hppmkn/kul/dbg.hpp (external dependency).

Comment thread inc/mkn/ram/os/win/tcp.hpp
Comment thread src/any/http/request.cpp Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @inc/mkn/ram/os/nixish/http.hpp:
- Line 114: The MultiServer destructor currently only logs entry
(MKN_KUL_DBG_FUNC_ENTER) and misses cleanup; update ~MultiServer() to call
stop() and ensure both thread pools/servers are stopped and joined (mirroring
the Windows MultiServer destructor behavior), so invoke the same shutdown
sequence used by stop() (or directly stop and join the request and connection
thread pools) within ~MultiServer() to avoid resource leaks.
🧹 Nitpick comments (2)
inc/mkn/ram/os/win/tcp.hpp (2)

52-54: Consider using the new macro consistently.

The preprocessor guard __MKN_RAM_TCP_BIND_SOCKTOPTS__ is well-defined here. However, line 325 still hardcodes SO_REUSEADDR instead of using this macro. Consider updating line 325 for consistency.

♻️ Proposed refactor for consistency

On line 325, update to use the macro:

-    int rc = setsockopt(lisock, SOL_SOCKET, SO_REUSEADDR, (char*)&iso, sizeof(iso));
+    int rc = setsockopt(lisock, SOL_SOCKET, __MKN_RAM_TCP_BIND_SOCKTOPTS__, (char*)&iso, sizeof(iso));

237-237: Optional: Remove extraneous semicolon.

Line 237 has a double semicolon after the variable declaration. This is harmless but can be cleaned up.

♻️ Proposed cleanup
-    int newlisock = -1;;
+    int newlisock = -1;
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cb57937 and 7cc5d87.

📒 Files selected for processing (17)
  • inc/mkn/ram/os/nixish/http.hpp
  • inc/mkn/ram/os/nixish/https.hpp
  • inc/mkn/ram/os/nixish/tcp.hpp
  • inc/mkn/ram/os/win/tcp.hpp
  • src/any/fcgi/server.cpp
  • src/any/http/request.cpp
  • src/any/http/server.cpp
  • src/nixish/http/multi.cpp
  • src/nixish/https/multi.cpp
  • src/nixish/https/request.cpp
  • src/nixish/https/server.cpp
  • src/win/http/multi.cpp
  • src/win/https/multi.cpp
  • src/win/https/request.cpp
  • src/win/https/server.cpp
  • tst/client.cpp
  • tst/server.cpp
🚧 Files skipped from review as they are similar to previous changes (9)
  • src/nixish/http/multi.cpp
  • inc/mkn/ram/os/nixish/https.hpp
  • src/nixish/https/server.cpp
  • src/win/https/multi.cpp
  • tst/client.cpp
  • src/nixish/https/request.cpp
  • src/any/fcgi/server.cpp
  • src/nixish/https/multi.cpp
  • tst/server.cpp
🧰 Additional context used
🧬 Code graph analysis (7)
inc/mkn/ram/os/nixish/http.hpp (3)
inc/mkn/ram/os/win/http.hpp (1)
  • MultiServer (85-148)
inc/mkn/ram/os/nixish/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (76-84)
  • MKN_KUL_DBG_FUNC_ENTER (404-410)
inc/mkn/ram/os/win/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (79-92)
  • MKN_KUL_DBG_FUNC_ENTER (354-361)
src/any/http/server.cpp (2)
inc/mkn/ram/os/nixish/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (76-84)
  • MKN_KUL_DBG_FUNC_ENTER (404-410)
inc/mkn/ram/os/win/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (79-92)
  • MKN_KUL_DBG_FUNC_ENTER (354-361)
inc/mkn/ram/os/nixish/tcp.hpp (1)
inc/mkn/ram/os/win/tcp.hpp (6)
  • MKN_KUL_DBG_FUNC_ENTER (79-92)
  • MKN_KUL_DBG_FUNC_ENTER (354-361)
  • sck (113-155)
  • sck (113-113)
  • host (73-78)
  • host (73-73)
inc/mkn/ram/os/win/tcp.hpp (1)
inc/mkn/ram/os/nixish/tcp.hpp (4)
  • MKN_KUL_DBG_FUNC_ENTER (76-84)
  • MKN_KUL_DBG_FUNC_ENTER (404-410)
  • host (70-75)
  • host (70-70)
src/win/https/server.cpp (2)
inc/mkn/ram/os/nixish/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (76-84)
  • MKN_KUL_DBG_FUNC_ENTER (404-410)
inc/mkn/ram/os/win/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (79-92)
  • MKN_KUL_DBG_FUNC_ENTER (354-361)
src/any/http/request.cpp (2)
inc/mkn/ram/os/nixish/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (76-84)
  • MKN_KUL_DBG_FUNC_ENTER (404-410)
inc/mkn/ram/os/win/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (79-92)
  • MKN_KUL_DBG_FUNC_ENTER (354-361)
src/win/https/request.cpp (2)
inc/mkn/ram/os/nixish/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (76-84)
  • MKN_KUL_DBG_FUNC_ENTER (404-410)
inc/mkn/ram/os/win/tcp.hpp (2)
  • MKN_KUL_DBG_FUNC_ENTER (79-92)
  • MKN_KUL_DBG_FUNC_ENTER (354-361)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (21)
inc/mkn/ram/os/nixish/http.hpp (1)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate.

src/any/http/request.cpp (2)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate.


34-34: LGTM: Debug macro updated consistently.

The debug macro has been correctly updated from KUL_DBG_FUNC_ENTER to MKN_KUL_DBG_FUNC_ENTER with proper trailing semicolons across all three functions. This aligns with the project-wide macro renaming pattern.

Also applies to: 82-82, 102-102

src/win/https/server.cpp (2)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate.


35-35: LGTM: Debug macro updated consistently.

The debug macro has been correctly updated from KUL_DBG_FUNC_ENTER to MKN_KUL_DBG_FUNC_ENTER with proper trailing semicolons across all four methods (loop, init, stop, receive). This aligns with the project-wide macro renaming pattern.

Also applies to: 105-105, 124-124, 165-165

src/win/http/multi.cpp (2)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate.


34-34: LGTM: Debug macro updated correctly.

The debug macro has been correctly updated from KUL_DBG_FUNC_ENTER to MKN_KUL_DBG_FUNC_ENTER with a proper trailing semicolon.

src/any/http/server.cpp (2)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate.


35-35: LGTM: Debug macro updated consistently.

The debug macro has been correctly updated from KUL_DBG_FUNC_ENTER to MKN_KUL_DBG_FUNC_ENTER with proper trailing semicolons in both handleRequest and handleBuffer methods. This aligns with the project-wide macro renaming pattern.

Also applies to: 108-108

src/win/https/request.cpp (4)

2-2: LGTM - Copyright year updated.

Standard copyright year maintenance.


36-37: LGTM - Debug macro updated consistently.

The macro replacement from KUL_DBG_FUNC_ENTER to MKN_KUL_DBG_FUNC_ENTER aligns with the broader codebase refactoring. The semicolon addition matches usage patterns seen in other files.


64-64: LGTM - Debug macro updated.

Consistent macro replacement.


79-79: LGTM - Debug macro updated.

Consistent macro replacement.

inc/mkn/ram/os/win/tcp.hpp (4)

2-2: LGTM: Copyright year updated.

The copyright year update to 2026 is appropriate.


74-74: LGTM: Debug macro updates in Socket class.

The replacement of KUL_DBG_FUNC_ENTER with MKN_KUL_DBG_FUNC_ENTER is consistent with the nixish implementation and aligns with the cleanup objectives.

Also applies to: 80-80, 98-98, 114-114


190-190: LGTM: Debug macro updates in SocketServer class.

The replacement of KUL_DBG_FUNC_ENTER with MKN_KUL_DBG_FUNC_ENTER across SocketServer methods (receive, closeFDsNoCompress, validAccept, start, stop) is consistent with the cleanup objectives.

Also applies to: 218-218, 271-271, 305-305, 355-355


317-317: LGTM: Explicit member access.

The change from port() to this->port() improves code clarity by making the member function call explicit.

inc/mkn/ram/os/nixish/tcp.hpp (4)

2-2: LGTM! Copyright year updated.

The copyright year update is appropriate.


238-238: LGTM! Debug macro consistently updated in SocketServer class.

The debug macro updates in the SocketServer methods follow the same consistent pattern as the Socket class changes.

Also applies to: 270-270, 335-335, 383-383, 405-405


282-282: Good practice: debug macro intentionally commented out in hot path.

The commented-out debug macro in the loop method is appropriate, as this method is called repeatedly in the server's main loop. Avoiding debug overhead here is a sensible performance optimization.


71-71: Debug macro consistently updated in Socket class methods.

The macro renaming from KUL_DBG_FUNC_ENTER to MKN_KUL_DBG_FUNC_ENTER is complete across the codebase with no remaining old references. The new macro is consistently applied at lines 71, 77, 91, 160, 166 and other methods in the Socket class, and the macro is properly sourced from the external mkn/kul/log.hpp dependency.

Comment thread inc/mkn/ram/os/nixish/http.hpp Outdated
@PhilipDeegan PhilipDeegan merged commit 70a070e into master Jan 11, 2026
2 of 3 checks passed
@PhilipDeegan PhilipDeegan deleted the updates branch January 11, 2026 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant