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

📄 dbipport.h

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 H
📖 第 1 页 / 共 5 页
字号:
HEADER  }  if (!defined $diff) {    $diff = run_diff('diff -u', $file, $str);  }  if (!defined $diff) {    $diff = run_diff('diff', $file, $str);  }  if (!defined $diff) {    error("Cannot generate a diff. Please install Text::Diff or use --copy.");    return;  }  print F $diff;}sub run_diff{  my($prog, $file, $str) = @_;  my $tmp = 'dppptemp';  my $suf = 'aaa';  my $diff = '';  local *F;  while (-e "$tmp.$suf") { $suf++ }  $tmp = "$tmp.$suf";  if (open F, ">$tmp") {    print F $str;    close F;    if (open F, "$prog $file $tmp |") {      while (<F>) {        s/\Q$tmp\E/$file.patched/;        $diff .= $_;      }      close F;      unlink $tmp;      return $diff;    }    unlink $tmp;  }  else {    error("Cannot open '$tmp' for writing: $!");  }  return undef;}sub can_use{  eval "use @_;";  return $@ eq '';}sub rec_depend{  my $func = shift;  my %seen;  return () unless exists $depends{$func};  grep !$seen{$_}++, map { ($_, rec_depend($_)) } @{$depends{$func}};}sub parse_version{  my $ver = shift;  if ($ver =~ /^(\d+)\.(\d+)\.(\d+)$/) {    return ($1, $2, $3);  }  elsif ($ver !~ /^\d+\.[\d_]+$/) {    die "cannot parse version '$ver'\n";  }  $ver =~ s/_//g;  $ver =~ s/$/000000/;  my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;  $v = int $v;  $s = int $s;  if ($r < 5 || ($r == 5 && $v < 6)) {    if ($s % 10) {      die "cannot parse version '$ver'\n";    }  }  return ($r, $v, $s);}sub format_version{  my $ver = shift;  $ver =~ s/$/000000/;  my($r,$v,$s) = $ver =~ /(\d+)\.(\d{3})(\d{3})/;  $v = int $v;  $s = int $s;  if ($r < 5 || ($r == 5 && $v < 6)) {    if ($s % 10) {      die "invalid version '$ver'\n";    }    $s /= 10;    $ver = sprintf "%d.%03d", $r, $v;    $s > 0 and $ver .= sprintf "_%02d", $s;    return $ver;  }  return sprintf "%d.%d.%d", $r, $v, $s;}sub info{  $opt{quiet} and return;  print @_, "\n";}sub diag{  $opt{quiet} and return;  $opt{diag} and print @_, "\n";}sub warning{  $opt{quiet} and return;  print "*** ", @_, "\n";}sub error{  print "*** ERROR: ", @_, "\n";}my %given_hints;sub hint{  $opt{quiet} and return;  $opt{hints} or return;  my $func = shift;  exists $hints{$func} or return;  $given_hints{$func}++ and return;  my $hint = $hints{$func};  $hint =~ s/^/   /mg;  print "   --- hint for $func ---\n", $hint;}sub usage{  my($usage) = do { local(@ARGV,$/)=($0); <> } =~ /^=head\d$HS+SYNOPSIS\s*^(.*?)\s*^=/ms;  my %M = ( 'I' => '*' );  $usage =~ s/^\s*perl\s+\S+/$^X $0/;  $usage =~ s/([A-Z])<([^>]+)>/$M{$1}$2$M{$1}/g;  print <<ENDUSAGE;Usage: $usageSee perldoc $0 for details.ENDUSAGE  exit 2;}__DATA__*/#ifndef _P_P_PORTABILITY_H_#define _P_P_PORTABILITY_H_#ifndef DPPP_NAMESPACE#  define DPPP_NAMESPACE DPPP_#endif#define DPPP_CAT2(x,y) CAT2(x,y)#define DPPP_(name) DPPP_CAT2(DPPP_NAMESPACE, name)#ifndef PERL_REVISION#  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))#    define PERL_PATCHLEVEL_H_IMPLICIT#    include <patchlevel.h>#  endif#  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))#    include <could_not_find_Perl_patchlevel.h>#  endif#  ifndef PERL_REVISION#    define PERL_REVISION       (5)     /* Replace: 1 */#    define PERL_VERSION        PATCHLEVEL#    define PERL_SUBVERSION     SUBVERSION     /* Replace PERL_PATCHLEVEL with PERL_VERSION */     /* Replace: 0 */#  endif#endif#define PERL_BCDVERSION ((PERL_REVISION * 0x1000000L) + (PERL_VERSION * 0x1000L) + PERL_SUBVERSION)/* It is very unlikely that anyone will try to use this with Perl 6   (or greater), but who knows. */#if PERL_REVISION != 5#  error ppport.h only works with Perl version 5#endif /* PERL_REVISION != 5 */#ifdef I_LIMITS#  include <limits.h>#endif#ifndef PERL_UCHAR_MIN#  define PERL_UCHAR_MIN ((unsigned char)0)#endif#ifndef PERL_UCHAR_MAX#  ifdef UCHAR_MAX#    define PERL_UCHAR_MAX ((unsigned char)UCHAR_MAX)#  else#    ifdef MAXUCHAR#      define PERL_UCHAR_MAX ((unsigned char)MAXUCHAR)#    else#      define PERL_UCHAR_MAX ((unsigned char)~(unsigned)0)#    endif#  endif#endif#ifndef PERL_USHORT_MIN#  define PERL_USHORT_MIN ((unsigned short)0)#endif#ifndef PERL_USHORT_MAX#  ifdef USHORT_MAX#    define PERL_USHORT_MAX ((unsigned short)USHORT_MAX)#  else#    ifdef MAXUSHORT#      define PERL_USHORT_MAX ((unsigned short)MAXUSHORT)#    else#      ifdef USHRT_MAX#        define PERL_USHORT_MAX ((unsigned short)USHRT_MAX)#      else#        define PERL_USHORT_MAX ((unsigned short)~(unsigned)0)#      endif#    endif#  endif#endif#ifndef PERL_SHORT_MAX#  ifdef SHORT_MAX#    define PERL_SHORT_MAX ((short)SHORT_MAX)#  else#    ifdef MAXSHORT    /* Often used in <values.h> */#      define PERL_SHORT_MAX ((short)MAXSHORT)#    else#      ifdef SHRT_MAX#        define PERL_SHORT_MAX ((short)SHRT_MAX)#      else#        define PERL_SHORT_MAX ((short) (PERL_USHORT_MAX >> 1))#      endif#    endif#  endif#endif#ifndef PERL_SHORT_MIN#  ifdef SHORT_MIN#    define PERL_SHORT_MIN ((short)SHORT_MIN)#  else#    ifdef MINSHORT#      define PERL_SHORT_MIN ((short)MINSHORT)#    else#      ifdef SHRT_MIN#        define PERL_SHORT_MIN ((short)SHRT_MIN)#      else#        define PERL_SHORT_MIN (-PERL_SHORT_MAX - ((3 & -1) == 3))#      endif#    endif#  endif#endif#ifndef PERL_UINT_MAX#  ifdef UINT_MAX#    define PERL_UINT_MAX ((unsigned int)UINT_MAX)#  else#    ifdef MAXUINT#      define PERL_UINT_MAX ((unsigned int)MAXUINT)#    else#      define PERL_UINT_MAX (~(unsigned int)0)#    endif#  endif#endif#ifndef PERL_UINT_MIN#  define PERL_UINT_MIN ((unsigned int)0)#endif#ifndef PERL_INT_MAX#  ifdef INT_MAX#    define PERL_INT_MAX ((int)INT_MAX)#  else#    ifdef MAXINT    /* Often used in <values.h> */#      define PERL_INT_MAX ((int)MAXINT)#    else#      define PERL_INT_MAX ((int)(PERL_UINT_MAX >> 1))#    endif#  endif#endif#ifndef PERL_INT_MIN#  ifdef INT_MIN#    define PERL_INT_MIN ((int)INT_MIN)#  else#    ifdef MININT#      define PERL_INT_MIN ((int)MININT)#    else#      define PERL_INT_MIN (-PERL_INT_MAX - ((3 & -1) == 3))#    endif#  endif#endif#ifndef PERL_ULONG_MAX#  ifdef ULONG_MAX#    define PERL_ULONG_MAX ((unsigned long)ULONG_MAX)#  else#    ifdef MAXULONG#      define PERL_ULONG_MAX ((unsigned long)MAXULONG)#    else#      define PERL_ULONG_MAX (~(unsigned long)0)#    endif#  endif#endif#ifndef PERL_ULONG_MIN#  define PERL_ULONG_MIN ((unsigned long)0L)#endif#ifndef PERL_LONG_MAX#  ifdef LONG_MAX#    define PERL_LONG_MAX ((long)LONG_MAX)#  else#    ifdef MAXLONG#      define PERL_LONG_MAX ((long)MAXLONG)#    else#      define PERL_LONG_MAX ((long) (PERL_ULONG_MAX >> 1))#    endif#  endif#endif#ifndef PERL_LONG_MIN#  ifdef LONG_MIN#    define PERL_LONG_MIN ((long)LONG_MIN)#  else#    ifdef MINLONG#      define PERL_LONG_MIN ((long)MINLONG)#    else#      define PERL_LONG_MIN (-PERL_LONG_MAX - ((3 & -1) == 3))#    endif#  endif#endif#if defined(HAS_QUAD) && (defined(convex) || defined(uts))#  ifndef PERL_UQUAD_MAX#    ifdef ULONGLONG_MAX#      define PERL_UQUAD_MAX ((unsigned long long)ULONGLONG_MAX)#    else#      ifdef MAXULONGLONG#        define PERL_UQUAD_MAX ((unsigned long long)MAXULONGLONG)#      else#        define PERL_UQUAD_MAX (~(unsigned long long)0)#      endif#    endif#  endif#  ifndef PERL_UQUAD_MIN#    define PERL_UQUAD_MIN ((unsigned long long)0L)#  endif#  ifndef PERL_QUAD_MAX#    ifdef LONGLONG_MAX#      define PERL_QUAD_MAX ((long long)LONGLONG_MAX)#    else#      ifdef MAXLONGLONG#        define PERL_QUAD_MAX ((long long)MAXLONGLONG)#      else#        define PERL_QUAD_MAX ((long long) (PERL_UQUAD_MAX >> 1))#      endif#    endif#  endif#  ifndef PERL_QUAD_MIN#    ifdef LONGLONG_MIN#      define PERL_QUAD_MIN ((long long)LONGLONG_MIN)#    else#      ifdef MINLONGLONG#        define PERL_QUAD_MIN ((long long)MINLONGLONG)#      else#        define PERL_QUAD_MIN (-PERL_QUAD_MAX - ((3 & -1) == 3))#      endif#    endif#  endif#endif/* This is based on code from 5.003 perl.h */#ifdef HAS_QUAD#  ifdef cray#ifndef IVTYPE#  define IVTYPE                         int#endif#ifndef IV_MIN#  define IV_MIN                         PERL_INT_MIN#endif#ifndef IV_MAX#  define IV_MAX                         PERL_INT_MAX#endif#ifndef UV_MIN#  define UV_MIN                         PERL_UINT_MIN#endif#ifndef UV_MAX#  define UV_MAX                         PERL_UINT_MAX#endif#    ifdef INTSIZE#ifndef IVSIZE#  define IVSIZE                         INTSIZE#endif#    endif#  else#    if defined(convex) || defined(uts)#ifndef IVTYPE#  define IVTYPE                         long long#endif#ifndef IV_MIN#  define IV_MIN                         PERL_QUAD_MIN#endif#ifndef IV_MAX#  define IV_MAX                         PERL_QUAD_MAX#endif#ifndef UV_MIN#  define UV_MIN                         PERL_UQUAD_MIN#endif#ifndef UV_MAX#  define UV_MAX                         PERL_UQUAD_MAX#endif#      ifdef LONGLONGSIZE#ifndef IVSIZE#  define IVSIZE                         LONGLONGSIZE#endif#      endif#    else#ifndef IVTYPE#  define IVTYPE                         long#endif#ifndef IV_MIN#  define IV_MIN                         PERL_LONG_MIN#endif#ifndef IV_MAX#  define IV_MAX                         PERL_LONG_MAX#endif#ifndef UV_MIN#  define UV_MIN                         PERL_ULONG_MIN#endif#ifndef UV_MAX#  define UV_MAX                         PERL_ULONG_MAX#endif#      ifdef LONGSIZE#ifndef IVSIZE#  define IVSIZE                         LONGSIZE#endif#      endif#    endif#  endif#ifndef IVSIZE#  define IVSIZE                         8#endif#ifndef PERL_QUAD_MIN#  define PERL_QUAD_MIN                  IV_MIN#endif#ifndef PERL_QUAD_MAX#  define PERL_QUAD_MAX                  IV_MAX#endif#ifndef PERL_UQUAD_MIN#  define PERL_UQUAD_MIN                 UV_MIN#endif#ifndef PERL_UQUAD_MAX#  define PERL_UQUAD_MAX                 UV_MAX#endif#else#ifndef IVTYPE#  define IVTYPE                         long#endif#ifndef IV_MIN#  define IV_MIN                         PERL_LONG_MIN#endif#ifndef IV_MAX#  define IV_MAX                         PERL_LONG_MAX#endif#ifndef UV_MIN#  define UV_MIN                         PERL_ULONG_MIN#endif#ifndef UV_MAX#  define UV_MAX                         PERL_ULONG_MAX#endif#endif#ifndef IVSIZE#  ifdef LONGSIZE#    define IVSIZE LONGSIZE#  else#    define IVSIZE 4 /* A bold guess, but the best we can make. */#  endif#endif#ifndef UVTYPE#  define UVTYPE                         unsigned IVTYPE#endif#ifndef UVSIZE#  define UVSIZE                         IVSIZE#endif#ifndef sv_setuv#  define sv_setuv(sv, uv)                  \   STMT_START {                             \       UV TeMpUv = uv;                      \       if (TeMpUv <= IV_MAX)                \           sv_setiv(sv, TeMpUv);            \       else                                 \           sv_setnv(sv, (double)TeMpUv);    \   } STMT_END#endif#ifndef newSVuv#  define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))#endif#ifndef sv_2uv#  define sv_2uv(sv)                     ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))#endif#ifndef SvUVX#  define SvUVX(sv)                      ((UV)SvIVX(sv))#endif#ifndef SvUVXx#  define SvUVXx(sv)                     SvUVX(sv)#endif#ifndef SvUV#  define SvUV(sv)                       (SvIOK(sv) ? SvUVX(sv) : sv_2uv(sv))#endif#ifndef SvUVx#  define SvUVx(sv)                      ((PL_Sv = (sv)), SvUV(PL_Sv))#endif/* Hint: sv_uv * Always use the SvUVx() macro instead of sv_uv(). */#ifndef sv_uv#  define sv_uv(sv)                      SvUVx(sv)#endif#ifndef XST_mUV#  define XST_mUV(i,v)                   (ST(i) = sv_2mortal(newSVuv(v))  )#endif#ifndef XSRETURN_UV#  define XSRETURN_UV(v)                 STMT_START { XST_mUV(0,v);  XSRETURN(1); } STMT_END#endif#ifndef PUSHu#  define PUSHu(u)                       STMT_START { sv_setuv(TARG, (UV)(u)); PUSHTARG;  } STMT_END#endif#ifndef XPUSHu#  define XPUSHu(u)                      STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END#endif#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5))/* Replace: 1 */#  define PL_DBsingle               DBsi

⌨️ 快捷键说明

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