⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logfile.c

📁 开源备份软件源码 AMANDA, the Advanced Maryland Automatic Network Disk Archiver, is a backup system that a
💻 C
📖 第 1 页 / 共 5 页
字号:
#include <glib.h>#include "logfile.h"#include "find.h"#include "diskfile.h" /* for the gross hack, below */SWIGINTERNINLINE SV *SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value){      SV *obj = sv_newmortal();  sv_setiv(obj, (IV) value);  return obj;}SWIGINTERNINLINE SV *SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value){      return SWIG_From_long  SWIG_PERL_CALL_ARGS_1(value);}/* open_ and close_logfile are both simple wrappers around fopen/fclose. */typedef FILE loghandle;loghandle *open_logfile(char *filename) {    return fopen(filename, "r");}SWIGINTERN swig_type_info*SWIG_pchar_descriptor(void){  static int init = 0;  static swig_type_info* info = 0;  if (!init) {    info = SWIG_TypeQuery("_p_char");    init = 1;  }  return info;}SWIGINTERN intSWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc){  if (SvPOK(obj)) {    STRLEN len = 0;    char *cstr = SvPV(obj, len);     size_t size = len + 1;    if (cptr)  {      if (alloc) {	if (*alloc == SWIG_NEWOBJ) {	  *cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));	} else {	  *cptr = cstr;	  *alloc = SWIG_OLDOBJ;	}      }    }    if (psize) *psize = size;    return SWIG_OK;  } else {    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();    if (pchar_descriptor) {      char* vptr = 0;       if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {	if (cptr) *cptr = vptr;	if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;	if (alloc) *alloc = SWIG_OLDOBJ;	return SWIG_OK;      }    }  }  return SWIG_TypeError;}void close_logfile(loghandle *logfile) {    if (logfile) fclose(logfile);}typedef int LOGLINE_RETURN;SWIGINTERN void delete_find_result_t(find_result_t *self){	    find_result_t *selfp = self;	    free_find_result(&selfp);	}SWIGINTERNINLINE SV *SWIG_FromCharPtrAndSize(const char* carray, size_t size){  SV *obj = sv_newmortal();  if (carray) {    if (size && (carray[size - 1] == 0)) {      sv_setpv(obj, carray);    } else {      char *tmp = (char *)malloc((size + 1)*sizeof(char));      memcpy(tmp, carray, size);      tmp[size] = 0;      sv_setpv(obj, tmp);      free((char*)tmp);    }  } else {    sv_setsv(obj, &PL_sv_undef);  }  return obj;}SWIGINTERNINLINE SV * SWIG_FromCharPtr(const char *cptr){   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));}find_result_t *search_logfile_wrap(char *label, char *datestamp, 				   char *logfile, int add_missing_disks) {    find_result_t *rv = NULL;    /* We use a static variable to collect any unrecognized disks */    static disklist_t unrecognized_disks = { NULL, NULL };    search_logfile(&rv, label, datestamp, logfile, 	add_missing_disks? &unrecognized_disks : NULL);    return rv;}#include <limits.h>#ifndef LLONG_MIN# define LLONG_MIN	LONG_LONG_MIN#endif#ifndef LLONG_MAX# define LLONG_MAX	LONG_LONG_MAX#endif#ifndef ULLONG_MAX# define ULLONG_MAX	ULONG_LONG_MAX#endifSWIGINTERN intSWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val){  if (SvNIOK(obj)) {    if (val) *val = SvNV(obj);    return SWIG_OK;  } else if (SvIOK(obj)) {    if (val) *val = (double) SvIV(obj);    return SWIG_AddCast(SWIG_OK);  } else {    const char *nptr = SvPV(obj, PL_na);    if (nptr) {      char *endptr;      double v = strtod(nptr, &endptr);      if (errno == ERANGE) {	errno = 0;	return SWIG_OverflowError;      } else {	if (*endptr == '\0') {	  if (val) *val = v;	  return SWIG_Str2NumCast(SWIG_OK);	}      }    }  }  return SWIG_TypeError;}#include <float.h>#include <math.h>SWIGINTERNINLINE intSWIG_CanCastAsInteger(double *d, double min, double max) {  double x = *d;  if ((min <= x && x <= max)) {   double fx = floor(x);   double cx = ceil(x);   double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */   if ((errno == EDOM) || (errno == ERANGE)) {     errno = 0;   } else {     double summ, reps, diff;     if (rd < x) {       diff = x - rd;     } else if (rd > x) {       diff = rd - x;     } else {       return 1;     }     summ = rd + x;     reps = diff/summ;     if (reps < 8*DBL_EPSILON) {       *d = rd;       return 1;     }   }  }  return 0;}SWIGINTERN intSWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val){  if (SvIOK(obj)) {    if (val) *val = SvIV(obj);    return SWIG_OK;  } else {    int dispatch = 0;    const char *nptr = SvPV(obj, PL_na);    if (nptr) {      char *endptr;      long v = strtol(nptr, &endptr,0);      if (errno == ERANGE) {	errno = 0;	return SWIG_OverflowError;      } else {	if (*endptr == '\0') {	  if (val) *val = v;	  return SWIG_Str2NumCast(SWIG_OK);	}      }    }    if (!dispatch) {      double d;      int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {	if (val) *val = (long)(d);	return res;      }    }  }  return SWIG_TypeError;}SWIGINTERN intSWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val){  long v;  int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);  if (SWIG_IsOK(res)) {    if ((v < INT_MIN || v > INT_MAX)) {      return SWIG_OverflowError;    } else {      if (val) *val = (int)(v);    }  }    return res;}#ifdef PERL_OBJECT#define MAGIC_CLASS _wrap_Amanda::Logfile_var::class _wrap_Amanda::Logfile_var : public CPerlObj {public:#else#define MAGIC_CLASS#endifSWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {    MAGIC_PPERL    croak("Value is read-only.");    return 0;}#ifdef PERL_OBJECT};#endif#ifdef __cplusplusextern "C" {#endifXS(_wrap_open_logfile) {  {    char *arg1 = (char *) 0 ;    loghandle *result = 0 ;    int res1 ;    char *buf1 = 0 ;    int alloc1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: open_logfile(filename);");    }    res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "open_logfile" "', argument " "1"" of type '" "char *""'");    }    arg1 = (char *)(buf1);    result = (loghandle *)open_logfile(arg1);    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FILE, 0 | 0); argvi++ ;    if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);    XSRETURN(argvi);  fail:    if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);    SWIG_croak_null();  }}XS(_wrap_close_logfile) {  {    loghandle *arg1 = (loghandle *) 0 ;    void *argp1 = 0 ;    int res1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: close_logfile(logfile);");    }    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "close_logfile" "', argument " "1"" of type '" "loghandle *""'");     }    arg1 = (loghandle *)(argp1);    close_logfile(arg1);            XSRETURN(argvi);  fail:        SWIG_croak_null();  }}XS(_wrap_get_logline) {  {    FILE *arg1 = (FILE *) 0 ;    LOGLINE_RETURN result;    void *argp1 = 0 ;    int res1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: get_logline(logfile);");    }    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_logline" "', argument " "1"" of type '" "FILE *""'");     }    arg1 = (FILE *)(argp1);    result = get_logline(arg1);    {      if (result != 0) {        EXTEND(SP, 3);        ST(argvi) = sv_2mortal(newSViv(curlog));        argvi++;        ST(argvi) = sv_2mortal(newSViv(curprog));        argvi++;        ST(argvi) = sv_2mortal(newSVpv(curstr, 0));        argvi++;      }      /* otherwise (end of logfile) return an empty list */    }        XSRETURN(argvi);  fail:        SWIG_croak_null();  }}XS(_wrap_delete_find_result_t) {  {    find_result_t *arg1 = (find_result_t *) 0 ;    void *argp1 = 0 ;    int res1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: delete_find_result_t(self);");    }    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, SWIG_POINTER_DISOWN |  0 );    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_find_result_t" "', argument " "1"" of type '" "find_result_t *""'");     }    arg1 = (find_result_t *)(argp1);    delete_find_result_t(arg1);                XSRETURN(argvi);  fail:        SWIG_croak_null();  }}XS(_wrap_find_result_t_timestamp_get) {  {    find_result_t *arg1 = (find_result_t *) 0 ;    char *result = 0 ;    void *argp1 = 0 ;    int res1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: find_result_t_timestamp_get(self);");    }    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_timestamp_get" "', argument " "1"" of type '" "find_result_t *""'");     }    arg1 = (find_result_t *)(argp1);    result = (char *) ((arg1)->timestamp);    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;        XSRETURN(argvi);  fail:        SWIG_croak_null();  }}XS(_wrap_find_result_t_hostname_get) {  {    find_result_t *arg1 = (find_result_t *) 0 ;    char *result = 0 ;    void *argp1 = 0 ;    int res1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: find_result_t_hostname_get(self);");    }    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_hostname_get" "', argument " "1"" of type '" "find_result_t *""'");     }    arg1 = (find_result_t *)(argp1);    result = (char *) ((arg1)->hostname);    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;        XSRETURN(argvi);  fail:        SWIG_croak_null();  }}XS(_wrap_find_result_t_diskname_get) {  {    find_result_t *arg1 = (find_result_t *) 0 ;    char *result = 0 ;    void *argp1 = 0 ;    int res1 = 0 ;    int argvi = 0;    dXSARGS;        if ((items < 1) || (items > 1)) {      SWIG_croak("Usage: find_result_t_diskname_get(self);");    }    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );    if (!SWIG_IsOK(res1)) {      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_diskname_get" "', argument " "1"" of type '" "find_result_t *""'");     }    arg1 = (find_result_t *)(argp1);    result = (char *) ((arg1)->diskname);    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;        XSRETURN(argvi);  fail:        SWIG_croak_null();  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -