]> git.ipfire.org Git - thirdparty/squid.git/blame_incremental - src/mgr/FunAction.cc
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / mgr / FunAction.cc
... / ...
CommitLineData
1/*
2 * Copyright (C) 1996-2018 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/* DEBUG: section 16 Cache Manager API */
10
11#include "squid.h"
12#include "base/TextException.h"
13#include "comm/Connection.h"
14#include "globals.h"
15#include "ipc/UdsOp.h"
16#include "mgr/Command.h"
17#include "mgr/Filler.h"
18#include "mgr/FunAction.h"
19#include "mgr/Request.h"
20#include "Store.h"
21#include "tools.h"
22
23Mgr::FunAction::Pointer
24Mgr::FunAction::Create(const Command::Pointer &aCmd, OBJH* aHandler)
25{
26 return new FunAction(aCmd, aHandler);
27}
28
29Mgr::FunAction::FunAction(const Command::Pointer &aCmd, OBJH* aHandler):
30 Action(aCmd), handler(aHandler)
31{
32 Must(handler != NULL);
33 debugs(16, 5, HERE);
34}
35
36void
37Mgr::FunAction::respond(const Request& request)
38{
39 debugs(16, 5, HERE);
40 Ipc::ImportFdIntoComm(request.conn, SOCK_STREAM, IPPROTO_TCP, Ipc::fdnHttpSocket);
41 Must(Comm::IsConnOpen(request.conn));
42 Must(request.requestId != 0);
43 AsyncJob::Start(new Mgr::Filler(this, request.conn, request.requestId));
44}
45
46void
47Mgr::FunAction::dump(StoreEntry* entry)
48{
49 debugs(16, 5, HERE);
50 Must(entry != NULL);
51 if (UsingSmp())
52 storeAppendPrintf(entry, "by kid%d {\n", KidIdentifier);
53 handler(entry);
54 if (atomic() && UsingSmp())
55 storeAppendPrintf(entry, "} by kid%d\n\n", KidIdentifier);
56}
57