/* This file is part of Metaproxy.
- Copyright (C) 2005-2013 Index Data
+ Copyright (C) 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
#include <yaz/querytowrbuf.h>
#include <yaz/oid_db.h>
#include <yaz/srw.h>
+#include <yaz/match_glob.h>
+
+#include <boost/algorithm/string.hpp>
#include <iostream>
return wrbuf_buf(m_wrbuf);
}
+const char *mp::wrbuf::c_str()
+{
+ return wrbuf_cstr(m_wrbuf);
+}
+
+const char *mp::wrbuf::c_str_null()
+{
+ return wrbuf_cstr_null(m_wrbuf);
+}
+
+bool mp::util::match_ip(const std::string &pattern, const std::string &value)
+{
+ std::vector<std::string> globitems;
+ // split may produce empty strings as results - in particular
+ // the empty pattern produces one empty string (vector size 1)
+ boost::split(globitems, pattern, boost::is_any_of(" "));
+ bool ret_value = true; // for now (if only empty values)
+ std::vector<std::string>::const_iterator it = globitems.begin();
+ for (; it != globitems.end(); it++)
+ {
+ const char *c_str = (*it).c_str();
+ if (*c_str)
+ {
+ ret_value = false; // at least one non-empty value
+ if (yaz_match_glob(c_str, value.c_str()))
+ return true;
+ }
+ }
+ return ret_value;
+}
/*
* Local variables: