Skip to content

Conversation

@Hintay
Copy link
Member

@Hintay Hintay commented Apr 10, 2025

On Windows platform, since UNIX domain sockets and file descriptor passing mechanisms are not supported, Overseer uses Windows named pipes to implement communication between the main process and child processes.

Architecture Design

  1. Main Process:

    • Creates a unique named pipe for each listening address
    • Passes all pipe names as environment variables to the child process
    • Accepts pipe connections from the child process, and creates dedicated data transfer channels for each address
  2. Child Process:

    • Gets all pipe names and counts from environment variables
    • Connects to corresponding dedicated pipes for each address
    • Creates virtual listeners for each address, handling connections transparently
  3. Connection Flow:

    • Client connects to the main process's TCP listener
    • Main process directly forwards TCP connections to the dedicated pipe for the corresponding address
    • Child process receives data from the pipe and processes the request
    • No control information exchange is needed, data transmission is direct

@Hintay Hintay requested a review from 0xJacky April 10, 2025 17:47
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.

2 participants