#if USE_AUTH
/// Initialize Auth subsystem
-extern void Init(void);
+void Init(void);
#else /* USE_AUTH */
inline void Init(void) {} /* NOP if not USE_AUTH */
#endif /* USE_AUTH */
#include "HttpHdrSc.h"
#include "StatHist.h"
-extern http_hdr_sc_type &operator++ (http_hdr_sc_type &aHeader);
+http_hdr_sc_type &operator++ (http_hdr_sc_type &aHeader);
/* copies non-extant fields from new_sc to this sc */
void
HttpHdrScTarget::mergeWith(const HttpHdrScTarget * new_sc)
class ConnStateData;
/* Http Request */
-//DEAD?: extern int httpRequestHdrAllowedByName(http_hdr_type id);
void httpRequestPack(void *obj, Packer *p);
class HttpHdrRange;
#endif
// implemented in client_side_reply.cc until sides have a common parent
-extern void purgeEntriesByUrl(HttpRequest * req, const char *url);
+void purgeEntriesByUrl(HttpRequest * req, const char *url);
ServerStateData::ServerStateData(FwdState *theFwdState): AsyncJob("ServerStateData"),
requestSender(NULL),
StringRegistry StringRegistry::Instance_;
-extern String::size_type memStringCount();
+String::size_type memStringCount();
void
StringRegistry::Stat(StoreEntry *entry)
typedef enum { srvBlock, srvBypass, srvWait, srvForce} SrvBehaviour;
extern const char *crlf;
-extern const char *methodStr(Method); // TODO: make into a stream operator?
-extern const char *vectPointStr(VectPoint); // TODO: make into a stream op?
+const char *methodStr(Method); // TODO: make into a stream operator?
+const char *vectPointStr(VectPoint); // TODO: make into a stream op?
} // namespace Adaptation
typedef Service::Pointer ServicePointer;
typedef Vector<Adaptation::ServicePointer> Services;
-extern Services &AllServices();
-extern ServicePointer FindService(const Service::Id &key);
+Services &AllServices();
+ServicePointer FindService(const Service::Id &key);
/// detach all adaptation services from current configuration
-extern void DetachServices();
+void DetachServices();
} // namespace Adaptation
}
typedef Vector<ServiceGroupPointer> Groups;
-extern Groups &AllGroups();
-extern ServiceGroupPointer FindGroup(const ServiceGroup::Id &id);
+Groups &AllGroups();
+ServiceGroupPointer FindGroup(const ServiceGroup::Id &id);
} // namespace Adaptation
};
/// register loaded eCAP module service
-extern void RegisterAdapterService(const ServiceRep::AdapterService& adapterService);
+void RegisterAdapterService(const ServiceRep::AdapterService& adapterService);
/// unregister loaded eCAP module service by service uri
-extern void UnregisterAdapterService(const String& serviceUri);
+void UnregisterAdapterService(const String& serviceUri);
/// returns loaded eCAP module service by service uri
-extern ServiceRep::AdapterService FindAdapterService(const String& serviceUri);
+ServiceRep::AdapterService FindAdapterService(const String& serviceUri);
/// check for loaded eCAP services without matching ecap_service in squid.conf
-extern void CheckUnusedAdapterServices(const Services& services);
+void CheckUnusedAdapterServices(const Services& services);
} // namespace Ecap
} // namespace Adaptation
}
}
-extern "C" CSR clientGetMoreData;
-extern "C" CSS clientReplyStatus;
-extern "C" CSD clientReplyDetach;
+SQUIDCEXTERN CSR clientGetMoreData;
+SQUIDCEXTERN CSS clientReplyStatus;
+SQUIDCEXTERN CSD clientReplyDetach;
static ClientSocketContext *
parseHttpRequestAbort(ConnStateData * csd, const char *uri)
/* Local functions */
extern "C" CSS clientReplyStatus;
-extern ErrorState *clientBuildError(err_type, http_status, char const *, Ip::Address &, HttpRequest *);
+ErrorState *clientBuildError(err_type, http_status, char const *, Ip::Address &, HttpRequest *);
/* privates */
}
}
-extern "C" CSR clientGetMoreData;
-extern "C" CSD clientReplyDetach;
+SQUIDCEXTERN CSR clientGetMoreData;
+SQUIDCEXTERN CSD clientReplyDetach;
/**
* clientReplyContext::cacheHit Should only be called until the HTTP reply headers
static void clientFollowXForwardedForCheck(allow_t answer, void *data);
#endif /* FOLLOW_X_FORWARDED_FOR */
-extern ErrorState *clientBuildError(err_type, http_status, char const *url, Ip::Address &, HttpRequest *);
+ErrorState *clientBuildError(err_type, http_status, char const *url, Ip::Address &, HttpRequest *);
CBDATA_CLASS_INIT(ClientRequestContext);
static void clientInterpretRequestHeaders(ClientHttpRequest * http);
static RH clientRedirectDoneWrapper;
static void checkNoCacheDoneWrapper(allow_t, void *);
-extern "C" CSR clientGetMoreData;
-extern "C" CSS clientReplyStatus;
-extern "C" CSD clientReplyDetach;
+SQUIDCEXTERN CSR clientGetMoreData;
+SQUIDCEXTERN CSS clientReplyStatus;
+SQUIDCEXTERN CSD clientReplyDetach;
static void checkFailureRatio(err_type, hier_code);
ClientRequestContext::~ClientRequestContext()
* the callout. This is strictly for convenience.
*/
-extern tos_t aclMapTOS (acl_tos * head, ACLChecklist * ch);
-extern nfmark_t aclMapNfmark (acl_nfmark * head, ACLChecklist * ch);
+tos_t aclMapTOS (acl_tos * head, ACLChecklist * ch);
+nfmark_t aclMapNfmark (acl_nfmark * head, ACLChecklist * ch);
void
ClientHttpRequest::doCallouts()
/* don't touch incoming, it's a pointer into buffered anyway */
}
-extern ErrorState *clientBuildError (err_type, http_status, char const *, Ip::Address &, HttpRequest *);
+ErrorState *clientBuildError (err_type, http_status, char const *, Ip::Address &, HttpRequest *);
/* This can ONLY be used before we have sent *any* data to the client */
void
dwrite_q *write_q;
dwrite_q *write_q_tail;
off_t offset;
+ _fde_disk() { memset(this, 0, sizeof(_fde_disk)); }
};
class fde
#endif
unsigned epoll_state;
- struct _fde_disk disk;
+ _fde_disk disk;
PF *read_handler;
void *read_data;
PF *write_handler;
clientInfo = NULL;
#endif
epoll_state = 0;
- memset(&disk, 0, sizeof(_fde_disk));
read_handler = NULL;
read_data = NULL;
write_handler = NULL;
void fqdncache_init(void);
void fqdnStats(StoreEntry *);
-//extern void fqdncacheReleaseInvalid(const char *);
-//extern int fqdncacheQueueDrain(void);
void fqdncacheFreeMemory(void);
void fqdncache_restart(void);
void fqdncache_purgelru(void *);
void fqdncacheAddEntryFromHosts(char *addr, wordlist * hostnames);
const char *fqdncache_gethostbyaddr(const Ip::Address &, int flags);
-//extern const char *fqdnFromAddr(const Ip::Address &);
void fqdncache_nbgethostbyaddr(const Ip::Address &, FQDNH *, void *);
#endif /* SQUID_FQDNCACHE_H_ */
} // namespace Ip
-extern void parse_IpAddress_list_token(Ip::Address_list **, char *);
+void parse_IpAddress_list_token(Ip::Address_list **, char *);
#endif /* _SQUID_IP_IPADDRESS_H */
{
/// Probe to discover IPv6 capabilities
-extern void ProbeTransport(void);
+void ProbeTransport(void);
/* Squids notion of IPv6 stack types and state */
#define IPV6_OFF 0
fdnInIcpSocket, fdnInHtcpSocket, fdnEnd
} FdNoteId;
-extern const char *FdNote(int fdNodeId); ///< converts FdNoteId into a string
+const char *FdNote(int fdNodeId); ///< converts FdNoteId into a string
} // namespace Ipc;
};
/// prepare and send SharedListenRequest to Coordinator
-extern void JoinSharedListen(const OpenListenerParams &, AsyncCall::Pointer &);
+void JoinSharedListen(const OpenListenerParams &, AsyncCall::Pointer &);
/// process Coordinator response to SharedListenRequest
-extern void SharedListenJoined(const SharedListenResponse &response);
+void SharedListenJoined(const SharedListenResponse &response);
} // namespace Ipc;
/// Depending on whether SMP is on, either ask Coordinator to send us
/// the listening FD or open a listening socket directly.
-extern void StartListening(int sock_type, int proto, const Comm::ConnectionPointer &listenConn,
+void StartListening(int sock_type, int proto, const Comm::ConnectionPointer &listenConn,
FdNoteId fdNote, AsyncCall::Pointer &callback);
} // namespace Ipc;
};
/// converts human-readable filename path into UDS address
-extern struct sockaddr_un PathToAddress(const String &pathAddr);
+struct sockaddr_un PathToAddress(const String &pathAddr);
// XXX: move UdsSender code to UdsSender.{cc,h}
/// attempts to send an IPC message a few times, with a timeout
};
/* Legacy API */
-extern Logfile *logfileOpen(const char *path, size_t bufsz, int);
-extern void logfileClose(Logfile * lf);
-extern void logfileRotate(Logfile * lf);
-extern void logfileWrite(Logfile * lf, char *buf, size_t len);
-extern void logfileFlush(Logfile * lf);
-extern void logfilePrintf(Logfile * lf, const char *fmt,...) PRINTF_FORMAT_ARG2;
-extern void logfileLineStart(Logfile * lf);
-extern void logfileLineEnd(Logfile * lf);
+Logfile *logfileOpen(const char *path, size_t bufsz, int);
+void logfileClose(Logfile * lf);
+void logfileRotate(Logfile * lf);
+void logfileWrite(Logfile * lf, char *buf, size_t len);
+void logfileFlush(Logfile * lf);
+void logfilePrintf(Logfile * lf, const char *fmt,...) PRINTF_FORMAT_ARG2;
+void logfileLineStart(Logfile * lf);
+void logfileLineEnd(Logfile * lf);
#endif /* SQUID_SRC_LOG_FILE_H */
class Logfile;
-extern int logfile_mod_daemon_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
+int logfile_mod_daemon_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
#endif /* _SQUID_SRC_LOG_MODDAEMON_H */
class Logfile;
-extern int logfile_mod_stdio_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
+int logfile_mod_stdio_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
#endif /* _SQUID_SRC_LOG_MODSTDIO_H */
class Logfile;
-extern int logfile_mod_syslog_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
+int logfile_mod_syslog_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
#endif /* _SQUID_SRC_LOG_MODSYSLOG_H */
class Logfile;
-extern int logfile_mod_tcp_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
+int logfile_mod_tcp_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
#endif /* _SQUID_SRC_LOG_MODTCP_H */
class Logfile;
-extern int logfile_mod_udp_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
+int logfile_mod_udp_open(Logfile * lf, const char *path, size_t bufsz, int fatal_flag);
#endif /* _SQUID_SRC_LOG_MODUDP_H */
#ifndef SQUID_LOG_ACCESS_LOG_H_
#define SQUID_LOG_ACCESS_LOG_H_
-extern int logTypeIsATcpHit(log_type);
-extern void fvdbCountVia(const char *key);
-extern void fvdbCountForw(const char *key);
+int logTypeIsATcpHit(log_type);
+void fvdbCountVia(const char *key);
+void fvdbCountForw(const char *key);
#if HEADERS_LOG
class HttpRequestMethod;
-extern void headersLog(int cs, int pq, const HttpRequestMethod& m, void *data);
+void headersLog(int cs, int pq, const HttpRequestMethod& m, void *data);
#endif
#endif /* SQUID_LOG_ACCESS_LOG_H_ */
static int opt_remove_service = FALSE;
static int opt_signal_service = FALSE;
static int opt_command_line = FALSE;
-extern void WIN32_svcstatusupdate(DWORD, DWORD);
+void WIN32_svcstatusupdate(DWORD, DWORD);
void WINAPI WIN32_svcHandler(DWORD);
#endif
static void watch_child(char **);
static void setEffectiveUser(void);
#if MEM_GEN_TRACE
-extern void log_trace_done();
-extern void log_trace_init(char *);
+void log_trace_done();
+void log_trace_init(char *);
#endif
static void SquidShutdown(void);
static void mainSetCwd(void);
return pool ? pool->alloc() : xcalloc(1, net_size);
}
-extern size_t memStringCount();
size_t
memStringCount()
{
#include "Store.h"
#include "tools.h"
-extern void GetCountersStats(Mgr::CountersActionData& stats);
-extern void DumpCountersStats(Mgr::CountersActionData& stats, StoreEntry* sentry);
+void GetCountersStats(Mgr::CountersActionData& stats);
+void DumpCountersStats(Mgr::CountersActionData& stats, StoreEntry* sentry);
Mgr::CountersActionData::CountersActionData()
{
#include "Store.h"
#include "tools.h"
-extern void GetInfo(Mgr::InfoActionData& stats);
-extern void DumpInfo(Mgr::InfoActionData& stats, StoreEntry* sentry);
-extern void DumpMallocStatistics(StoreEntry* sentry);
+void GetInfo(Mgr::InfoActionData& stats);
+void DumpInfo(Mgr::InfoActionData& stats, StoreEntry* sentry);
+void DumpMallocStatistics(StoreEntry* sentry);
Mgr::InfoActionData::InfoActionData()
{
#include "Store.h"
#include "tools.h"
-extern void GetAvgStat(Mgr::IntervalActionData& stats, int minutes, int hours);
-extern void DumpAvgStat(Mgr::IntervalActionData& stats, StoreEntry* sentry);
+void GetAvgStat(Mgr::IntervalActionData& stats, int minutes, int hours);
+void DumpAvgStat(Mgr::IntervalActionData& stats, StoreEntry* sentry);
Mgr::IntervalActionData::IntervalActionData()
{
#include "Store.h"
#include "tools.h"
-extern void GetIoStats(Mgr::IoActionData& stats);
-extern void DumpIoStats(Mgr::IoActionData& stats, StoreEntry* sentry);
+void GetIoStats(Mgr::IoActionData& stats);
+void DumpIoStats(Mgr::IoActionData& stats, StoreEntry* sentry);
Mgr::IoActionData::IoActionData()
{
#include "Store.h"
#include "tools.h"
-extern void GetServiceTimesStats(Mgr::ServiceTimesActionData& stats);
-extern void DumpServiceTimesStats(Mgr::ServiceTimesActionData& stats, StoreEntry* sentry);
+void GetServiceTimesStats(Mgr::ServiceTimesActionData& stats);
+void DumpServiceTimesStats(Mgr::ServiceTimesActionData& stats, StoreEntry* sentry);
Mgr::ServiceTimesActionData::ServiceTimesActionData()
{
-/*
- * $Id$
- */
#ifndef _SQUIDINC_STORE_HEAP_REPLACEMENT_H
#define _SQUIDINC_STORE_HEAP_REPLACEMENT_H
#include "heap.h"
-extern heap_key HeapKeyGen_StoreEntry_LFUDA(void *entry, double age);
-extern heap_key HeapKeyGen_StoreEntry_GDSF(void *entry, double age);
-extern heap_key HeapKeyGen_StoreEntry_LRU(void *entry, double age);
+heap_key HeapKeyGen_StoreEntry_LFUDA(void *entry, double age);
+heap_key HeapKeyGen_StoreEntry_GDSF(void *entry, double age);
+heap_key HeapKeyGen_StoreEntry_LRU(void *entry, double age);
#endif /* _SQUIDINC_STORE_HEAP_REPLACEMENT_H */
CBDATA_CLASS2(Forwarder);
};
-extern void SendResponse(unsigned int requestId, const Pdu& pdu);
+void SendResponse(unsigned int requestId, const Pdu& pdu);
} // namespace Snmp
Pdu pdu; ///< SNMP protocol data unit
};
-extern std::ostream& operator << (std::ostream& os, const Response& response);
+std::ostream& operator << (std::ostream& os, const Response& response);
} // namespace Snmp
tvSubDsec(CountHist[minutes].timestamp, CountHist[0].timestamp));
}
-extern double
+double
statRequestHitRatio(int minutes)
{
assert(minutes < N_COUNT_HIST);
CountHist[minutes].client_http.requests);
}
-extern double
+double
statRequestHitMemoryRatio(int minutes)
{
assert(minutes < N_COUNT_HIST);
CountHist[minutes].client_http.hits);
}
-extern double
+double
statRequestHitDiskRatio(int minutes)
{
assert(minutes < N_COUNT_HIST);
CountHist[minutes].client_http.hits);
}
-extern double
+double
statByteHitRatio(int minutes)
{
size_t s;
StoreEntry *storeGetPublic(const char *uri, const HttpRequestMethod& method) STUB_RETVAL(NULL)
StoreEntry *storeGetPublicByRequest(HttpRequest * request) STUB_RETVAL(NULL)
StoreEntry *storeGetPublicByRequestMethod(HttpRequest * request, const HttpRequestMethod& method) STUB_RETVAL(NULL)
-extern StoreEntry *storeCreateEntry(const char *, const char *, const RequestFlags &, const HttpRequestMethod&) STUB_RETVAL(NULL)
+StoreEntry *storeCreateEntry(const char *, const char *, const RequestFlags &, const HttpRequestMethod&) STUB_RETVAL(NULL)
void storeInit(void) STUB
void storeConfigure(void) STUB
void storeFreeMemory(void) STUB
static void fatalvf(const char *fmt, va_list args);
static void mail_warranty(void);
#if MEM_GEN_TRACE
-extern void log_trace_done();
-extern void log_trace_init(char *);
+void log_trace_done();
+void log_trace_init(char *);
#endif
static void restoreCapabilities(int keep);
int DebugSignal = -1;
commSetConnTimeout(conn, Config.Timeout.read, timeoutCall);
}
-extern tos_t GetTosToServer(HttpRequest * request);
-extern nfmark_t GetNfmarkToServer(HttpRequest * request);
+tos_t GetTosToServer(HttpRequest * request);
+nfmark_t GetNfmarkToServer(HttpRequest * request);
void
tunnelStart(ClientHttpRequest * http, int64_t * size_ptr, int *status_ptr)