/***************************************************************************** * Copyright 2005 Alt-N Technologies, Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * This code incorporates intellectual property owned by Yahoo! and licensed * pursuant to the Yahoo! DomainKeys Patent License Agreement. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Changes done by ¢feh@fehcom.de obeying the above license * *****************************************************************************/ #ifndef DKIMBASE_H #define DKIMBASE_H #include #include #define BUFFER_ALLOC_INCREMENT 256 class CDKIMBase { public: CDKIMBase(); ~CDKIMBase(); int Init(void); int Process(const char *szBuffer, int nBufLength, bool bEOF); int ProcessFinal(void); int Alloc(char *& szBuffer, int nRequiredSize); int ReAlloc(char *& szBuffer, int& nBufferLength, int nRequiredSize); void Free(char *szBuffer); static void RemoveSWSP(char *szBuffer); static void RemoveSWSP(char *pBuffer, int& nBufLength); static void RemoveSWSP(std::string& sBuffer); static void CompressSWSP(char *pBuffer, int& nBufLength); static void CompressSWSP(std::string& sBuffer); static std::string RelaxHeader(const std::string& sHeader); virtual int ProcessHeaders(void); virtual int ProcessBody(char *szBuffer, int nBufLength, bool bEOF); protected: char *m_From; char *m_Sender; char *m_hTag; int m_hTagSize; int m_hTagPos; char *m_Line; int m_LineSize; int m_LinePos; bool m_InHeaders; std::list HeaderList; }; #endif // DKIMBASE_H