Juha
Heinanen
jh@song.fi
2002
2003
Juha Heinanen
$Revision: 1.3 $
$Date: 2005/08/24 22:26:18 $

# Domain Module

## Overview

Domain module implements checks that based on domain table determine if a host part of an URI is "local" or not. A "local" domain is one that the proxy is responsible for.

Domain module operates in caching or non-caching mode depending on value of module parameter `db_mode`. In caching mode domain module reads the contents of domain table into cache memory when the module is loaded. After that domain table is re-read only when module is given domain_reload fifo command. Any changes in domain table must thus be followed by domain_reload command in order to reflect them in module behavior. In non-caching mode domain module always queries domain table in the database.

Caching is implemented using a hash table. The size of the hash table is given by HASH_SIZE constant defined in domain_mod.h. Its "factory default" value is 128.

## Dependencies

The module depends on the following modules (in the other words the listed modules must be loaded before this module):

- database - Any database module

## Known Limitations

There is an unlikely race condition on domain list update. If a process uses a table, which is reloaded at the same time twice through FIFO, the second reload will delete the original table still in use by the process.