PageRenderTime 68ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 1ms

/incron-0.5.9/doc/html/icd-main_8cpp.html

#
HTML | 503 lines | 452 code | 50 blank | 1 comment | 0 complexity | 64d948a8dee226d5631f3734dfcab79e MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  3. <title>incron: icd-main.cpp File Reference</title>
  4. <link href="doxygen.css" rel="stylesheet" type="text/css">
  5. <link href="tabs.css" rel="stylesheet" type="text/css">
  6. </head><body>
  7. <!-- Generated by Doxygen 1.5.6 -->
  8. <div class="navigation" id="top">
  9. <div class="tabs">
  10. <ul>
  11. <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
  12. <li><a href="annotated.html"><span>Classes</span></a></li>
  13. <li class="current"><a href="files.html"><span>Files</span></a></li>
  14. </ul>
  15. </div>
  16. </div>
  17. <div class="contents">
  18. <h1>icd-main.cpp File Reference</h1>inotify cron daemon main file <a href="#_details">More...</a>
  19. <p>
  20. <code>#include &lt;map&gt;</code><br>
  21. <code>#include &lt;signal.h&gt;</code><br>
  22. <code>#include &lt;wait.h&gt;</code><br>
  23. <code>#include &lt;fcntl.h&gt;</code><br>
  24. <code>#include &lt;pwd.h&gt;</code><br>
  25. <code>#include &lt;dirent.h&gt;</code><br>
  26. <code>#include &lt;syslog.h&gt;</code><br>
  27. <code>#include &lt;errno.h&gt;</code><br>
  28. <code>#include &lt;sys/poll.h&gt;</code><br>
  29. <code>#include &lt;sys/stat.h&gt;</code><br>
  30. <code>#include &lt;cstring&gt;</code><br>
  31. <code>#include &quot;<a class="el" href="inotify-cxx_8h-source.html">inotify-cxx.h</a>&quot;</code><br>
  32. <code>#include &quot;<a class="el" href="appinst_8h-source.html">appinst.h</a>&quot;</code><br>
  33. <code>#include &quot;<a class="el" href="appargs_8h-source.html">appargs.h</a>&quot;</code><br>
  34. <code>#include &quot;<a class="el" href="incron_8h-source.html">incron.h</a>&quot;</code><br>
  35. <code>#include &quot;<a class="el" href="incrontab_8h-source.html">incrontab.h</a>&quot;</code><br>
  36. <code>#include &quot;<a class="el" href="usertable_8h-source.html">usertable.h</a>&quot;</code><br>
  37. <code>#include &quot;<a class="el" href="incroncfg_8h-source.html">incroncfg.h</a>&quot;</code><br>
  38. <table border="0" cellpadding="0" cellspacing="0">
  39. <tr><td></td></tr>
  40. <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
  41. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#1b84812e74f21a986bc5aa8d33c27710">INCRON_LOG_OPTS</a>&nbsp;&nbsp;&nbsp;(LOG_CONS | LOG_PID)</td></tr>
  42. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logging options (console as fallback, log PID). <a href="#1b84812e74f21a986bc5aa8d33c27710"></a><br></td></tr>
  43. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#9c4a692d77625a6e2c89a4859ffbcaf4">INCRON_LOG_FACIL</a>&nbsp;&nbsp;&nbsp;LOG_CRON</td></tr>
  44. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logging facility (use CRON). <a href="#9c4a692d77625a6e2c89a4859ffbcaf4"></a><br></td></tr>
  45. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#78420617decce797effe9015f9871fc4">INCROND_VERSION</a>&nbsp;&nbsp;&nbsp;INCROND_NAME &quot; &quot; INCRON_VERSION</td></tr>
  46. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">incrond version string <a href="#78420617decce797effe9015f9871fc4"></a><br></td></tr>
  47. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#937d4f25f3142b6b23e87db51ce923cc">INCROND_DESCRIPTION</a></td></tr>
  48. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">incrontab description string <a href="#937d4f25f3142b6b23e87db51ce923cc"></a><br></td></tr>
  49. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#a009c75345b3ef62a1eea04fb3435031">INCROND_HELP</a></td></tr>
  50. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">incrontab help string <a href="#a009c75345b3ef62a1eea04fb3435031"></a><br></td></tr>
  51. <tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#e2b69e649a6b4428ec11bdd0a260f20d">CHILD_PIPE_BUF_LEN</a>&nbsp;&nbsp;&nbsp;32</td></tr>
  52. <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
  53. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#49430e2d0ab1d2554ee2f4719f124453">on_signal</a> (int signo)</td></tr>
  54. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Handles a signal. <a href="#49430e2d0ab1d2554ee2f4719f124453"></a><br></td></tr>
  55. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#6d41c37c974d655525f705b6c6f0716e">load_tables</a> (<a class="el" href="classEventDispatcher.html">EventDispatcher</a> *pEd) throw (InotifyException)</td></tr>
  56. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attempts to load all (user and system) incron tables. <a href="#6d41c37c974d655525f705b6c6f0716e"></a><br></td></tr>
  57. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#ad2b62ecc78cde29f5c17023b7f3dbbf">free_tables</a> (<a class="el" href="classEventDispatcher.html">EventDispatcher</a> *pEd)</td></tr>
  58. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deallocates all memory used by incron tables and unregisters them from the dispatcher. <a href="#ad2b62ecc78cde29f5c17023b7f3dbbf"></a><br></td></tr>
  59. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#290979d4c24417b39e7ae8c1274ba3e9">prepare_pipe</a> ()</td></tr>
  60. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prepares a 'dead/done child' notification pipe. <a href="#290979d4c24417b39e7ae8c1274ba3e9"></a><br></td></tr>
  61. <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#51f34ab639073cd212dad9f8ab39c01a">init_poll_array</a> (struct pollfd pfd[], int pipefd, int infd)</td></tr>
  62. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether a parameter string is a specific command. <a href="#51f34ab639073cd212dad9f8ab39c01a"></a><br></td></tr>
  63. <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
  64. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main application function. <a href="#3c04138a5bfe5d72780bb7e82a18e627"></a><br></td></tr>
  65. <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
  66. <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="usertable_8h.html#9aa598e8878c4709e214b51047e52e13">SUT_MAP</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#7b1aaf113e44f11e01cf42487aeb5359">g_ut</a></td></tr>
  67. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User name to user table mapping table. <a href="#7b1aaf113e44f11e01cf42487aeb5359"></a><br></td></tr>
  68. <tr><td class="memItemLeft" nowrap align="right" valign="top">volatile bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#1295917a6eebc00317fc77da160096fa">g_fFinish</a> = false</td></tr>
  69. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Finish program yes/no. <a href="#1295917a6eebc00317fc77da160096fa"></a><br></td></tr>
  70. <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#4d8a4d0f07d2d9d35fcad5176d85422f">g_cldPipe</a> [2]</td></tr>
  71. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pipe for notifying about dead children. <a href="#4d8a4d0f07d2d9d35fcad5176d85422f"></a><br></td></tr>
  72. <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#396871ab1873161138a2e5d330b0c9c0">g_cldPipeBuf</a> [CHILD_PIPE_BUF_LEN]</td></tr>
  73. <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="icd-main_8cpp.html#9b04c4f885c4831357ef60072756a130">g_daemon</a> = true</td></tr>
  74. <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Daemonize true/false. <a href="#9b04c4f885c4831357ef60072756a130"></a><br></td></tr>
  75. </table>
  76. <hr><a name="_details"></a><h2>Detailed Description</h2>
  77. inotify cron daemon main file
  78. <p>
  79. inotify cron system<p>
  80. Copyright (C) 2006, 2007, 2008 Lukas Jelinek, &lt;<a href="mailto:lukas@aiken.cz">lukas@aiken.cz</a>&gt;<p>
  81. This program is free software; you can use it, redistribute it and/or modify it under the terms of the GNU General Public License, version 2 (see LICENSE-GPL). <hr><h2>Define Documentation</h2>
  82. <a class="anchor" name="e2b69e649a6b4428ec11bdd0a260f20d"></a><!-- doxytag: member="icd-main.cpp::CHILD_PIPE_BUF_LEN" ref="e2b69e649a6b4428ec11bdd0a260f20d" args="" -->
  83. <div class="memitem">
  84. <div class="memproto">
  85. <table class="memname">
  86. <tr>
  87. <td class="memname">#define CHILD_PIPE_BUF_LEN&nbsp;&nbsp;&nbsp;32 </td>
  88. </tr>
  89. </table>
  90. </div>
  91. <div class="memdoc">
  92. <p>
  93. </div>
  94. </div><p>
  95. <a class="anchor" name="9c4a692d77625a6e2c89a4859ffbcaf4"></a><!-- doxytag: member="icd-main.cpp::INCRON_LOG_FACIL" ref="9c4a692d77625a6e2c89a4859ffbcaf4" args="" -->
  96. <div class="memitem">
  97. <div class="memproto">
  98. <table class="memname">
  99. <tr>
  100. <td class="memname">#define INCRON_LOG_FACIL&nbsp;&nbsp;&nbsp;LOG_CRON </td>
  101. </tr>
  102. </table>
  103. </div>
  104. <div class="memdoc">
  105. <p>
  106. Logging facility (use CRON).
  107. <p>
  108. </div>
  109. </div><p>
  110. <a class="anchor" name="1b84812e74f21a986bc5aa8d33c27710"></a><!-- doxytag: member="icd-main.cpp::INCRON_LOG_OPTS" ref="1b84812e74f21a986bc5aa8d33c27710" args="" -->
  111. <div class="memitem">
  112. <div class="memproto">
  113. <table class="memname">
  114. <tr>
  115. <td class="memname">#define INCRON_LOG_OPTS&nbsp;&nbsp;&nbsp;(LOG_CONS | LOG_PID) </td>
  116. </tr>
  117. </table>
  118. </div>
  119. <div class="memdoc">
  120. <p>
  121. Logging options (console as fallback, log PID).
  122. <p>
  123. </div>
  124. </div><p>
  125. <a class="anchor" name="937d4f25f3142b6b23e87db51ce923cc"></a><!-- doxytag: member="icd-main.cpp::INCROND_DESCRIPTION" ref="937d4f25f3142b6b23e87db51ce923cc" args="" -->
  126. <div class="memitem">
  127. <div class="memproto">
  128. <table class="memname">
  129. <tr>
  130. <td class="memname">#define INCROND_DESCRIPTION </td>
  131. </tr>
  132. </table>
  133. </div>
  134. <div class="memdoc">
  135. <p>
  136. <b>Value:</b><div class="fragment"><pre class="fragment"><span class="stringliteral">"incrond - inotify cron daemon\n"</span> \
  137. <span class="stringliteral">"(c) Lukas Jelinek, 2006, 2007, 2008"</span>
  138. </pre></div>incrontab description string
  139. <p>
  140. </div>
  141. </div><p>
  142. <a class="anchor" name="a009c75345b3ef62a1eea04fb3435031"></a><!-- doxytag: member="icd-main.cpp::INCROND_HELP" ref="a009c75345b3ef62a1eea04fb3435031" args="" -->
  143. <div class="memitem">
  144. <div class="memproto">
  145. <table class="memname">
  146. <tr>
  147. <td class="memname">#define INCROND_HELP </td>
  148. </tr>
  149. </table>
  150. </div>
  151. <div class="memdoc">
  152. <p>
  153. <b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="icd-main_8cpp.html#937d4f25f3142b6b23e87db51ce923cc" title="incrontab description string">INCROND_DESCRIPTION</a> <span class="stringliteral">"\n\n"</span> \
  154. <span class="stringliteral">"usage: incrond [&lt;options&gt;]\n\n"</span> \
  155. <span class="stringliteral">"&lt;operation&gt; may be one of the following:\n"</span> \
  156. <span class="stringliteral">"These options may be used:\n"</span> \
  157. <span class="stringliteral">" -?, --about gives short information about program\n"</span> \
  158. <span class="stringliteral">" -h, --help prints this help text\n"</span> \
  159. <span class="stringliteral">" -n, --foreground runs on foreground (no daemonizing)\n"</span> \
  160. <span class="stringliteral">" -k, --kill terminates running instance of incrond\n"</span> \
  161. <span class="stringliteral">" -f &lt;FILE&gt;, --config=&lt;FILE&gt; overrides default configuration file (requires root privileges)\n"</span> \
  162. <span class="stringliteral">" -V, --version prints program version\n\n"</span> \
  163. <span class="stringliteral">"For reporting bugs please use http://bts.aiken.cz\n"</span>
  164. </pre></div>incrontab help string
  165. <p>
  166. </div>
  167. </div><p>
  168. <a class="anchor" name="78420617decce797effe9015f9871fc4"></a><!-- doxytag: member="icd-main.cpp::INCROND_VERSION" ref="78420617decce797effe9015f9871fc4" args="" -->
  169. <div class="memitem">
  170. <div class="memproto">
  171. <table class="memname">
  172. <tr>
  173. <td class="memname">#define INCROND_VERSION&nbsp;&nbsp;&nbsp;INCROND_NAME &quot; &quot; INCRON_VERSION </td>
  174. </tr>
  175. </table>
  176. </div>
  177. <div class="memdoc">
  178. <p>
  179. incrond version string
  180. <p>
  181. </div>
  182. </div><p>
  183. <hr><h2>Function Documentation</h2>
  184. <a class="anchor" name="ad2b62ecc78cde29f5c17023b7f3dbbf"></a><!-- doxytag: member="icd-main.cpp::free_tables" ref="ad2b62ecc78cde29f5c17023b7f3dbbf" args="(EventDispatcher *pEd)" -->
  185. <div class="memitem">
  186. <div class="memproto">
  187. <table class="memname">
  188. <tr>
  189. <td class="memname">void free_tables </td>
  190. <td>(</td>
  191. <td class="paramtype"><a class="el" href="classEventDispatcher.html">EventDispatcher</a> *&nbsp;</td>
  192. <td class="paramname"> <em>pEd</em> </td>
  193. <td>&nbsp;)&nbsp;</td>
  194. <td></td>
  195. </tr>
  196. </table>
  197. </div>
  198. <div class="memdoc">
  199. <p>
  200. Deallocates all memory used by incron tables and unregisters them from the dispatcher.
  201. <p>
  202. <dl compact><dt><b>Parameters:</b></dt><dd>
  203. <table border="0" cellspacing="2" cellpadding="0">
  204. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pEd</em>&nbsp;</td><td>event dispatcher </td></tr>
  205. </table>
  206. </dl>
  207. </div>
  208. </div><p>
  209. <a class="anchor" name="51f34ab639073cd212dad9f8ab39c01a"></a><!-- doxytag: member="icd-main.cpp::init_poll_array" ref="51f34ab639073cd212dad9f8ab39c01a" args="(struct pollfd pfd[], int pipefd, int infd)" -->
  210. <div class="memitem">
  211. <div class="memproto">
  212. <table class="memname">
  213. <tr>
  214. <td class="memname">void init_poll_array </td>
  215. <td>(</td>
  216. <td class="paramtype">struct pollfd&nbsp;</td>
  217. <td class="paramname"> <em>pfd</em>[], </td>
  218. </tr>
  219. <tr>
  220. <td class="paramkey"></td>
  221. <td></td>
  222. <td class="paramtype">int&nbsp;</td>
  223. <td class="paramname"> <em>pipefd</em>, </td>
  224. </tr>
  225. <tr>
  226. <td class="paramkey"></td>
  227. <td></td>
  228. <td class="paramtype">int&nbsp;</td>
  229. <td class="paramname"> <em>infd</em></td><td>&nbsp;</td>
  230. </tr>
  231. <tr>
  232. <td></td>
  233. <td>)</td>
  234. <td></td><td></td><td></td>
  235. </tr>
  236. </table>
  237. </div>
  238. <div class="memdoc">
  239. <p>
  240. Checks whether a parameter string is a specific command.
  241. <p>
  242. The string is accepted if it equals either the short or long form of the command.<p>
  243. <dl compact><dt><b>Parameters:</b></dt><dd>
  244. <table border="0" cellspacing="2" cellpadding="0">
  245. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>checked string </td></tr>
  246. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>shortCmd</em>&nbsp;</td><td>short form of command </td></tr>
  247. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>longCmd</em>&nbsp;</td><td>long form of command </td></tr>
  248. </table>
  249. </dl>
  250. <dl class="return" compact><dt><b>Returns:</b></dt><dd>true = string accepted, false = otherwise Initializes a poll array. </dd></dl>
  251. <dl compact><dt><b>Parameters:</b></dt><dd>
  252. <table border="0" cellspacing="2" cellpadding="0">
  253. <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>pfd</em>&nbsp;</td><td>poll structure array </td></tr>
  254. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pipefd</em>&nbsp;</td><td>pipe file descriptor </td></tr>
  255. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>infd</em>&nbsp;</td><td>inotify infrastructure file descriptor </td></tr>
  256. </table>
  257. </dl>
  258. </div>
  259. </div><p>
  260. <a class="anchor" name="6d41c37c974d655525f705b6c6f0716e"></a><!-- doxytag: member="icd-main.cpp::load_tables" ref="6d41c37c974d655525f705b6c6f0716e" args="(EventDispatcher *pEd)" -->
  261. <div class="memitem">
  262. <div class="memproto">
  263. <table class="memname">
  264. <tr>
  265. <td class="memname">void load_tables </td>
  266. <td>(</td>
  267. <td class="paramtype"><a class="el" href="classEventDispatcher.html">EventDispatcher</a> *&nbsp;</td>
  268. <td class="paramname"> <em>pEd</em> </td>
  269. <td>&nbsp;)&nbsp;</td>
  270. <td> throw (<a class="el" href="classInotifyException.html">InotifyException</a>)</td>
  271. </tr>
  272. </table>
  273. </div>
  274. <div class="memdoc">
  275. <p>
  276. Attempts to load all (user and system) incron tables.
  277. <p>
  278. Loaded tables are registered for processing events.<p>
  279. <dl compact><dt><b>Parameters:</b></dt><dd>
  280. <table border="0" cellspacing="2" cellpadding="0">
  281. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>pEd</em>&nbsp;</td><td>inotify event dispatcher</td></tr>
  282. </table>
  283. </dl>
  284. <dl compact><dt><b>Exceptions:</b></dt><dd>
  285. <table border="0" cellspacing="2" cellpadding="0">
  286. <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classInotifyException.html" title="Class for inotify exceptions.">InotifyException</a></em>&nbsp;</td><td>thrown if base table directory cannot be read </td></tr>
  287. </table>
  288. </dl>
  289. </div>
  290. </div><p>
  291. <a class="anchor" name="3c04138a5bfe5d72780bb7e82a18e627"></a><!-- doxytag: member="icd-main.cpp::main" ref="3c04138a5bfe5d72780bb7e82a18e627" args="(int argc, char **argv)" -->
  292. <div class="memitem">
  293. <div class="memproto">
  294. <table class="memname">
  295. <tr>
  296. <td class="memname">int main </td>
  297. <td>(</td>
  298. <td class="paramtype">int&nbsp;</td>
  299. <td class="paramname"> <em>argc</em>, </td>
  300. </tr>
  301. <tr>
  302. <td class="paramkey"></td>
  303. <td></td>
  304. <td class="paramtype">char **&nbsp;</td>
  305. <td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
  306. </tr>
  307. <tr>
  308. <td></td>
  309. <td>)</td>
  310. <td></td><td></td><td></td>
  311. </tr>
  312. </table>
  313. </div>
  314. <div class="memdoc">
  315. <p>
  316. Main application function.
  317. <p>
  318. <dl compact><dt><b>Parameters:</b></dt><dd>
  319. <table border="0" cellspacing="2" cellpadding="0">
  320. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>argc</em>&nbsp;</td><td>argument count </td></tr>
  321. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>argv</em>&nbsp;</td><td>argument array </td></tr>
  322. </table>
  323. </dl>
  324. <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on error</dd></dl>
  325. <dl class="attention" compact><dt><b>Attention:</b></dt><dd>In daemon mode, it finishes immediately. </dd></dl>
  326. </div>
  327. </div><p>
  328. <a class="anchor" name="49430e2d0ab1d2554ee2f4719f124453"></a><!-- doxytag: member="icd-main.cpp::on_signal" ref="49430e2d0ab1d2554ee2f4719f124453" args="(int signo)" -->
  329. <div class="memitem">
  330. <div class="memproto">
  331. <table class="memname">
  332. <tr>
  333. <td class="memname">void on_signal </td>
  334. <td>(</td>
  335. <td class="paramtype">int&nbsp;</td>
  336. <td class="paramname"> <em>signo</em> </td>
  337. <td>&nbsp;)&nbsp;</td>
  338. <td></td>
  339. </tr>
  340. </table>
  341. </div>
  342. <div class="memdoc">
  343. <p>
  344. Handles a signal.
  345. <p>
  346. For SIGTERM and SIGINT it sets the program finish variable. For SIGCHLD it writes a character into the notification pipe (this is a workaround made due to disability to reliably wait for dead children).<p>
  347. <dl compact><dt><b>Parameters:</b></dt><dd>
  348. <table border="0" cellspacing="2" cellpadding="0">
  349. <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>signo</em>&nbsp;</td><td>signal number </td></tr>
  350. </table>
  351. </dl>
  352. </div>
  353. </div><p>
  354. <a class="anchor" name="290979d4c24417b39e7ae8c1274ba3e9"></a><!-- doxytag: member="icd-main.cpp::prepare_pipe" ref="290979d4c24417b39e7ae8c1274ba3e9" args="()" -->
  355. <div class="memitem">
  356. <div class="memproto">
  357. <table class="memname">
  358. <tr>
  359. <td class="memname">void prepare_pipe </td>
  360. <td>(</td>
  361. <td class="paramname"> </td>
  362. <td>&nbsp;)&nbsp;</td>
  363. <td></td>
  364. </tr>
  365. </table>
  366. </div>
  367. <div class="memdoc">
  368. <p>
  369. Prepares a 'dead/done child' notification pipe.
  370. <p>
  371. This function returns no value at all and on error it throws an exception.
  372. </div>
  373. </div><p>
  374. <hr><h2>Variable Documentation</h2>
  375. <a class="anchor" name="4d8a4d0f07d2d9d35fcad5176d85422f"></a><!-- doxytag: member="icd-main.cpp::g_cldPipe" ref="4d8a4d0f07d2d9d35fcad5176d85422f" args="[2]" -->
  376. <div class="memitem">
  377. <div class="memproto">
  378. <table class="memname">
  379. <tr>
  380. <td class="memname">int <a class="el" href="icd-main_8cpp.html#4d8a4d0f07d2d9d35fcad5176d85422f">g_cldPipe</a>[2] </td>
  381. </tr>
  382. </table>
  383. </div>
  384. <div class="memdoc">
  385. <p>
  386. Pipe for notifying about dead children.
  387. <p>
  388. </div>
  389. </div><p>
  390. <a class="anchor" name="396871ab1873161138a2e5d330b0c9c0"></a><!-- doxytag: member="icd-main.cpp::g_cldPipeBuf" ref="396871ab1873161138a2e5d330b0c9c0" args="[CHILD_PIPE_BUF_LEN]" -->
  391. <div class="memitem">
  392. <div class="memproto">
  393. <table class="memname">
  394. <tr>
  395. <td class="memname">char <a class="el" href="icd-main_8cpp.html#396871ab1873161138a2e5d330b0c9c0">g_cldPipeBuf</a>[CHILD_PIPE_BUF_LEN] </td>
  396. </tr>
  397. </table>
  398. </div>
  399. <div class="memdoc">
  400. <p>
  401. </div>
  402. </div><p>
  403. <a class="anchor" name="9b04c4f885c4831357ef60072756a130"></a><!-- doxytag: member="icd-main.cpp::g_daemon" ref="9b04c4f885c4831357ef60072756a130" args="" -->
  404. <div class="memitem">
  405. <div class="memproto">
  406. <table class="memname">
  407. <tr>
  408. <td class="memname">bool <a class="el" href="icd-main_8cpp.html#9b04c4f885c4831357ef60072756a130">g_daemon</a> = true </td>
  409. </tr>
  410. </table>
  411. </div>
  412. <div class="memdoc">
  413. <p>
  414. Daemonize true/false.
  415. <p>
  416. </div>
  417. </div><p>
  418. <a class="anchor" name="1295917a6eebc00317fc77da160096fa"></a><!-- doxytag: member="icd-main.cpp::g_fFinish" ref="1295917a6eebc00317fc77da160096fa" args="" -->
  419. <div class="memitem">
  420. <div class="memproto">
  421. <table class="memname">
  422. <tr>
  423. <td class="memname">volatile bool <a class="el" href="usertable_8cpp.html#1295917a6eebc00317fc77da160096fa">g_fFinish</a> = false </td>
  424. </tr>
  425. </table>
  426. </div>
  427. <div class="memdoc">
  428. <p>
  429. Finish program yes/no.
  430. <p>
  431. </div>
  432. </div><p>
  433. <a class="anchor" name="7b1aaf113e44f11e01cf42487aeb5359"></a><!-- doxytag: member="icd-main.cpp::g_ut" ref="7b1aaf113e44f11e01cf42487aeb5359" args="" -->
  434. <div class="memitem">
  435. <div class="memproto">
  436. <table class="memname">
  437. <tr>
  438. <td class="memname"><a class="el" href="usertable_8h.html#9aa598e8878c4709e214b51047e52e13">SUT_MAP</a> <a class="el" href="usertable_8cpp.html#7b1aaf113e44f11e01cf42487aeb5359">g_ut</a> </td>
  439. </tr>
  440. </table>
  441. </div>
  442. <div class="memdoc">
  443. <p>
  444. User name to user table mapping table.
  445. <p>
  446. </div>
  447. </div><p>
  448. </div>
  449. <hr size="1"><address style="text-align: right;"><small>Generated on Sun Jun 21 22:27:24 2009 for incron by&nbsp;
  450. <a href="http://www.doxygen.org/index.html">
  451. <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
  452. </body>
  453. </html>