Update schema for CGI filter configuration
[metaproxy-moved-to-github.git] / src / filter_limit.cpp
index c43608f..784f68a 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Metaproxy.
-   Copyright (C) 2005-2009 Index Data
+   Copyright (C) 2005-2010 Index Data
 
 Metaproxy is free software; you can redistribute it and/or modify it under
 the terms of the GNU General Public License as published by the Free
@@ -21,9 +21,12 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 #include <time.h>
 #include <yaz/log.h>
-#include <yazpp/bw.h>
-#include "package.hpp"
-#include "util.hpp"
+#include <yazpp/timestat.h>
+#include <metaproxy/package.hpp>
+#include <metaproxy/util.hpp>
+#ifdef WIN32
+#include <windows.h>
+#endif
 
 namespace mp = metaproxy_1;
 namespace yf = mp::filter;
@@ -32,9 +35,9 @@ namespace metaproxy_1 {
     namespace filter {
         class Limit::Ses {
         public:
-            yazpp_1::Yaz_bw bw_stat;
-            yazpp_1::Yaz_bw pdu_stat;
-            yazpp_1::Yaz_bw search_stat;
+            yazpp_1::TimeStat bw_stat;
+            yazpp_1::TimeStat pdu_stat;
+            yazpp_1::TimeStat search_stat;
             Ses() : bw_stat(60), pdu_stat(60), search_stat(60) {};
         };
 
@@ -183,12 +186,19 @@ void yf::Limit::Impl::process(mp::Package &package)
             }
         }
         if (package.session().is_closed())
+        {
             m_sessions.erase(package.session());
+            delete ses;
+        }
     }
     if (reduce)
     {
         yaz_log(YLOG_LOG, "sleeping %d seconds", reduce);
+#ifdef WIN32
+        Sleep(reduce * 1000);
+#else
         sleep(reduce);
+#endif
     }
 }