projects
/
metaproxy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Int casts (Odr_int stuff)
[metaproxy-moved-to-github.git]
/
src
/
filter_zoom.cpp
diff --git
a/src/filter_zoom.cpp
b/src/filter_zoom.cpp
index
f2b8f54
..
2c70e94
100644
(file)
--- a/
src/filter_zoom.cpp
+++ b/
src/filter_zoom.cpp
@@
-17,6
+17,10
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "config.hpp"
*/
#include "config.hpp"
+
+#include <stdlib.h>
+#include <sys/types.h>
+#include <fcntl.h>
#include "filter_zoom.hpp"
#include <yaz/zoom.h>
#include <yaz/yaz-version.h>
#include "filter_zoom.hpp"
#include <yaz/zoom.h>
#include <yaz/yaz-version.h>
@@
-49,7
+53,8
@@
namespace yf = mp::filter;
namespace metaproxy_1 {
namespace filter {
namespace metaproxy_1 {
namespace filter {
- struct Zoom::Searchable : boost::noncopyable {
+ class Zoom::Searchable : boost::noncopyable {
+ public:
std::string authentication;
std::string cfAuth;
std::string cfProxy;
std::string authentication;
std::string cfAuth;
std::string cfProxy;
@@
-365,6
+370,8
@@
yf::Zoom::Impl::Impl() :
apdu_log(false), element_transform("pz2") , element_raw("raw")
{
bibset = ccl_qual_mk();
apdu_log(false), element_transform("pz2") , element_raw("raw")
{
bibset = ccl_qual_mk();
+
+ srand((unsigned int) time(0));
}
yf::Zoom::Impl::~Impl()
}
yf::Zoom::Impl::~Impl()
@@
-521,7
+528,7
@@
void yf::Zoom::Impl::configure_local_records(const xmlNode *ptr, bool test_only)
void yf::Zoom::Impl::configure(const xmlNode *ptr, bool test_only,
const char *path)
{
void yf::Zoom::Impl::configure(const xmlNode *ptr, bool test_only,
const char *path)
{
- content_tmp_file = "/tmp/mp_content_proxy.";
+ content_tmp_file = "/tmp/cf.XXXXXX.p";
if (path && *path)
{
file_path = path;
if (path && *path)
{
file_path = path;
@@
-732,6
+739,10
@@
yf::Zoom::BackendPtr yf::Zoom::Frontend::get_backend_from_databases(
if (m_p->apdu_log)
b->set_option("apdulog", "1");
if (m_p->apdu_log)
b->set_option("apdulog", "1");
+ if (sptr->piggyback)
+ b->set_option("count", "10");
+ b->set_option("piggyback", sptr->piggyback ? "1" : "0");
+
std::string authentication = sptr->authentication;
std::string proxy = sptr->cfProxy;
std::string authentication = sptr->authentication;
std::string proxy = sptr->cfProxy;
@@
-831,13
+842,19
@@
yf::Zoom::BackendPtr yf::Zoom::Frontend::get_backend_from_databases(
}
if (b->sptr->contentConnector.length())
{
}
if (b->sptr->contentConnector.length())
{
- int fd;
-
char *fname = (char *) xmalloc(m_p->content_tmp_file.length() + 8);
strcpy(fname, m_p->content_tmp_file.c_str());
char *fname = (char *) xmalloc(m_p->content_tmp_file.length() + 8);
strcpy(fname, m_p->content_tmp_file.c_str());
- strcat(fname, "XXXXXX");
- fd = mkstemp(fname);
-
+ char *xx = strstr(fname, "XXXXXX");
+ if (!xx)
+ {
+ xx = fname + strlen(fname);
+ strcat(fname, "XXXXXX");
+ }
+ char tmp_char = xx[6];
+ sprintf(xx, "%06d", ((unsigned) rand()) % 1000000);
+ xx[6] = tmp_char;
+
+ int fd = creat(fname, 0666);
if (fd == -1)
{
yaz_log(YLOG_WARN|YLOG_ERRNO, "create %s", fname);
if (fd == -1)
{
yaz_log(YLOG_WARN|YLOG_ERRNO, "create %s", fname);
@@
-848,7
+865,7
@@
yf::Zoom::BackendPtr yf::Zoom::Frontend::get_backend_from_databases(
BackendPtr backend_null;
return backend_null;
}
BackendPtr backend_null;
return backend_null;
}
- b->content_session_id.assign(fname + (strlen(fname) - 6));
+ b->content_session_id.assign(xx, 6);
WRBUF w = wrbuf_alloc();
wrbuf_puts(w, "#content_proxy\n");
wrbuf_printf(w, "connector: %s\n", b->sptr->contentConnector.c_str());
WRBUF w = wrbuf_alloc();
wrbuf_puts(w, "#content_proxy\n");
wrbuf_printf(w, "connector: %s\n", b->sptr->contentConnector.c_str());
@@
-866,7
+883,6
@@
yf::Zoom::BackendPtr yf::Zoom::Frontend::get_backend_from_databases(
yaz_log(YLOG_LOG, "file %s created\n", fname);
xfree(fname);
}
yaz_log(YLOG_LOG, "file %s created\n", fname);
xfree(fname);
}
-
std::string url;
if (sptr->sru.length())
std::string url;
if (sptr->sru.length())
@@
-912,7
+928,7
@@
Z_Records *yf::Zoom::Frontend::get_records(Odr_int start,
number_to_present = 10000;
ZOOM_record *recs = (ZOOM_record *)
number_to_present = 10000;
ZOOM_record *recs = (ZOOM_record *)
- odr_malloc(odr, number_to_present * sizeof(*recs));
+ odr_malloc(odr, (size_t) number_to_present * sizeof(*recs));
char oid_name_str[OID_STR_MAX];
const char *syntax_name = 0;
char oid_name_str[OID_STR_MAX];
const char *syntax_name = 0;
@@
-961,7
+977,7
@@
Z_Records *yf::Zoom::Frontend::get_records(Odr_int start,
b->present(start, number_to_present, recs, error, addinfo, odr);
b->present(start, number_to_present, recs, error, addinfo, odr);
- Odr_int i = 0;
+ int i = 0;
if (!*error)
{
for (i = 0; i < number_to_present; i++)
if (!*error)
{
for (i = 0; i < number_to_present; i++)