]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Amos requests
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Fri, 28 Jan 2011 17:56:41 +0000 (19:56 +0200)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Fri, 28 Jan 2011 17:56:41 +0000 (19:56 +0200)
18 files changed:
configure.ac
src/Makefile.am
src/ipc/Coordinator.cc
src/ipc/Coordinator.h
src/ipc/FdNotes.cc
src/ipc/FdNotes.h
src/ipc/Makefile.am
src/ipc/Messages.h
src/ipc/Request.cc [deleted file]
src/ipc/Response.cc [deleted file]
src/ipc/Response.h
src/ipc/Strand.cc
src/ipc/Strand.h
src/snmp_core.cc
src/snmpx/Pdu.cc
src/snmpx/Pdu.h
src/snmpx/Var.cc
src/snmpx/Var.h

index ee58f1fa5c303681326814402a6e2d7eb8880726..1a1bcf19847b892fe856a923a0875739d61aaa52 100644 (file)
@@ -993,7 +993,7 @@ AC_ARG_ENABLE(snmp,
 ])
 SQUID_DEFINE_BOOL(SQUID_SNMP,${enable_snmp:=yes},
    [Define to enable SNMP monitoring of Squid])
-AM_CONDITIONAL(USE_SNMP, [test "x$enable_snmp" = "xyes"])
+AM_CONDITIONAL(ENABLE_SNMP, [test "x$enable_snmp" = "xyes"])
 if test "x$enable_snmp" = "xyes"; then
     SNMPLIB='../snmplib/libsnmp.a'
     makesnmplib=snmplib
index 068de325301c6c8309c601a7e61fa46e6cec949a..da42677421d34eb31e97380509eac4f662847584 100644 (file)
@@ -28,7 +28,7 @@ SNMP_ALL_SOURCE = \
        snmp_core.h \
        snmp_core.cc \
        snmp_agent.cc
-if USE_SNMP
+if ENABLE_SNMP
 SNMP_SOURCE = $(SNMP_ALL_SOURCE)
 else
 SNMP_SOURCE = 
@@ -51,9 +51,9 @@ else
 SSL_LOCAL_LIBS =
 endif
 
-if USE_SNMP
+if ENABLE_SNMP
 SUBDIRS += snmpx
-SNMPXLIB = snmpx/libsnmpx.la
+SNMPX_LIBS = snmpx/libsnmpx.la
 endif
 
 if USE_ADAPTATION
@@ -553,7 +553,7 @@ squid_LDADD = \
        $(CRYPTLIB) \
        $(REGEXLIB) \
        $(SNMPLIB) \
-       $(SNMPXLIB) \
+       $(SNMPX_LIBS) \
        ${ADAPTATION_LIBS} \
        $(ESI_LIBS) \
        $(SSL_LIBS) \
index 548d05146eb50586328b8843f710c250564ec4f4..a79d4b8cc94eaf0ca7e52fcf3bdee06ef3b23fb5 100644 (file)
 #include "mgr/Inquirer.h"
 #include "mgr/Request.h"
 #include "mgr/Response.h"
+#if SQUID_SNMP
 #include "snmpx/Inquirer.h"
 #include "snmpx/Request.h"
 #include "snmpx/Response.h"
-
+#endif
 
 CBDATA_NAMESPACED_CLASS_INIT(Ipc, Coordinator);
 Ipc::Coordinator* Ipc::Coordinator::TheInstance = NULL;
@@ -75,6 +76,7 @@ void Ipc::Coordinator::receive(const TypedMsgHdr& message)
         handleCacheMgrResponse(Mgr::Response(message));
         break;
 
+#if SQUID_SNMP
     case mtSnmpRequest:
         debugs(54, 6, HERE << "SNMP request");
         handleSnmpRequest(Snmp::Request(message));
@@ -84,6 +86,7 @@ void Ipc::Coordinator::receive(const TypedMsgHdr& message)
         debugs(54, 6, HERE << "SNMP response");
         handleSnmpResponse(Snmp::Response(message));
         break;
+#endif
 
     default:
         debugs(54, 1, HERE << "Unhandled message type: " << message.type());
@@ -143,6 +146,7 @@ Ipc::Coordinator::handleCacheMgrResponse(const Mgr::Response& response)
     Mgr::Inquirer::HandleRemoteAck(response);
 }
 
+#if SQUID_SNMP
 void
 Ipc::Coordinator::handleSnmpRequest(const Snmp::Request& request)
 {
@@ -162,6 +166,7 @@ Ipc::Coordinator::handleSnmpResponse(const Snmp::Response& response)
     debugs(54, 4, HERE);
     Snmp::Inquirer::HandleRemoteAck(response);
 }
+#endif
 
 int
 Ipc::Coordinator::openListenSocket(const SharedListenRequest& request,
index 6ef25cebf94b573229aa609447aebe76141e0b89..bafa3f7a09fc1897852bc143bf32b197c61a28a7 100644 (file)
@@ -15,8 +15,9 @@
 #include "ipc/SharedListen.h"
 #include "ipc/StrandCoords.h"
 #include "mgr/forward.h"
+#if SQUID_SNMP
 #include "snmpx/forward.h"
-
+#endif
 #include <map>
 
 namespace Ipc
@@ -47,9 +48,10 @@ protected:
     void handleSharedListenRequest(const SharedListenRequest& request);
     void handleCacheMgrRequest(const Mgr::Request& request);
     void handleCacheMgrResponse(const Mgr::Response& response);
+#if SQUID_SNMP
     void handleSnmpRequest(const Snmp::Request& request);
     void handleSnmpResponse(const Snmp::Response& response);
-
+#endif
     /// calls comm_open_listener()
     int openListenSocket(const SharedListenRequest& request, int &errNo);
 
index 9eb3328f33e1e85c83e551defd9182d20bdaa8ff..f7ea3cf73f67e7052b3314f32c94a680436bf520 100644 (file)
@@ -17,8 +17,10 @@ Ipc::FdNote(int fdNoteId)
         "None", // fdnNone
         "HTTP Socket", // fdnHttpSocket
         "HTTPS Socket", // fdnHttpsSocket
+#if SQUID_SNMP
         "Incoming SNMP Socket", // fdnInSnmpSocket
         "Outgoing SNMP Socket", // fdnOutSnmpSocket
+#endif
         "Incoming ICP Socket", // fdnInIcpSocket
         "Incoming HTCP Socket" // fdnInHtcpSocket
     };
index 91409d0e72a94db3302d9c6493167f41a20ef098..20978ea2c890392d56acbaed1d305bd429d5154e 100644 (file)
@@ -15,7 +15,9 @@ namespace Ipc
 
 /// fd_note() label ID
 typedef enum { fdnNone, fdnHttpSocket, fdnHttpsSocket,
+#if SQUID_SNMP
                fdnInSnmpSocket, fdnOutSnmpSocket,
+#endif
                fdnInIcpSocket, fdnInHtcpSocket, fdnEnd
              } FdNoteId;
 
index 0864394f394ff424accf1750372f286b323b57fc..4cda3bba0a4a21a35dace70d7beb48b3444c48f7 100644 (file)
@@ -34,7 +34,6 @@ libipc_la_SOURCES = \
        Inquirer.cc \
        Inquirer.h \
        Request.h \
-       Response.cc \
        Response.h
 
 DEFS += -DDEFAULT_PREFIX=\"$(prefix)\"
index 59b2eb5db157b39f6377d80efe5e5abda95db32e..b358f1b9812ba015a485c419922d268d68c580b1 100644 (file)
@@ -8,10 +8,7 @@
 #ifndef SQUID_IPC_MESSAGES_H
 #define SQUID_IPC_MESSAGES_H
 
-#include "ipc/forward.h"
-#include <sys/types.h>
-
-/** Declarations used by varios IPC messages */
+/** Declarations used by various IPC messages */
 
 namespace Ipc
 {
@@ -20,7 +17,9 @@ namespace Ipc
 typedef enum { mtNone = 0, mtRegistration,
                mtSharedListenRequest, mtSharedListenResponse,
                mtCacheMgrRequest, mtCacheMgrResponse,
+#if SQUID_SNMP
                mtSnmpRequest, mtSnmpResponse
+#endif
              } MessageType;
 
 } // namespace Ipc;
