c-icap(8)
๐ c-icap โ the ICAP filtering server ๐
okay so bestie, welcome to c-icap(8), part of the System Manager's Manual situation. this is the main character of ICAP servers and we're gonna get you fully caught up. no cap.
โจ NAME โจ
c-icap โ the ICAP filtering server, aka the whole point of this page ๐ซถ
๐ธ SYNOPSIS ๐ธ
c-icap [ -V ] [ -VV ] [ -f config-file ] [ -N ] [ -d debug-level ] [ -D ]
look at her. so simple. so powerful. ๐
๐ฆ DESCRIPTION ๐ฆ
c-icap is an implementation of an ICAP server. that's the vibe. it can be used with HTTP proxies that support the ICAP protocol, and ngl โ most of the commercial HTTP proxies must support the ICAP protocol, so she plays well with basically everyone. โจ
๐ OPTIONS ๐
-Vโ prints the version. quick little flex. ๐-VVโ prints build informations. yes, informations. she's thorough, she's giving receipts. ๐-fconfig-file โ specifies the configuration file, so you're not stuck with the default one.-Nโ do not run as a daemon. she stays right there with you in the foreground, holding your hand. ๐ซถ-dlevel โ specifies the debug level. dial in how much she tells you.-Dโ print debug info to stdout. straight to your terminal, no filter, we love transparency. ๐
๐ FILES ๐
/etc/c-icap/c-icap.confโ the main configuration file. the blueprint. the master doc./etc/c-icap/c-icap.magicโ in this file are defined the types of files and the groups of file types. it's literally the vibes file. ๐ฎ/var/run/c-icap.pidโ by defaultc-icapwrites its pid in this file. the path of this file can be changed using thePidFileconfiguration parameter in thec-icap.conffile./var/run/c-icap.ctlโ the commands socket. this file is used to send commands to the icap server from the command line. for information about implemented commands, look below in the "Implemented commands" sub-section ๐
๐ NOTES ๐
๐ Implemented commands
currently the following commands are implemented:
stopโ thec-icapwill shutdown. bye bestie ๐ญreconfigureโ the service will reread the config file without the need to stop and restart thec-icapserver. the services will be reinitialized. glow-up without the downtime, periodt. โจrelogโ this command causesc-icapto close and reopen the log files. this is very useful for log rotation. iconic behavior fr fr.
services and modules can define their own commands. yes, they can add their own little signature moves. ๐ซ
Examples:
to reconfigure c-icap:
echo -n "reconfigure" > /var/run/c-icap.ctl
to rotate access log:
mv /var/log/c-icap/access.log /var/log/c-icap/access.log.1
echo -n "relog" > /var/run/c-icap.ctl
๐ Lookup tables
lookup tables are simple read-only databases. ๐ a lookup table can be defined in the c-icap.conf file using the form:
type:path
where the type is the type of lookup table and path is the extra information required to use the table (e.g. file path). currently the following lookup table types are defined internally by c-icap:
fileโ simple text file databases. the database records are stored in text files in the form:
key[: value1, value2 ...]
example path definition:
file:/path/to/the/file.txt
hashโ similar tofilelookup tables butc-icapuses fast hashes for searching. speed. efficiency. she ate. ๐ฅ
example path definition:
hash:/path/to/the/file.txt
regexโ similar to thefilelookup tables but the keys are regular expressions in the form/regex/flags. for possible flags values please read the 'Regex expressions' paragraph in this manual. iykyk. ๐
example regex lookup table data:
/^[a-m].*/i: group1
/^[n-z].*/i: group2
example path definition:
regex:/path/to/the/file.txt
๐ง Regex expressions
the c-icap regex expressions have the form /regex_definition/flags where "flags" is one or more letters, each of them expressing a flag. yes, one letter = one flag. she's efficient like that. โจ
Common flags
gโ this flag forces the score multiplied by the number of regex expression matches. for example, if the expression matches 5 times and the defined score value is 10, then the final score will be 50. math is mathing. ๐ขiโ do caseless matching. she doesn't care about your capital letters. ๐mโ match-any-character operators don't match a newline, and^$operators do not match newlines within data.
PCRE flags (only if the module is compiled using the pcre library)
if the module was compiled using the pcre library, the following flags can be used:
s(PCRE_DOTALL) โ matches anything including NLx(PCRE_EXTENDED) โ ignore whitespace and#commentsA(PCRE_ANCHORED) โ force pattern anchoringD(PCRE_DOLLAR_ENDONLY) โ$not to match newline at endU(PCRE_UNGREEDY) โ invert greediness of quantifiersX(PCRE_EXTRA) โ PCRE extra featuresu(PCRE_UTF8) โ run in UTF-8 mode
โญ Runtime information
someone can retrieve runtime information using the info service. ๐ the information includes bytes received and transmitted, active services, information about service usage and many other things. the information is provided in HTML and text format.
Example:
retrieve runtime information from command line:
c-icap-client -i localhost -s "info?view=text" -req "a_url"
๐ SEE ALSO ๐
c-icap-client(8) c-icap-stretch(8) c-icap-config(8) c-icap-libicapapi-config(8) c-icap-mkbdb(8)
the whole friend group. go read them all, they're all slaying in their own lanes. ๐
๐ BUGS ๐
Many...
yes. that's it. that's the whole section. she said what she said. ๐ญ๐
๐ AUTHOR ๐
Tsantilas Christos
and that's the whole page bestie, you're officially caught up on c-icap(8) โจ this was c_icap 0.6.5 from the System Manager's Manual, dated... well, whenever she dropped, and honestly she's timeless. mwah. ๐
๐
๐ฆ where this page comes from
- epel 10: c-icap 0.6.5-1.el10_3 ยท LGPL-2.1-or-later and GPL-2.0-or-later
- epel 9: c-icap 0.6.5-1.el9 ยท LGPL-2.1-or-later and GPL-2.0-or-later
- fedora 43: c-icap 0.6.5-1.fc43 ยท LGPL-2.1-or-later and GPL-2.0-or-later
- fedora 44: c-icap 0.6.5-1.fc44 ยท LGPL-2.1-or-later and GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms