12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- HOWITWORKS - Monkey >= 0.5.x
- ============================
- Date : 20 Sept 2002
- Last Update : Initial version
- Note: I don't write or speak english very well :P .
- Here i hope to explain how monkey works. This isn't a set design, this
- design has been changing with time and will continue to change :) .
- Sections
- --------
- 1) Starting and setting
- 2) Accepting and processing new connections
- 3) comming soon...
- 1) Starting and setting
- -----------------------
- In this section i will explain what monkey does at the beginning.
- Starting monkey ->|
- |
- +----------------------+ <- file: monkey.c
- + Reading options + func: main();
- + from command line +
- +----------------------+
- |
- +----------------------+ <- file: monkey.c, config.c
- + Reading config files + func: main();
- +----------------------+ |->Monkey_Read_Config();
- |
- |
- +----------------------+ <- file: monkey.c, signals.c
- + Starting signals + func: main();
- +----------------------+ |->Init_Signals();
- |
- |
- +----------------------+ <- file: monkey.c
- + Setting socket + func: main();
- +----------------------+
- |
- +----------------------+ <- file: monkey.c
- + Setting threads + func: main();
- + properties +
- +----------------------+
- |
- +----------------------+ <- file: monkey.c, utils.c
- + Changing mode to + func: main();
- + daemon if it was + |->set_daemon();
- + specicated +
- +----------------------+
- |
- +----------------------+ <- file: monkey.c, logfile.c
- + Register PID + func: main();
- + of process + |->add_log_pid();
- +----------------------+
- |
- +----------------------+ <- file: monkey.c
- + Starting main loop + func: main();
- + and waiting for +
- + new connections +
- +----------------------+
- 2) Accepting and processing new connections
- ------------------------------------------
- When a new connection comes, monkey follows the next steps.
- +----------------------+ <- file: monkey.c, deny.c
- + Checking IP from + func: main();
- + remote machine to + |->Deny_Check();
- + know if this is +
- + not blocked in our +
- + monkey.deny file +
- +----------------------+
- |
- +----------------------+ <- file: monkeu.c
- + Checking how many + func: main();
- + request are being +
- + processed by monkey +
- +----------------------+
- |
- +----------------------+ <- file: monkey.c
- + Passing connection + func: main();
- + to a new thread + |->thread_init();
- +----------------------+
- |
- +----------------------+ <- file: monkey.c, request.c
- + Reciving request + func: thread_init();
- + and processing + |->Request_Main();
- +----------------------+
|