src/cgi/ncbicgi.cpp File Reference

#include <ncbi_pch.hpp>
#include <corelib/ncbienv.hpp>
#include <corelib/ncbitime.hpp>
#include <corelib/ncbi_param.hpp>
#include <corelib/ncbiapp.hpp>
#include <corelib/ncbi_safe_static.hpp>
#include <corelib/request_ctx.hpp>
#include <corelib/ncbi_strings.h>
#include <cgi/cgi_exception.hpp>
#include <cgi/ncbicgi.hpp>
#include <cgi/cgi_serial.hpp>
#include <cgi/cgi_session.hpp>
#include <cgi/error_codes.hpp>
#include <cgi/impl/cgi_entry_reader.hpp>
#include <util/checksum.hpp>
#include <algorithm>
#include <stdio.h>
#include <time.h>

Include dependency graph for ncbicgi.cpp:

Go to the source code of this file.

Classes

class  CTrackingEnvHolder
class  CCgiEntries_Parser

Defines

#define STDIN_FILENO   0
#define NCBI_USE_ERRCODE_X   Cgi_API

Functions

bool s_IsZeroTime (const tm &date)
static bool s_CookieLess (const string &name1, const string &domain1, const string &path1, const string &name2, const string &domain2, const string &path2)
void s_AddEntry (TCgiEntries &entries, const string &name, const string &value, unsigned int position, const string &filename=kEmptyStr, const string &type=kEmptyStr)
 NCBI_PARAM_ENUM_ARRAY (CCgiCookies::EOnBadCookie, CGI, On_Bad_Cookie)
 NCBI_PARAM_ENUM_DEF_EX (CCgiCookies::EOnBadCookie, CGI, On_Bad_Cookie, CCgiCookies::eOnBadCookie_SkipAndError, eParam_NoThread, CGI_ON_BAD_COOKIE)
typedef NCBI_PARAM_TYPE (CGI, On_Bad_Cookie) TOnBadCookieParam
 NCBI_PARAM_DECL (string, CGI, LOG_EXCLUDE_ARGS)
 NCBI_PARAM_DEF_EX (string, CGI, LOG_EXCLUDE_ARGS, kEmptyStr, eParam_NoThread, CGI_LOG_EXCLUDE_ARGS)
typedef NCBI_PARAM_TYPE (CGI, LOG_EXCLUDE_ARGS) TCGI_LogExcludeArgs
 NCBI_PARAM_DECL (string, CGI, LOG_LIMIT_ARGS)
 NCBI_PARAM_DEF_EX (string, CGI, LOG_LIMIT_ARGS,"*:1000000", eParam_NoThread, CGI_LOG_LIMIT_ARGS)
typedef NCBI_PARAM_TYPE (CGI, LOG_LIMIT_ARGS) TCGI_LogLimitArgs
bool s_Is_ISO_8859_1 (const string &charset)
bool s_Is_Windows_1252 (const string &charset)
bool s_Is_UTF_8 (const string &charset)
EEncodingForm GetCharsetEncodingForm (const string &charset, CCgiEntry::EOnCharsetError on_error)

Variables

static const tm kZeroTime = { 0 }
static const char * s_TrackingVars []
static const char * s_PropName [eCgi_NProperties+1]


Define Documentation

#define NCBI_USE_ERRCODE_X   Cgi_API
 

Definition at line 63 of file ncbicgi.cpp.

#define STDIN_FILENO   0
 

Definition at line 59 of file ncbicgi.cpp.

Referenced by CProcess::Daemonize(), readpassphrase(), and CCgiRequest::x_ProcessInputStream().


Function Documentation

EEncodingForm GetCharsetEncodingForm const string &  charset,
CCgiEntry::EOnCharsetError  on_error
 

Definition at line 1573 of file ncbicgi.cpp.

References eEncodingForm_Unknown.

Referenced by CCgiEntry::GetValueAsUTF8().

NCBI_PARAM_DECL string  ,
CGI  ,
LOG_LIMIT_ARGS 
 