diff --git a/src/ipc/Request.cc b/src/ipc/Request.cc
deleted file mode 100644 (file)
index 2d8156e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * $Id$
- *
- * DEBUG: section 54    Interprocess Communication
- *
- */
-
-#include "config.h"
-#include "ipc/Request.h"
-#include "ipc/TypedMsgHdr.h"
diff --git a/src/ipc/Response.cc b/src/ipc/Response.cc
deleted file mode 100644 (file)
index 5d1f39a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * $Id$
- *
- * DEBUG: section 54    Interprocess Communication
- *
- */
-
-#include "config.h"
-#include "ipc/Response.h"
-#include "ipc/TypedMsgHdr.h"
-
-
-std::ostream& Ipc::operator << (std::ostream &os, const Response& response)
-{
-    os << "[response.requestId %u]" << response.requestId << '}';
-    return os;
-}
index bd3fa9afff0921bc98396f66ff4080e0ba077924..edbf2a971e91e583b82f17454be9a5ab3df19f63 100644 (file)
@@ -36,7 +36,13 @@ public:
     unsigned int requestId; ///< ID of request we are responding to
 };
 
-extern std::ostream& operator <<(std::ostream &os, const Response &response);
+inline
+std::ostream& operator << (std::ostream &os, const Response& response)
+{
+    os << "[response.requestId %u]" << response.requestId << '}';
+    return os;
+}
+
 
 } // namespace Ipc
 
index 6a4fd004f2722dc460918b8268a488908e566546..392fa1371244025a31152d48cdbc5a88bd26a120 100644 (file)
 #include "mgr/Response.h"
 #include "mgr/Forwarder.h"
 #include "CacheManager.h"
+#if SQUID_SNMP
 #include "snmpx/Forwarder.h"
 #include "snmpx/Request.h"
 #include "snmpx/Response.h"
-
+#endif
 
 CBDATA_NAMESPACED_CLASS_INIT(Ipc, Strand);
 
@@ -67,6 +68,7 @@ void Ipc::Strand::receive(const TypedMsgHdr &message)
         handleCacheMgrResponse(Mgr::Response(message));
         break;
 
+#if SQUID_SNMP
     case mtSnmpRequest:
         handleSnmpRequest(Snmp::Request(message));
         break;
@@ -74,6 +76,7 @@ void Ipc::Strand::receive(const TypedMsgHdr &message)
     case mtSnmpResponse:
         handleSnmpResponse(Snmp::Response(message));
         break;
+#endif
 
     default:
         debugs(54, 1, HERE << "Unhandled message type: " << message.type());
@@ -106,6 +109,7 @@ void Ipc::Strand::handleCacheMgrResponse(const Mgr::Response& response)
     Mgr::Forwarder::HandleRemoteAck(response.requestId);
 }
 
+#if SQUID_SNMP
 void Ipc::Strand::handleSnmpRequest(const Snmp::Request& request)
 {
     debugs(54, 6, HERE);
@@ -117,6 +121,7 @@ void Ipc::Strand::handleSnmpResponse(const Snmp::Response& response)
     debugs(54, 6, HERE);
     Snmp::Forwarder::HandleRemoteAck(response.requestId);
 }
+#endif
 
 void Ipc::Strand::timedout()
 {
index 1394c0992eae3be1068670732d7901df3939ae7e..5d2a0b28de9df94ba3166249fb4f23127cd23acd 100644 (file)
@@ -10,8 +10,9 @@
 
 #include "ipc/Port.h"
 #include "mgr/forward.h"
+#if SQUID_SNMP
 #include "snmpx/forward.h"
-
+#endif
 
 namespace Ipc
 {
@@ -35,8 +36,10 @@ private:
     void handleRegistrationResponse(const StrandCoord &strand);
     void handleCacheMgrRequest(const Mgr::Request& request);
     void handleCacheMgrResponse(const Mgr::Response& response);
+#if SQUID_SNMP
     void handleSnmpRequest(const Snmp::Request& request);
     void handleSnmpResponse(const Snmp::Response& response);
+#endif
 
 private:
     bool isRegistered; ///< whether Coordinator ACKed registration (unused)
index b9d65f57010d148628dcbd9a128254e72161dfab..ecb7f91d599fc7ae5886c0c5797b9cc1de0d7533 100644 (file)
@@ -143,8 +143,8 @@ snmpInit(void)
     snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_STORAGE, NULL, NULL);
     snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", CONF_ST_MMAXSZ, snmp_confFn, static_Inst, atSum);
     snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", CONF_ST_SWMAXSZ, snmp_confFn, static_Inst, atSum);
-    snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", CONF_ST_SWHIWM, snmp_confFn, static_Inst, atSum);
-    snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", CONF_ST_SWLOWM, snmp_confFn, static_Inst, atSum);
+    snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", CONF_ST_SWHIWM, snmp_confFn, static_Inst, atMin);
+    snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", CONF_ST_SWLOWM, snmp_confFn, static_Inst, atMax);
 
     snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_UNIQNAME, snmp_confFn, static_Inst);
 
