context_storage.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9#ifndef SQUID_SSL_CONTEXT_STORAGE_H
10#define SQUID_SSL_CONTEXT_STORAGE_H
11
12#if USE_OPENSSL
13
14#include "base/ClpMap.h"
15#include "CacheManager.h"
16#include "compat/openssl.h"
17#include "ip/Address.h"
18#include "mgr/Action.h"
19#include "mgr/Command.h"
20#include "security/Context.h"
21#include "ssl/gadgets.h"
22
23#include <list>
24#include <map>
25#if HAVE_OPENSSL_SSL_H
26#include <openssl/ssl.h>
27#endif
28
29namespace Ssl
30{
31
36{
37public:
40 void dump (StoreEntry *sentry) override;
45 bool aggregatable() const override { return false; }
46};
47
49 return 1024; // TODO: Calculate approximate memory usage by the context.
50}
52
55{
57public:
61 void addLocalStorage(Ip::Address const & address, size_t size_of_store);
65 void reconfigureStart();
66private:
68 void reconfigureFinish();
71 std::map<Ip::Address, size_t> configureStorage;
73 std::map<Ip::Address, LocalContextStorage *> storage;
74};
75
78} //namespace Ssl
79#endif // USE_OPENSSL
80
81#endif // SQUID_SSL_CONTEXT_STORAGE_H
82
Definition: ClpMap.h:41
const CommandPointer cmd
the command that caused this action
Definition: Action.h:86
static Pointer Create(const Mgr::Command::Pointer &cmd)
CertificateStorageAction(const Mgr::Command::Pointer &cmd)
void dump(StoreEntry *sentry) override
bool aggregatable() const override
Class for storing/manipulating LocalContextStorage per local listening address/port.
void reconfigureStart()
When reconfigring should be called this method.
void addLocalStorage(Ip::Address const &address, size_t size_of_store)
Create new SSL context storage for the local listening address/port.
void reconfigureFinish()
Called by getLocalStorage method.
LocalContextStorage * getLocalStorage(Ip::Address const &address)
Return the local storage for the given listening address/port.
std::map< Ip::Address, size_t > configureStorage
Storage used on configure or reconfigure.
std::map< Ip::Address, LocalContextStorage * > storage
Map for storing all local ip address and their local storages.
std::shared_ptr< SSL_CTX > ContextPointer
Definition: Context.h:29
Definition: Xaction.cc:40
uint64_t MemoryUsedByContext(const Security::ContextPointer &)
GlobalContextStorage TheGlobalContextStorage
Global cache for store all SSL server certificates.

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors