コード例 #1
0
ファイル: cdfvalidator64.c プロジェクト: vtsuperdarn/RSTLite
CDFstatus ValidateCDR (vFILE *fp, OFF_T offset, Logical debug)
{
    Int32 actualEncoding;
    /*
      char copyRight[CDF_COPYRIGHT_LEN+1];
    */
    int i;
    CDFstatus status;

    if (debug)
#if defined(win32)
        printf("  Checking CDR...@%I64d\n", offset);
#else
        printf("  Checking CDR...@%lld\n", offset);
#endif
    status = ReadCDR64 (fp, offset,
                        CDR_RECORD, &CDR, NULL,
                        CDR_NULL);
    if (status != CDF_OK) return status;
    if (CDR.RecordType != CDR_)
        return QuitCDF ("CDF: record type is invalid ",
                        4, 1, &(CDR.RecordType), 0, debug);
    if (CDR.RecordSize < CDR_BASE_SIZE64 ||
            CDR.RecordSize > CDR_MAX_SIZE64)
        return QuitCDF ("CDF: record size is invalid ",
                        8, 1, &(CDR.RecordSize), 0, debug);
    if (CDR.GDRoffset < 1)
        return QuitCDF ("CDF: offset to GDR is invalid ",
                        8, 1, &(CDR.GDRoffset), 0, debug);
    if (CDR.Version != 3)
        return QuitCDF ("CDF: version number is invalid ",
                        4, 1, &(CDR.Version), 0, debug);
    if (!ValidEncoding(CDR.Encoding,&actualEncoding))
        return QuitCDF ("CDF: encoding is invalid ",
                        4, 1, &(CDR.Encoding), 0, debug);
    /*
      for (i = 0; i < strlen(copyRight); ++i)
        if (!Printable(copyRight[i]))
          return QuitCDF ("CDF: copyright is invalid ", 0, 1, copyRight, 0, debug);
    */
    return CDF_OK;
}
コード例 #2
0
ファイル: cdfvalidator64.c プロジェクト: rstoneback/pysatCDF
static CDFstatus ValidateCDR (vFILE *fp, OFF_T offset, Logical debug)
{
    Int32 actualEncoding;
    int i;
    CDFstatus status;

    if (debug)
#if defined(win32) || defined(__MINGW32__)
        printf("  Checking CDR...@%I64d\n", offset);
#else
        printf("  Checking CDR...@%lld\n", offset);
#endif
    status = ReadCDR64 (fp, offset,
                        CDR_RECORD, &CDR, NULL,
                        CDR_NULL);
    if (status != CDF_OK) return status;
    if (CDR.RecordType != CDR_)
        return QuitCDF ("CDF: record type is invalid ", offset,
                        4, 1, &(CDR.RecordType), 0, debug);
    if (CDR.RecordSize < CDR_BASE_SIZE64 ||
            CDR.RecordSize > CDR_MAX_SIZE64)
        return QuitCDF ("CDF: record size is invalid ", offset,
                        8, 1, &(CDR.RecordSize), 0, debug);
    if (CDR.GDRoffset < 1)
        return QuitCDF ("CDF: offset to GDR is invalid ", offset,
                        8, 1, &(CDR.GDRoffset), 0, debug);
    if (CDR.Version != 3)
        return QuitCDF ("CDF: version number is invalid ", offset,
                        4, 1, &(CDR.Version), 0, debug);
    if (CDR.Release < 0)
        return QuitCDF ("CDF: release number is invalid ", offset,
                        4, 1, &(CDR.Release), 0, debug);
    if (CDR.Increment < 0)
        return QuitCDF ("CDF: increment number is invalid ", offset,
                        4, 1, &(CDR.Increment), 0, debug);
    if (!ValidEncoding(CDR.Encoding,&actualEncoding))
        return QuitCDF ("CDF: encoding is invalid ", offset,
                        4, 1, &(CDR.Encoding), 0, debug);
    return CDF_OK;
}