blautenb    2003/05/18 05:01:13

  Modified:    c/src/tools/checksig InteropResolver.cpp InteropResolver.hpp
  Log:
  update to find files under linux
  
  Revision  Changes    Path
  1.2       +25 -7     xml-security/c/src/tools/checksig/InteropResolver.cpp
  
  Index: InteropResolver.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/tools/checksig/InteropResolver.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InteropResolver.cpp       18 May 2003 11:02:42 -0000      1.1
  +++ InteropResolver.cpp       18 May 2003 12:01:13 -0000      1.2
  @@ -99,6 +99,10 @@
        m_searchStarted = false;
        m_searchFinished = false;
   
  +#if !defined(_WIN32)
  +     m_fcount = 0;
  +#endif
  +
   }
   
   
  @@ -146,16 +150,29 @@
                // Reverse the "backslash" characters
   
                reverseSlash(path);
  -#endif
   
                m_handle = _findfirst(path.rawCharBuffer(), &m_finder);
                res = m_handle;
  +#else
  +             if (glob(path.rawCharBuffer(), 0, NULL, &m_globbuf) != 0)
  +                     res = -1;
  +             else
  +                     res = 0;
  +#endif
  +
                m_searchStarted = true;
   
        }
        else {
   
  +#if defined(_WIN32)
                res = _findnext(m_handle, &m_finder);
  +#else
  +             if (m_fcount == m_globbuf.gl_pathc)
  +                     res = -1;
  +             else
  +                     res = 0;
  +#endif
   
        }
   
  @@ -180,18 +197,19 @@
   
        // Create the filename
        safeBuffer fname;
  +#if defined(_WIN32)
        fname.sbTranscodeIn(mp_baseURI);
        fname.sbStrcatIn("/certs/");
        fname.sbStrcatIn(m_finder.name);
  -
  -#if defined(_WIN32)
        reverseSlash(fname);
  +#else
  +     fname.sbStrcpyIn(m_globbuf.gl_pathv[m_fcount++]);
   #endif
   
        if (BIO_read_filename(bioCert, fname.rawCharBuffer()) <= 0) {
   
  -             std::cerr << "Error opening certificate file\n\n";
  -             exit (1);
  +             std::cerr << "Error opening certificate file\n" << 
fname.rawCharBuffer() << std::endl;
  +             return NULL;
   
        }
   
  @@ -369,7 +387,7 @@
                                int xlen = b64.decode((unsigned char *) cski, 
clen, xski, clen);
                                xlen += b64.decodeFinish(&xski[xlen], clen - 
xlen);
   
  -                             if (xlen != NULL) {
  +                             if (xlen != 0) {
   
                                        // Have a buffer with a number in it
                                        STACK_OF(X509_EXTENSION) *exts;
  
  
  
  1.2       +12 -3     xml-security/c/src/tools/checksig/InteropResolver.hpp
  
  Index: InteropResolver.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/tools/checksig/InteropResolver.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InteropResolver.hpp       18 May 2003 11:02:42 -0000      1.1
  +++ InteropResolver.hpp       18 May 2003 12:01:13 -0000      1.2
  @@ -74,7 +74,11 @@
   #include <xsec/framework/XSECDefs.hpp>
   #include <xsec/enc/XSECKeyInfoResolver.hpp>
   
  -#include <io.h>
  +#if defined (_WIN32)
  +#    include <io.h>
  +#else
  +#    include <glob.h>
  +#endif
   
   #include <openssl/x509.h>
   
  @@ -100,9 +104,14 @@
        XMLCh *                 mp_baseURI;
        bool                    m_searchStarted;
        bool                    m_searchFinished;
  +
  +#if defined (_WIN32)
        _finddata_t             m_finder;
        long                    m_handle;
  -
  +#else
  +    glob_t          m_globbuf;
  +     unsigned int    m_fcount;
  +#endif
   
   };
   
  
  
  

Reply via email to