Commit | Line | Data |
4536f655 |
1 | # inetd.stem |
2 | # |
3 | # Emulate an inetd daemon |
4 | # |
5 | # |
6 | # Load the consols module so we can enter commands to stem |
7 | [ |
8 | class => 'Stem::Console', |
9 | ], |
10 | |
11 | # these two cells are both SockMsg's. they are servers listening for |
12 | # connections on different ports. they have different Cell addresses (A, |
13 | # B). Both use the Stem::Cell attributes to handle cloning upon |
14 | # connection and the logical pipe to the Stem::Proc cell. Note that B |
15 | # has the pipe_args option which sends extra arguments to the other side |
16 | # of the pipe. this enables line numbering in the output of the |
17 | # proc_serv script. |
18 | |
19 | [ |
20 | class => 'Stem::SockMsg', |
21 | name => 'A', |
22 | args => [ |
23 | port => 6666, |
24 | server => 1, |
25 | cell_attr => [ |
26 | 'cloneable' => 1, |
27 | # this name maps to the cell name of the Stem::Proc below |
28 | 'pipe_addr' => 'quote', |
29 | ], |
30 | ], |
31 | ], |
32 | [ |
33 | class => 'Stem::SockMsg', |
34 | name => 'B', |
35 | args => [ |
36 | port => 6667, |
37 | server => 1, |
38 | cell_attr => [ |
39 | 'cloneable' => 1, |
40 | # this name maps to the cell name of the Stem::Proc below |
41 | 'pipe_addr' => 'quote', |
42 | 'pipe_args' => '-n', |
43 | ], |
44 | ], |
45 | ], |
46 | |
47 | # this is the Stem::Proc cell actually forks the program. its name is |
48 | # refered to by the SockMsg cells. |
49 | |
50 | [ |
51 | class => 'Stem::Proc', |
52 | name => 'quote', |
53 | args => [ |
54 | path => 'quote_serve', |
55 | use_stderr => 1, |
56 | cell_attr => [ |
57 | 'cloneable' => 1, |
58 | ], |
59 | ], |
60 | ], |