errorpage.cc File Reference
#include "squid.h"
#include "AccessLogEntry.h"
#include "cache_cf.h"
#include "clients/forward.h"
#include "comm/Connection.h"
#include "comm/Write.h"
#include "error/Detail.h"
#include "error/SysErrorDetail.h"
#include "errorpage.h"
#include "fde.h"
#include "format/Format.h"
#include "fs_io.h"
#include "html/Quoting.h"
#include "HttpHeaderTools.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "MemBuf.h"
#include "MemObject.h"
#include "rfc1738.h"
#include "sbuf/Stream.h"
#include "SquidConfig.h"
#include "Store.h"
#include "tools.h"
#include "wordlist.h"
#include "auth/UserRequest.h"
#include "ssl/ErrorDetailManager.h"
#include <array>
Include dependency graph for errorpage.cc:

Go to the source code of this file.

Classes

class  ErrorDynamicPageInfo
 an error page created from admin-configurable metadata (e.g. deny_info) More...
 
class  ErrorPage::Build
 state and parameters shared by several ErrorState::compile*() methods More...
 
class  ErrorPage::BuildErrorPrinter
 pretty-prints error page/deny_info building error More...
 
class  HardCodedError
 an error page (or a part of an error page) with hard-coded template text More...
 
class  ErrorPageFile
 

Namespaces

namespace  ErrorPage
 

Macros

#define DEFAULT_SQUID_ERROR_DIR   DEFAULT_SQUID_DATA_DIR"/errors"
 
#define CVT_BUF_SZ   512
 

Functions

static std::ostream & ErrorPage::operator<< (std::ostream &os, const BuildErrorPrinter &context)
 
static const char * ErrorPage::IsDenyInfoUri (const int page_id)
 
static void ErrorPage::ImportStaticErrorText (const int page_id, const char *text, const SBuf &inputLocation)
 add error page template to the global index More...
 
static void ErrorPage::ValidateStaticError (const int page_id, const SBuf &inputLocation)
 validate static error page More...
 
static const char * errorFindHardText (err_type type)
 
static err_typeoperator++ (err_type &anErr)
 
static int operator- (err_type const &anErr, err_type const &anErr2)
 
void errorInitialize (void)
 
void errorClean (void)
 
bool strHdrAcptLangGetItem (const String &hdr, char *lang, int langLen, size_t &pos)
 
static int errorPageId (const char *page_name)
 
err_type errorReservePageId (const char *page_name, const SBuf &cfgLocation)
 allocates a new slot for the error page More...
 
const char * errorPageName (int pageId)
 error ID to string More...
 
void errorAppendEntry (StoreEntry *entry, ErrorState *err)
 
void errorSend (const Comm::ConnectionPointer &conn, ErrorState *err)
 
static void errorSendComplete (const Comm::ConnectionPointer &conn, char *, size_t size, Comm::Flag errflag, int, void *data)
 
std::ostream & operator<< (std::ostream &os, const ErrorState *err)
 

Variables

static const std::array< HardCodedError, 7 > HardCodedErrors
 error messages that cannot be configured/customized externally More...
 
static std::vector< ErrorDynamicPageInfo * > ErrorDynamicPages
 
static char ** error_text = nullptr
 
static int error_page_count = 0
 
static MemBuf error_stylesheet
 
static IOCB errorSendComplete
 

Macro Definition Documentation

◆ DEFAULT_SQUID_ERROR_DIR

#define DEFAULT_SQUID_ERROR_DIR   DEFAULT_SQUID_DATA_DIR"/errors"

Where to look for errors if config path fails.

Note
Please use ./configure –datadir=/path instead of patching

Definition at line 59 of file errorpage.cc.

Function Documentation

◆ errorReservePageId()

err_type errorReservePageId ( const char *  page_name,
const SBuf cfgLocation 
)

Definition at line 647 of file errorpage.cc.

References ERR_MAX, ERR_NONE, ErrorDynamicPages, and errorPageId().

Referenced by AclDenyInfoList::AclDenyInfoList().

◆ operator<<()

std::ostream & operator<< ( std::ostream &  os,
const ErrorState err 
)

Definition at line 1528 of file errorpage.cc.

References errorPageName(), and ErrorState::page_id.

◆ strHdrAcptLangGetItem()

bool strHdrAcptLangGetItem ( const String hdr,
char *  lang,
int  langLen,
size_t pos 
)

Parses the Accept-Language header value and return one language item on each call. Will ignore any whitespace, q-values, and detectably invalid language codes in the header.

Parameters
hdris the Accept-Language header value
langa buffer to store parsed language code in
langlenthe length of the lang buffer
posis used to store the offset state of parsing. Must be "0" on first call. Will be altered to point at the start of next field-value.
Returns
true if something looking like a language token has been placed in lang, false otherwise

Definition at line 465 of file errorpage.cc.

References debugs, String::size(), String::substr(), xisspace, and xtolower.

Referenced by Ssl::ErrorDetailsManager::findDetail(), Auth::SchemeConfig::isCP1251EncodingAllowed(), and TemplateFile::loadFor().

Variable Documentation

◆ errorSendComplete

IOCB errorSendComplete
static

Definition at line 208 of file errorpage.cc.

Referenced by errorSend().

◆ HardCodedErrors

const std::array<HardCodedError, 7> HardCodedErrors
static

Definition at line 155 of file errorpage.cc.

Referenced by errorFindHardText().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors