blob: 83e116916c7fb38cba9528c731349f401cdb6829 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[Introduction]
proc_proxy is a proxy for the proc server. It intercepts the PROCESS requests that should be sent from a user to his proc server, so it provides a possibility for us to tamper the reply or even create the reply at our will.
The current implementation of proc_proxy is able to help the pfinet translator open the virtual interface created by eth-multiplexer.
[Usage]
Usage: proc_proxy [OPTION...] command line
Hurd proc proxy
-M, --master-device=FILE Get the pseudo master device from a translator
-?, --help Give this help list
--usage Give a short usage message
Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.
[Internal]
proc_proxy implements the server-side functions in process.defs. In the beginning, proc_proxy forks a new process, set its child's process server to itself, and run the command in the child process. Therefore, proc_proxy can get all PROCESS reqeusts from its child.
proc_proxy works in the same way as the proc server to distinguish different processes with their ports. proc_proxy creates a port for each process. When a request comes, reqport_find() is called on the port to find the corresponding process. The port created for a new task is in server-side proc_task2proc. When a proc_task2proc request for a new task comes, a new port is created for the task and the send right of the port is returned.
In order to help pfinet open the virtual interface created by eth-multiplexer, proc_proxy returns the port to eth-multiplexer as a master device port to pfinet.
|