ec_debug.c
上传用户:nilegod
上传日期:2007-01-08
资源大小:220k
文件大小:3k
源码类别:

网络截获/分析

开发平台:

C/C++

  1. /*
  2.     ettercap -- debug module
  3.     Copyright (C) 2001  ALoR <alor@users.sourceforge.net>, NaGA <crwm@freemail.it>
  4.     This program is free software; you can redistribute it and/or modify
  5.     it under the terms of the GNU General Public License as published by
  6.     the Free Software Foundation; either version 2 of the License, or
  7.     (at your option) any later version.
  8.     This program is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11.     GNU General Public License for more details.
  12.     You should have received a copy of the GNU General Public License
  13.     along with this program; if not, write to the Free Software
  14.     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  15. */
  16. #include "include/ec_main.h"
  17. #ifdef DEBUG
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include <string.h>
  21. #include <stdarg.h>
  22. #ifdef HAVE_SYS_UTSNAME_H
  23.    #include <sys/utsname.h>
  24.    #ifdef LINUX
  25.     #include <features.h>
  26.    #endif
  27. #endif
  28. #ifndef DEBUG_FILE
  29.    #define DEBUG_FILE "ettercap_debug.log"
  30. #endif
  31. FILE *debug_dev;
  32. void Debug_Init(void);
  33. void Debug_Close(void);
  34. void Debug_msg(char *message, ...);
  35. //----------------------------
  36. void Debug_Init(void)
  37. {
  38.    struct utsname buf;
  39.    if ((debug_dev = fopen (DEBUG_FILE, "a")) < 0)
  40.    {
  41.       printf ("Couldn't open DEBUG FILE!n");
  42.       exit (0);
  43.    }
  44.    else
  45.    {
  46.       #ifdef HAVE_SYS_UTSNAME_H
  47.          uname(&buf);
  48.          #ifdef LINUX
  49.           fprintf (debug_dev, "nn-> %s %s running on %s %s  glibc %d.%dnn", PROGRAM, VERSION, buf.sysname, buf.release, __GLIBC__, __GLIBC_MINOR__);
  50.          #else
  51.           fprintf (debug_dev, "nn-> %s %s running on %s %snn", PROGRAM, VERSION, buf.sysname, buf.release);
  52.          #endif
  53.       #endif
  54.       fprintf (debug_dev, "DEVICE OPENED FOR %s DEBUGGINGnn", PROGRAM);
  55.       fflush(debug_dev);
  56.       exit_func(Debug_Close);
  57.    }
  58. }
  59. void Debug_Close(void)
  60. {
  61.    fprintf (debug_dev, "nnDEBUGGING DEVICE FOR %s WAS CLOSEDnn", program_argv0);
  62.    fclose (debug_dev);
  63. }
  64. void Debug_msg(char *message, ...)
  65. {
  66.    va_list ap;
  67.    char debug_message[strlen(message)+2];
  68.    fprintf (debug_dev, "%st", program_argv0);
  69.    strcpy(debug_message, message);              // for backward compatibility
  70.    strcat(debug_message, "n");
  71. #ifndef HAVE_VPRINTF
  72. #errors "Must have vfprintf()."
  73. #endif
  74.    va_start(ap, message);
  75.    vfprintf(debug_dev, debug_message, ap);
  76.    va_end(ap);
  77.    fflush(debug_dev);
  78. }
  79. #endif
  80. /* EOF */