index 91a70b0b23c45328599a9a6fafae492bd2078980..6efcaf60381ae3b1dc34d5de86322368f2f1f6ce 100644 (file)
@@ -65,6 +65,8 @@ Snmp::Pdu::aggregate(const Pdu& pdu)
             {
             case atSum:
             case atAverage:
+                // The mean-average division is done later
+                // when the Snmp::Pdu::fixAggregate() called
                 aggr += var;
                 break;
             case atMax:
@@ -225,7 +227,7 @@ Snmp::Pdu::varCount() const
 void 
 Snmp::Pdu::fixAggregate()
 {
-    if (!aggrCount)
+    if (aggrCount < 2)
         return;
     for (variable_list* p_aggr = variables; p_aggr != NULL; p_aggr = p_aggr->next_variable) {
         Var& aggr = static_cast<Var&>(*p_aggr);
index f1a4cd46c164f9c031c3a4d64ce530c40a1cea2f..aad0e00b934f449eb0fef35e49f2f5409a337f43 100644 (file)
@@ -42,7 +42,7 @@ public:
 private:
     void init(); ///< initialize members
     void assign(const Pdu& pdu); ///< perform full assignment
-    int aggrCount;  ///< The number of other Pdus merged into
+    unsigned int aggrCount;  ///< The number of other Pdus merged into
 };
 
 } // namespace Snmp
index 32f972a1f74a010c7737fe0fb4cff5373c96b5bf..ce1bf0ee047c9155424f9ae7f1d9851e8ebd6a89 100644 (file)
@@ -254,14 +254,6 @@ Snmp::Var::asString() const
     return Range<const u_char*>(val.string, val.string + val_len);
 }
 
-ipaddr
-Snmp::Var::asIpAddress() const
-{
-    Must(type == SMI_IPADDRESS);
-    Must(val.string != NULL && val_len == sizeof(ipaddr));
-    return *reinterpret_cast<ipaddr*>(val.string);
-}
-
 void
 Snmp::Var::setInt(int value)
 {
@@ -304,12 +296,6 @@ Snmp::Var::setTimeTicks(unsigned int ticks)
     setValue(&ticks, sizeof(ticks), SMI_TIMETICKS);
 }
 
-void
-Snmp::Var::setIpAddress(ipaddr addr)
-{
-    setValue(&addr, sizeof(addr), SMI_IPADDRESS);
-}
-
 void
 Snmp::Var::copyValue(const Var& var)
 {
index c38cec45940df09f1a140a7c676a7bc201d8cd05..7d50e89788f1089a1b9225c8fe63913e18b59d58 100644 (file)
@@ -48,7 +48,6 @@ public:
     unsigned int asTimeTicks() const; ///< returns variable value as time ticks
     Range<const oid*> asObject() const; ///< returns variable value as object oid
     Range<const u_char*> asString() const; ///< returns variable value as chars string
-    ipaddr asIpAddress() const; ///< returns variable value as ip address
 
     void setInt(int value); ///< assign int value to variable
     void setCounter(int value); ///< assign Counter32 value to variable
@@ -56,7 +55,6 @@ public:
     void setString(const Range<const u_char*>& string); ///< assign string to variable
     void setObject(const Range<const oid*>& object); ///< assign object oid to variable
     void setTimeTicks(unsigned int ticks); ///<assign unsigned int (time) value to variable
-    void setIpAddress(ipaddr addr); ///< assign sockaddr_in to variable
     void setCounter64(long long int counter); ///< assign Counter64 value to variable
 
     void copyValue(const Var& var); ///< copy variable from another one