NCBI_PARAM_DECL string  ,
CGI  ,
LOG_EXCLUDE_ARGS 
 

NCBI_PARAM_DEF_EX string  ,
CGI  ,
LOG_LIMIT_ARGS  ,
"*:1000000"  ,
eParam_NoThread  ,
CGI_LOG_LIMIT_ARGS 
 

NCBI_PARAM_DEF_EX string  ,
CGI  ,
LOG_EXCLUDE_ARGS  ,
kEmptyStr  ,
eParam_NoThread  ,
CGI_LOG_EXCLUDE_ARGS 
 

NCBI_PARAM_ENUM_ARRAY CCgiCookies::EOnBadCookie  ,
CGI  ,
On_Bad_Cookie 
 

Definition at line 934 of file ncbicgi.cpp.

References CCgiCookies::eOnBadCookie_Skip, CCgiCookies::eOnBadCookie_SkipAndError, CCgiCookies::eOnBadCookie_Store, CCgiCookies::eOnBadCookie_StoreAndError, and CCgiCookies::eOnBadCookie_ThrowException.

NCBI_PARAM_ENUM_DEF_EX CCgiCookies::EOnBadCookie  ,
CGI  ,
On_Bad_Cookie  ,
CCgiCookies::eOnBadCookie_SkipAndError  ,
eParam_NoThread  ,
CGI_ON_BAD_COOKIE 
 

typedef NCBI_PARAM_TYPE CGI  ,
LOG_LIMIT_ARGS 
 

typedef NCBI_PARAM_TYPE CGI  ,
LOG_EXCLUDE_ARGS 
 

typedef NCBI_PARAM_TYPE CGI  ,
On_Bad_Cookie 
 

void s_AddEntry TCgiEntries entries,
const string &  name,
const string &  value,
unsigned int  position,
const string &  filename = kEmptyStr,
const string &  type = kEmptyStr
 

Definition at line 793 of file ncbicgi.cpp.

References entries.

Referenced by CDir::GetEntriesPtr().

static bool s_CookieLess const string &  name1,
const string &  domain1,
const string &  path1,
const string &  name2,
const string &  domain2,
const string &  path2
[static]
 

Definition at line 236 of file ncbicgi.cpp.

Referenced by CCgiCookies::Find(), and CCgiCookie::operator<().

bool s_Is_ISO_8859_1 const string &  charset  )  [inline]
 

Definition at line 1536 of file ncbicgi.cpp.

References NStr::CompareNocase().

bool s_Is_UTF_8 const string &  charset  )  [inline]
 

Definition at line 1566 of file ncbicgi.cpp.

References NStr::CompareNocase().

bool s_Is_Windows_1252 const string &  charset  )  [inline]
 

Definition at line 1558 of file ncbicgi.cpp.

References NStr::CompareNocase().

bool s_IsZeroTime const tm &  date  )  [inline]
 

Definition at line 76 of file ncbicgi.cpp.

References kZeroTime.

Referenced by CCgiCookie::GetExpDate().


Variable Documentation

const tm kZeroTime = { 0 } [static]
 

Definition at line 74 of file ncbicgi.cpp.

Referenced by CCgiCookie::Reset(), s_IsZeroTime(), and s_ZeroTime().

const char* s_PropName[eCgi_NProperties+1] [static]
 

Definition at line 748 of file ncbicgi.cpp.

const char* s_TrackingVars[] [static]
 

Initial value:

 
{
    "HTTP_CAF_PROXIED_HOST",
    "HTTP_X_FORWARDED_FOR",
    "PROXIED_IP",
    "HTTP_X_FWD_IP_ADDR",
    "HTTP_CLIENT_HOST",
    "REMOTE_HOST",
    "REMOTE_ADDR",
    "NI_CLIENT_IPADDR",
    NULL
}

Definition at line 679 of file ncbicgi.cpp.


Generated on Mon Dec 7 07:33:13 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Mon Dec 07 16:21:43 2009 by modify_doxy.py rev. 173732