Changeset 86 for trunk/src


Ignore:
Timestamp:
Jan 20, 2007, 11:04:59 PM (18 years ago)
Author:
rainer
Message:

More thorough fix for ticket #47, and corresponding regression test.

Location:
trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/samhain.c

    r84 r86  
    14431443
    14441444#if (defined(WITH_GPG) || defined(WITH_PGP))
    1445   /* do nothing -- we exit earlier if error */
     1445  /* log startup */
     1446  sh_gpg_log_startup ();
    14461447#else
    14471448  sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_1H,
     
    14651466    {
    14661467#if (defined(WITH_GPG) || defined(WITH_PGP))
    1467       /* do nothing -- we exit earlier if error */
     1468      /* log startup */
     1469      sh_gpg_log_startup ();
    14681470#else
    14691471      sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_2H,
     
    14761478    {
    14771479#if (defined(WITH_GPG) || defined(WITH_PGP))
    1478       /* do nothing -- we exit earlier if error */
     1480      /* log startup */
     1481      sh_gpg_log_startup ();
    14791482#else
    14801483      sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_1H,
  • trunk/src/sh_error.c

    r65 r86  
    110110int  OnlyStderr    = S_TRUE;
    111111
     112/* --- Enable facilities not safe for closeall(). ---
     113 */
     114int  enableUnsafe  = S_FALSE;
    112115
    113116/*********************************************
     
    145148{
    146149  OnlyStderr    = flag;
     150  return;
     151}
     152
     153void sh_error_enable_unsafe (int flag)
     154{
     155  enableUnsafe    = flag;
    147156  return;
    148157}
     
    10261035  /* Full logging enabled.
    10271036   */
    1028   if (OnlyStderr == BAD)  /* full error logging enabled */
     1037  if (OnlyStderr == S_FALSE)  /* full error logging enabled */
    10291038    {
    10301039
     
    10831092          class != AUD)
    10841093        {
    1085           if (database_block == 0)
     1094          if (database_block == 0 && enableUnsafe == S_TRUE)
    10861095            {
    10871096              /* truncates; query_max is 16k
     
    12091218          )
    12101219        {
    1211           if (prelude_block == 0)
     1220          if (prelude_block == 0 && enableUnsafe == S_TRUE)
    12121221            {
    12131222              /* will truncate to 998 bytes
  • trunk/src/sh_gpg.c

    r34 r86  
    115115
    116116#ifdef GPG_HASH
     117
    117118static int sh_gpg_checksum (SL_TICKET checkfd, int flag)
    118119{
     
    202203}
    203204#endif
     205
     206struct startup_info {
     207  long   line;
     208  char * program;
     209  long   uid;
     210  char * path;
     211  char * key_uid;
     212  char * key_id;
     213};
     214
     215static struct startup_info startInfo = { 0, NULL, 0, NULL, NULL, NULL };
     216
     217void sh_gpg_log_startup ()
     218{
     219  if (startInfo.program != NULL)
     220    {
     221      sh_error_handle ((-1), FIL__, startInfo.line, 0, MSG_START_GH,
     222                       startInfo.program, startInfo.uid,
     223                       startInfo.path,
     224                       startInfo.key_uid, startInfo.key_id);
     225    }
     226  return;
     227}
     228
     229static void sh_gpg_fill_startup (long line, char * program, long uid, char * path,
     230                                 char * key_uid, char * key_id)
     231{
     232  startInfo.line    = line;
     233  startInfo.program = sh_util_strdup(program);
     234  startInfo.uid     = uid;
     235  startInfo.path    = sh_util_strdup(path);
     236  startInfo.key_uid = sh_util_strdup(key_uid);
     237  startInfo.key_id  = sh_util_strdup(key_id);
     238  return;
     239}
    204240
    205241static FILE * sh_gpg_popen (sh_gpg_popen_t  *source, int fd,
     
    9681004            {
    9691005              tmp  = sh_util_safe_name(gp.conf_id);
    970               sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_GH,
     1006              sh_gpg_fill_startup (
     1007                                   /* sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_GH, */
    9711008                               sh.prg_name, sh.real.uid,
    9721009                               (sh.flag.hidefile == S_TRUE) ?
     
    9951032        {
    9961033          tmp = sh_util_safe_name(gp.conf_id);
    997           sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_GH,
     1034          sh_gpg_fill_startup (__LINE__,
     1035          /* sh_error_handle ((-1), FIL__, __LINE__, 0, MSG_START_GH, */
    9981036                           sh.prg_name, sh.real.uid,
    9991037                           (sh.flag.hidefile == S_TRUE) ?
  • trunk/src/sh_prelude.c

    r40 r86  
    967967}
    968968
    969 
     969/* Allow initialization of prelude; to be called
     970 * after forking the daemon. Delays heartbeat
     971 * start after config read until it is safe.
     972 */
    970973void sh_prelude_reset(void)
    971974{
  • trunk/src/sh_unix.c

    r84 r86  
    18801880        }
    18811881
     1882      sh_error_enable_unsafe (S_TRUE);
    18821883#if defined(HAVE_LIBPRELUDE)
    18831884      sh_prelude_reset ();
     
    19131914    {
    19141915      sh_unix_closeall(3, -1);  /* if not daemon */
     1916      sh_error_enable_unsafe (S_TRUE);
    19151917#if defined(HAVE_LIBPRELUDE)
    19161918      sh_prelude_reset ();
Note: See TracChangeset for help on using the changeset viewer.