summaryrefslogtreecommitdiff
path: root/ext/yaz/php_yaz.c
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2003-02-28 06:33:04 +0000
committerfoobar <sniper@php.net>2003-02-28 06:33:04 +0000
commit95d756f4673b5c33ed3232cb654ce2dbf9bcdf90 (patch)
treebca01b1509f519d16c511a17baebb67a04510b88 /ext/yaz/php_yaz.c
parent86572bd830f654244ab0c382bf5fe5f7a5ad0967 (diff)
downloadphp-git-95d756f4673b5c33ed3232cb654ce2dbf9bcdf90.tar.gz
ws & CS
Diffstat (limited to 'ext/yaz/php_yaz.c')
-rw-r--r--ext/yaz/php_yaz.c1161
1 files changed, 533 insertions, 628 deletions
diff --git a/ext/yaz/php_yaz.c b/ext/yaz/php_yaz.c
index 62fbec1750..17c2250156 100644
--- a/ext/yaz/php_yaz.c
+++ b/ext/yaz/php_yaz.c
@@ -34,9 +34,7 @@
#ifndef YAZ_VERSIONL
#error YAZ version 1.9 or later must be used.
-#endif
-
-#if YAZ_VERSIONL < 0x010900
+#elif YAZ_VERSIONL < 0x010900
#error YAZ version 1.9 or later must be used.
#endif
@@ -66,7 +64,7 @@ struct Yaz_AssociationInfo {
int order;
};
-static Yaz_Association yaz_association_mk ()
+static Yaz_Association yaz_association_mk()
{
Yaz_Association p = xmalloc (sizeof(*p));
@@ -87,13 +85,15 @@ static Yaz_Association yaz_association_mk ()
static void yaz_association_destroy (Yaz_Association p)
{
- if (!p)
- return ;
- ZOOM_resultset_destroy (p->zoom_set);
- ZOOM_scanset_destroy (p->zoom_scan);
- ZOOM_package_destroy (p->zoom_package);
- ZOOM_connection_destroy (p->zoom_conn);
- xfree (p->sort_criteria);
+ if (!p) {
+ return;
+ }
+
+ ZOOM_resultset_destroy(p->zoom_set);
+ ZOOM_scanset_destroy(p->zoom_scan);
+ ZOOM_package_destroy(p->zoom_package);
+ ZOOM_connection_destroy(p->zoom_conn);
+ xfree(p->sort_criteria);
ccl_qual_rm(&p->ccl_parser->bibset);
ccl_parser_destroy(p->ccl_parser);
}
@@ -108,11 +108,8 @@ static Yaz_Association *shared_associations;
static int order_associations;
static int le_link;
-static unsigned char third_argument_force_ref[] = {
- 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
-
-static unsigned char second_argument_force_ref[] = {
- 2, BYREF_NONE, BYREF_FORCE };
+static unsigned char third_argument_force_ref[] = { 3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
+static unsigned char second_argument_force_ref[] = { 2, BYREF_NONE, BYREF_FORCE };
function_entry yaz_functions [] = {
PHP_FE(yaz_connect, NULL)
@@ -142,8 +139,7 @@ function_entry yaz_functions [] = {
{NULL, NULL, NULL}
};
-static void get_assoc (INTERNAL_FUNCTION_PARAMETERS, pval **id,
- Yaz_Association *assocp)
+static void get_assoc(INTERNAL_FUNCTION_PARAMETERS, pval **id, Yaz_Association *assocp)
{
Yaz_Association *as = 0;
@@ -151,14 +147,12 @@ static void get_assoc (INTERNAL_FUNCTION_PARAMETERS, pval **id,
#ifdef ZTS
tsrm_mutex_lock (yaz_mutex);
#endif
- ZEND_FETCH_RESOURCE(as, Yaz_Association *, id, -1,
- "YAZ link", le_link);
- if (as && *as && (*as)->order == YAZSG(assoc_seq) && (*as)->in_use)
- {
+
+ ZEND_FETCH_RESOURCE(as, Yaz_Association *, id, -1, "YAZ link", le_link);
+
+ if (as && *as && (*as)->order == YAZSG(assoc_seq) && (*as)->in_use) {
*assocp = *as;
- }
- else
- {
+ } else {
#ifdef ZTS
tsrm_mutex_unlock (yaz_mutex);
#endif
@@ -166,11 +160,12 @@ static void get_assoc (INTERNAL_FUNCTION_PARAMETERS, pval **id,
}
}
-static void release_assoc (Yaz_Association assoc)
+static void release_assoc(Yaz_Association assoc)
{
#ifdef ZTS
- if (assoc)
+ if (assoc) {
tsrm_mutex_unlock(yaz_mutex);
+ }
#endif
}
@@ -178,9 +173,7 @@ static const char *array_lookup_string(HashTable *ht, const char *idx)
{
pval **pvalue;
- if (ht && zend_hash_find(ht, (char*) idx, strlen(idx)+1,
- (void**) &pvalue) == SUCCESS)
- {
+ if (ht && zend_hash_find(ht, (char *) idx, strlen(idx) + 1, (void **) &pvalue) == SUCCESS) {
SEPARATE_ZVAL(pvalue);
convert_to_string(*pvalue);
return (*pvalue)->value.str.val;
@@ -192,9 +185,7 @@ static long *array_lookup_long(HashTable *ht, const char *idx)
{
pval **pvalue;
- if (ht && zend_hash_find(ht, (char*) idx, strlen(idx)+1,
- (void**) &pvalue) == SUCCESS)
- {
+ if (ht && zend_hash_find(ht, (char *) idx, strlen(idx) + 1, (void **) &pvalue) == SUCCESS) {
SEPARATE_ZVAL(pvalue);
convert_to_long(*pvalue);
return &(*pvalue)->value.lval;
@@ -206,9 +197,7 @@ static long *array_lookup_bool(HashTable *ht, const char *idx)
{
pval **pvalue;
- if (ht && zend_hash_find(ht, (char*) idx, strlen(idx)+1,
- (void**) &pvalue) == SUCCESS)
- {
+ if (ht && zend_hash_find(ht, (char *) idx, strlen(idx) + 1, (void **) &pvalue) == SUCCESS) {
SEPARATE_ZVAL(pvalue);
convert_to_boolean(*pvalue);
return &(*pvalue)->value.lval;
@@ -217,50 +206,57 @@ static long *array_lookup_bool(HashTable *ht, const char *idx)
}
#if iliaa_0 /* compile warning fix */
-static int send_present (Yaz_Association t);
-static int send_sort_present (Yaz_Association t);
-static int send_sort (Yaz_Association t);
+static int send_present(Yaz_Association t);
+static int send_sort_present(Yaz_Association t);
+static int send_sort(Yaz_Association t);
#endif
-const char *option_get (Yaz_Association as, const char *name)
+static const char *option_get(Yaz_Association as, const char *name)
{
- if (!as)
+ if (!as) {
return 0;
- return ZOOM_connection_option_get (as->zoom_conn, name);
+ }
+ return ZOOM_connection_option_get(as->zoom_conn, name);
}
-int option_get_int (Yaz_Association as, const char *name, int def)
+static int option_get_int(Yaz_Association as, const char *name, int def)
{
const char *v;
- v = ZOOM_connection_option_get (as->zoom_conn, name);
- if (!v)
+
+ v = ZOOM_connection_option_get(as->zoom_conn, name);
+
+ if (!v) {
return def;
+ }
+
return atoi(v);
}
-void option_set (Yaz_Association as, const char *name, const char *value)
+static void option_set(Yaz_Association as, const char *name, const char *value)
{
- if (as && value)
- ZOOM_connection_option_set (as->zoom_conn, name, value);
+ if (as && value) {
+ ZOOM_connection_option_set(as->zoom_conn, name, value);
+ }
}
-void option_set_int (Yaz_Association as, const char *name, int v)
+static void option_set_int(Yaz_Association as, const char *name, int v)
{
- if (as)
- {
+ if (as) {
char s[30];
sprintf (s, "%d", v);
- ZOOM_connection_option_set (as->zoom_conn, name, s);
+ ZOOM_connection_option_set(as->zoom_conn, name, s);
}
}
static int strcmp_null(const char *s1, const char *s2)
{
- if (s1 == 0 && s2 == 0)
+ if (s1 == 0 && s2 == 0) {
return 0;
- if (s1 == 0 || s2 == 0)
+ }
+ if (s1 == 0 || s2 == 0) {
return -1;
+ }
return strcmp(s1, s2);
}
@@ -282,21 +278,21 @@ PHP_FUNCTION(yaz_connect)
Yaz_Association as;
otherInfo[0] = otherInfo[1] = otherInfo[2] = 0;
- if (ZEND_NUM_ARGS() == 1)
- {
- if (zend_get_parameters_ex (1, &zurl) == FAILURE)
+
+ if (ZEND_NUM_ARGS() == 1) {
+ if (zend_get_parameters_ex (1, &zurl) == FAILURE) {
WRONG_PARAM_COUNT;
- }
- else if (ZEND_NUM_ARGS() == 2)
- {
- if (zend_get_parameters_ex (2, &zurl, &user) == FAILURE)
+ }
+ } else if (ZEND_NUM_ARGS() == 2) {
+ if (zend_get_parameters_ex (2, &zurl, &user) == FAILURE) {
WRONG_PARAM_COUNT;
+ }
- if (Z_TYPE_PP(user) == IS_ARRAY)
- {
+ if (Z_TYPE_PP(user) == IS_ARRAY) {
long *persistent_val;
long *piggyback_val;
HashTable *ht = Z_ARRVAL_PP(user);
+
user_str = array_lookup_string(ht, "user");
group_str = array_lookup_string(ht, "group");
pass_str = array_lookup_string(ht, "password");
@@ -304,38 +300,34 @@ PHP_FUNCTION(yaz_connect)
proxy_str = array_lookup_string(ht, "proxy");
charset_str = array_lookup_string(ht, "charset");
persistent_val = array_lookup_bool(ht, "persistent");
- if (persistent_val)
+ if (persistent_val) {
persistent = *persistent_val;
+ }
piggyback_val = array_lookup_bool(ht, "piggyback");
- if (piggyback_val)
+ if (piggyback_val) {
piggyback = *piggyback_val;
+ }
otherInfo[0] = array_lookup_string(ht, "otherInfo0");
otherInfo[1] = array_lookup_string(ht, "otherInfo1");
otherInfo[2] = array_lookup_string(ht, "otherInfo2");
- }
- else
- {
- convert_to_string_ex (user);
+ } else {
+ convert_to_string_ex(user);
user_str = (*user)->value.str.val;
}
- }
- else
- {
+ } else {
WRONG_PARAM_COUNT;
}
- convert_to_string_ex (zurl);
+ convert_to_string_ex(zurl);
zurl_str = (*zurl)->value.str.val;
- for (cp = zurl_str; *cp && strchr("\t\n ", *cp); cp++)
- ;
- if (!*cp)
+ for (cp = zurl_str; *cp && strchr("\t\n ", *cp); cp++);
+ if (!*cp) {
RETURN_LONG(0);
-
+ }
/* see if we have it already ... */
#ifdef ZTS
- tsrm_mutex_lock (yaz_mutex);
+ tsrm_mutex_lock(yaz_mutex);
#endif
- for (i = 0; i<YAZSG(max_links); i++)
- {
+ for (i = 0; i < YAZSG(max_links); i++) {
as = shared_associations[i];
if (persistent && as && !as->in_use &&
!strcmp_null(option_get(as, "host"), zurl_str) &&
@@ -347,49 +339,46 @@ PHP_FUNCTION(yaz_connect)
!strcmp_null(option_get(as, "charset"), charset_str))
break;
}
- if (i == YAZSG(max_links))
- {
+ if (i == YAZSG(max_links)) {
/* we didn't have it (or already in use) */
int i0 = -1;
int min_order = 2000000000;
+
/* find completely free slot or the oldest one */
- for (i = 0; i<YAZSG(max_links) && shared_associations[i]; i++)
- {
+ for (i = 0; i < YAZSG(max_links) && shared_associations[i]; i++) {
as = shared_associations[i];
- if (persistent && !as->in_use && as->order < min_order)
- {
+ if (persistent && !as->in_use && as->order < min_order) {
min_order = as->order;
i0 = i;
}
}
- if (i == YAZSG(max_links))
- {
+
+ if (i == YAZSG(max_links)) {
i = i0;
- if (i == -1)
- {
+ if (i == -1) {
#ifdef ZTS
tsrm_mutex_unlock (yaz_mutex);
#endif
RETURN_LONG(0); /* no free slot */
- }
- else /* "best" free slot */
+ } else { /* "best" free slot */
yaz_association_destroy(shared_associations[i]);
+ }
}
shared_associations[i] = as = yaz_association_mk ();
- option_set (as, "proxy", proxy_str);
- option_set (as, "user", user_str);
- option_set (as, "group", group_str);
- option_set (as, "pass", pass_str);
- option_set (as, "cookie", cookie_str);
- option_set (as, "charset", charset_str);
- }
- option_set (as, "otherInfo0", otherInfo[0]);
- option_set (as, "otherInfo1", otherInfo[1]);
- option_set (as, "otherInfo2", otherInfo[2]);
- option_set (as, "clientIP", client_IP);
- option_set (as, "piggyback", piggyback ? "1" : "0");
- ZOOM_connection_connect (as->zoom_conn, zurl_str, 0);
+ option_set(as, "proxy", proxy_str);
+ option_set(as, "user", user_str);
+ option_set(as, "group", group_str);
+ option_set(as, "pass", pass_str);
+ option_set(as, "cookie", cookie_str);
+ option_set(as, "charset", charset_str);
+ }
+ option_set(as, "otherInfo0", otherInfo[0]);
+ option_set(as, "otherInfo1", otherInfo[1]);
+ option_set(as, "otherInfo2", otherInfo[2]);
+ option_set(as, "clientIP", client_IP);
+ option_set(as, "piggyback", piggyback ? "1" : "0");
+ ZOOM_connection_connect(as->zoom_conn, zurl_str, 0);
as->in_use = 1;
as->persistent = persistent;
as->order = YAZSG(assoc_seq);
@@ -397,6 +386,7 @@ PHP_FUNCTION(yaz_connect)
#ifdef ZTS
tsrm_mutex_unlock (yaz_mutex);
#endif
+
ZEND_REGISTER_RESOURCE(return_value, &shared_associations[i], le_link);
}
/* }}} */
@@ -407,15 +397,20 @@ PHP_FUNCTION(yaz_close)
{
Yaz_Association p;
pval **id;
- if (ZEND_NUM_ARGS() != 1)
+
+ if (ZEND_NUM_ARGS() != 1) {
WRONG_PARAM_COUNT;
- if (zend_get_parameters_ex (1, &id) == FAILURE)
+ }
+ if (zend_get_parameters_ex (1, &id) == FAILURE) {
RETURN_FALSE;
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (!p)
+ }
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (!p) {
RETURN_FALSE;
- release_assoc (p);
- zend_list_delete ((*id)->value.lval);
+ }
+ release_assoc(p);
+ zend_list_delete((*id)->value.lval);
+
RETURN_TRUE;
}
/* }}} */
@@ -427,58 +422,55 @@ PHP_FUNCTION(yaz_search)
char *query_str, *type_str;
pval **id, **type, **query;
Yaz_Association p;
- if (ZEND_NUM_ARGS() == 3)
- {
- if (zend_get_parameters_ex(3, &id, &type, &query) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() == 3) {
+ if (zend_get_parameters_ex(3, &id, &type, &query) == FAILURE) {
WRONG_PARAM_COUNT;
}
- }
- else
- {
+ } else {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (!p)
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (!p) {
RETURN_FALSE;
}
- convert_to_string_ex (type);
+
+ convert_to_string_ex(type);
type_str = (*type)->value.str.val;
- convert_to_string_ex (query);
+ convert_to_string_ex(query);
query_str = (*query)->value.str.val;
- ZOOM_resultset_destroy (p->zoom_set);
+ ZOOM_resultset_destroy(p->zoom_set);
p->zoom_set = 0;
- if (!strcmp (type_str, "rpn"))
- {
- ZOOM_query q = ZOOM_query_create ();
- ZOOM_query_prefix (q, query_str);
- if (p->sort_criteria)
- ZOOM_query_sortby (q, p->sort_criteria);
- xfree (p->sort_criteria);
+
+ if (!strcmp(type_str, "rpn")) {
+ ZOOM_query q = ZOOM_query_create();
+ ZOOM_query_prefix(q, query_str);
+ if (p->sort_criteria) {
+ ZOOM_query_sortby(q, p->sort_criteria);
+ }
+ xfree(p->sort_criteria);
p->sort_criteria = 0;
- p->zoom_set = ZOOM_connection_search (p->zoom_conn, q);
- ZOOM_query_destroy (q);
+ p->zoom_set = ZOOM_connection_search(p->zoom_conn, q);
+ ZOOM_query_destroy(q);
RETVAL_TRUE;
}
- if (!strcmp (type_str, "cql"))
- {
- ZOOM_query q = ZOOM_query_create ();
- ZOOM_query_cql (q, query_str);
- if (p->sort_criteria)
- ZOOM_query_sortby (q, p->sort_criteria);
+ if (!strcmp(type_str, "cql")) {
+ ZOOM_query q = ZOOM_query_create();
+ ZOOM_query_cql(q, query_str);
+ if (p->sort_criteria) {
+ ZOOM_query_sortby(q, p->sort_criteria);
+ }
xfree (p->sort_criteria);
p->sort_criteria = 0;
- p->zoom_set = ZOOM_connection_search (p->zoom_conn, q);
- ZOOM_query_destroy (q);
+ p->zoom_set = ZOOM_connection_search(p->zoom_conn, q);
+ ZOOM_query_destroy(q);
RETVAL_TRUE;
- }
- else
- {
+ } else {
RETVAL_FALSE;
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
@@ -488,25 +480,27 @@ PHP_FUNCTION(yaz_present)
{
pval **id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 1)
+
+ if (ZEND_NUM_ARGS() != 1) {
WRONG_PARAM_COUNT;
- if (zend_get_parameters_ex(1, &id) == FAILURE)
- {
+ }
+ if (zend_get_parameters_ex(1, &id) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (!p)
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (!p) {
RETURN_FALSE;
}
- if (p->zoom_set)
- {
- size_t start = option_get_int (p, "start", 0);
- size_t count = option_get_int (p, "count", 0);
- if (count > 0)
- ZOOM_resultset_records (p->zoom_set, 0 /* recs */, start, count);
+
+ if (p->zoom_set) {
+ size_t start = option_get_int(p, "start", 0);
+ size_t count = option_get_int(p, "count", 0);
+ if (count > 0) {
+ ZOOM_resultset_records(p->zoom_set, 0 /* recs */, start, count);
+ }
}
- release_assoc (p);
+ release_assoc(p);
RETURN_TRUE;
}
/* }}} */
@@ -519,46 +513,42 @@ PHP_FUNCTION(yaz_wait)
ZOOM_connection conn_ar[MAX_ASSOC];
int i, timeout = 15;
- if (ZEND_NUM_ARGS() == 1)
- {
+ if (ZEND_NUM_ARGS() == 1) {
long *val = 0;
pval **pval_options = 0;
HashTable *options_ht = 0;
- if (zend_get_parameters_ex(1, &pval_options) == FAILURE)
- {
+ if (zend_get_parameters_ex(1, &pval_options) == FAILURE) {
WRONG_PARAM_COUNT;
}
- if (Z_TYPE_PP(pval_options) != IS_ARRAY)
- {
+ if (Z_TYPE_PP(pval_options) != IS_ARRAY) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected array parameter");
RETURN_FALSE;
}
options_ht = Z_ARRVAL_PP(pval_options);
val = array_lookup_long(options_ht, "timeout");
- if (val)
+ if (val) {
timeout = *val;
+ }
}
#ifdef ZTS
- tsrm_mutex_lock (yaz_mutex);
+ tsrm_mutex_lock(yaz_mutex);
#endif
- for (i = 0; i<YAZSG(max_links); i++)
- {
+ for (i = 0; i<YAZSG(max_links); i++) {
Yaz_Association p = shared_associations[i];
- if (p && p->order == YAZSG(assoc_seq))
- {
+ if (p && p->order == YAZSG(assoc_seq)) {
char str[20];
- sprintf (str, "%d", timeout);
- ZOOM_connection_option_set (p->zoom_conn, "timeout", str);
+ sprintf(str, "%d", timeout);
+ ZOOM_connection_option_set(p->zoom_conn, "timeout", str);
conn_ar[no++] = p->zoom_conn;
}
}
#ifdef ZTS
- tsrm_mutex_unlock (yaz_mutex);
+ tsrm_mutex_unlock(yaz_mutex);
#endif
- if (no)
- while (ZOOM_event (no, conn_ar))
- ;
+ if (no) {
+ while (ZOOM_event (no, conn_ar));
+ }
RETURN_TRUE;
}
/* }}} */
@@ -569,17 +559,16 @@ PHP_FUNCTION(yaz_errno)
{
pval **id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (!p)
- {
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (!p) {
RETURN_LONG(0);
}
- RETVAL_LONG(ZOOM_connection_errcode (p->zoom_conn));
- release_assoc (p);
+ RETVAL_LONG(ZOOM_connection_errcode(p->zoom_conn));
+ release_assoc(p);
}
/* }}} */
@@ -589,23 +578,24 @@ PHP_FUNCTION(yaz_error)
{
pval **id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (p)
- {
- int code = ZOOM_connection_errcode (p->zoom_conn);
- const char *msg = ZOOM_connection_errmsg (p->zoom_conn);
- if (!code)
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (p) {
+ int code = ZOOM_connection_errcode(p->zoom_conn);
+ const char *msg = ZOOM_connection_errmsg(p->zoom_conn);
+
+ if (!code) {
msg = "";
+ }
return_value->value.str.len = strlen(msg);
- return_value->value.str.val =
- estrndup(msg, return_value->value.str.len);
+ return_value->value.str.val = estrndup(msg, return_value->value.str.len);
return_value->type = IS_STRING;
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
@@ -615,20 +605,20 @@ PHP_FUNCTION(yaz_addinfo)
{
pval **id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (p)
- {
- const char *addinfo = ZOOM_connection_addinfo (p->zoom_conn);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (p) {
+ const char *addinfo = ZOOM_connection_addinfo(p->zoom_conn);
+
return_value->value.str.len = strlen(addinfo);
- return_value->value.str.val =
- estrndup(addinfo, return_value->value.str.len);
+ return_value->value.str.val = estrndup(addinfo, return_value->value.str.len);
return_value->type = IS_STRING;
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
@@ -638,20 +628,18 @@ PHP_FUNCTION(yaz_hits)
{
pval **id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &id) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
- if (p && p->zoom_set)
- {
- RETVAL_LONG(ZOOM_resultset_size (p->zoom_set));
- }
- else
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, id, &p);
+ if (p && p->zoom_set) {
+ RETVAL_LONG(ZOOM_resultset_size(p->zoom_set));
+ } else {
RETVAL_LONG(0);
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
@@ -670,26 +658,26 @@ static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o)
r->elements = odr_malloc (o, sizeof(*r->elements) * max_elements);
r->num_elements = 0;
- record_length = atoi_n (buf, 5);
- if (record_length < 25)
+ record_length = atoi_n(buf, 5);
+ if (record_length < 25) {
return 0;
- indicator_length = atoi_n (buf+10, 1);
- identifier_length = atoi_n (buf+11, 1);
- base_address = atoi_n (buf+12, 5);
+ }
+ indicator_length = atoi_n(buf + 10, 1);
+ identifier_length = atoi_n(buf + 11, 1);
+ base_address = atoi_n(buf + 12, 5);
- length_data_entry = atoi_n (buf+20, 1);
- length_starting = atoi_n (buf+21, 1);
- length_implementation = atoi_n (buf+22, 1);
+ length_data_entry = atoi_n(buf + 20, 1);
+ length_starting = atoi_n(buf + 21, 1);
+ length_implementation = atoi_n(buf + 22, 1);
- for (entry_p = 24; buf[entry_p] != ISO2709_FS; )
- {
- entry_p += 3+length_data_entry+length_starting;
- if (entry_p >= record_length)
+ for (entry_p = 24; buf[entry_p] != ISO2709_FS; ) {
+ entry_p += 3 + length_data_entry + length_starting;
+ if (entry_p >= record_length) {
return 0;
+ }
}
- base_address = entry_p+1;
- for (entry_p = 24; buf[entry_p] != ISO2709_FS; )
- {
+ base_address = entry_p + 1;
+ for (entry_p = 24; buf[entry_p] != ISO2709_FS; ) {
Z_TaggedElement *tag;
int data_length;
int data_offset;
@@ -698,20 +686,18 @@ static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o)
char tag_str[4];
int identifier_flag = 1;
- memcpy (tag_str, buf+entry_p, 3);
+ memcpy(tag_str, buf+entry_p, 3);
entry_p += 3;
tag_str[3] = '\0';
- if ((r->num_elements + 1) >= max_elements)
- {
+ if ((r->num_elements + 1) >= max_elements) {
Z_TaggedElement **tmp = r->elements;
/* double array space, throw away old buffer (nibble memory) */
- r->elements = odr_malloc(o, sizeof(*r->elements) *
- (max_elements *= 2));
+ r->elements = odr_malloc(o, sizeof(*r->elements) * (max_elements *= 2));
memcpy(r->elements, tmp, r->num_elements * sizeof(*tmp));
}
- tag = r->elements[r->num_elements++] = odr_malloc (o, sizeof(*tag));
+ tag = r->elements[r->num_elements++] = odr_malloc(o, sizeof(*tag));
tag->tagType = odr_malloc(o, sizeof(*tag->tagType));
*tag->tagType = 3;
tag->tagOccurrence = 0;
@@ -724,69 +710,60 @@ static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o)
tag->content = odr_malloc(o, sizeof(*tag->content));
tag->content->which = Z_ElementData_subtree;
- tag->content->u.subtree =
- odr_malloc (o, sizeof(*tag->content->u.subtree));
- tag->content->u.subtree->elements =
- odr_malloc (o, sizeof(*r->elements));
+ tag->content->u.subtree = odr_malloc(o, sizeof(*tag->content->u.subtree));
+ tag->content->u.subtree->elements = odr_malloc(o, sizeof(*r->elements));
tag->content->u.subtree->num_elements = 1;
- tag = tag->content->u.subtree->elements[0] =
- odr_malloc (o, sizeof(**tag->content->u.subtree->elements));
+ tag = tag->content->u.subtree->elements[0] = odr_malloc(o, sizeof(**tag->content->u.subtree->elements));
tag->tagType = odr_malloc(o, sizeof(*tag->tagType));
*tag->tagType = 3;
tag->tagOccurrence = 0;
tag->metaData = 0;
tag->appliedVariant = 0;
- tag->tagValue = odr_malloc (o, sizeof(*tag->tagValue));
+ tag->tagValue = odr_malloc(o, sizeof(*tag->tagValue));
tag->tagValue->which = Z_StringOrNumeric_string;
tag->content = odr_malloc(o, sizeof(*tag->content));
- data_length = atoi_n (buf+entry_p, length_data_entry);
+ data_length = atoi_n(buf + entry_p, length_data_entry);
entry_p += length_data_entry;
- data_offset = atoi_n (buf+entry_p, length_starting);
+ data_offset = atoi_n(buf + entry_p, length_starting);
entry_p += length_starting;
i = data_offset + base_address;
- end_offset = i+data_length-1;
+ end_offset = i + data_length - 1;
-
- if (indicator_length > 0 && indicator_length < 5)
- {
- if (buf[i + indicator_length] != ISO2709_IDFS)
+ if (indicator_length > 0 && indicator_length < 5) {
+ if (buf[i + indicator_length] != ISO2709_IDFS) {
identifier_flag = 0;
- }
- else if (!memcmp (tag_str, "00", 2))
+ }
+ } else if (!memcmp (tag_str, "00", 2)) {
identifier_flag = 0;
-
+ }
- if (identifier_flag && indicator_length)
- {
+ if (identifier_flag && indicator_length) {
/* indicator */
- tag->tagValue->u.string = odr_malloc(o, indicator_length+1);
- memcpy (tag->tagValue->u.string, buf + i, indicator_length);
+ tag->tagValue->u.string = odr_malloc(o, indicator_length + 1);
+ memcpy(tag->tagValue->u.string, buf + i, indicator_length);
tag->tagValue->u.string[indicator_length] = '\0';
i += indicator_length;
tag->content->which = Z_ElementData_subtree;
- tag->content->u.subtree =
- odr_malloc (o, sizeof(*tag->content->u.subtree));
- tag->content->u.subtree->elements =
- odr_malloc (o, 256 * sizeof(*r->elements));
+ tag->content->u.subtree = odr_malloc(o, sizeof(*tag->content->u.subtree));
+ tag->content->u.subtree->elements = odr_malloc(o, 256 * sizeof(*r->elements));
tag->content->u.subtree->num_elements = 0;
- while (buf[i] != ISO2709_RS && buf[i] != ISO2709_FS
- && i < end_offset)
- {
+ while (buf[i] != ISO2709_RS && buf[i] != ISO2709_FS && i < end_offset) {
int i0;
/* prepare tag */
Z_TaggedElement *parent_tag = tag;
Z_TaggedElement *tag = odr_malloc (o, sizeof(*tag));
- if (parent_tag->content->u.subtree->num_elements < 256)
+ if (parent_tag->content->u.subtree->num_elements < 256) {
parent_tag->content->u.subtree->elements[
parent_tag->content->u.subtree->num_elements++] = tag;
-
+ }
+
tag->tagType = odr_malloc(o, sizeof(*tag->tagType));
*tag->tagType = 3;
tag->tagOccurrence = 0;
@@ -796,9 +773,9 @@ static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o)
tag->tagValue->which = Z_StringOrNumeric_string;
/* sub field */
- tag->tagValue->u.string = odr_malloc (o, identifier_length);
- memcpy (tag->tagValue->u.string, buf+i+1, identifier_length-1);
- tag->tagValue->u.string[identifier_length-1] = '\0';
+ tag->tagValue->u.string = odr_malloc(o, identifier_length);
+ memcpy(tag->tagValue->u.string, buf + i + 1, identifier_length - 1);
+ tag->tagValue->u.string[identifier_length - 1] = '\0';
i += identifier_length;
/* data ... */
@@ -806,34 +783,34 @@ static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o)
tag->content->which = Z_ElementData_string;
i0 = i;
- while (buf[i] != ISO2709_RS && buf[i] != ISO2709_IDFS &&
- buf[i] != ISO2709_FS && i < end_offset)
+ while ( buf[i] != ISO2709_RS &&
+ buf[i] != ISO2709_IDFS &&
+ buf[i] != ISO2709_FS && i < end_offset) {
i++;
-
- tag->content->u.string = odr_malloc (o, i - i0 + 1);
- memcpy (tag->content->u.string, buf + i0, i - i0);
+ }
+
+ tag->content->u.string = odr_malloc(o, i - i0 + 1);
+ memcpy(tag->content->u.string, buf + i0, i - i0);
tag->content->u.string[i - i0] = '\0';
}
- }
- else
- {
+ } else {
int i0 = i;
tag->tagValue->u.string = "@";
tag->content->which = Z_ElementData_string;
- while (buf[i] != ISO2709_RS && buf[i] != ISO2709_FS &&
- i < end_offset)
+ while (buf[i] != ISO2709_RS && buf[i] != ISO2709_FS && i < end_offset) {
i++;
- tag->content->u.string = odr_malloc (o, i - i0 +1);
- memcpy (tag->content->u.string, buf+i0, i - i0);
+ }
+ tag->content->u.string = odr_malloc(o, i - i0 +1);
+ memcpy(tag->content->u.string, buf + i0, i - i0);
tag->content->u.string[i-i0] = '\0';
}
}
return r;
}
-static void retval_grs1 (zval *return_value, Z_GenericRecord *p)
+static void retval_grs1(zval *return_value, Z_GenericRecord *p)
{
Z_GenericRecord *grs[20];
int eno[20];
@@ -842,8 +819,8 @@ static void retval_grs1 (zval *return_value, Z_GenericRecord *p)
array_init(return_value);
eno[level] = 0;
grs[level] = p;
- while (level >= 0)
- {
+
+ while (level >= 0) {
zval *my_zval;
Z_TaggedElement *e = 0;
Z_GenericRecord *p = grs[level];
@@ -851,65 +828,62 @@ static void retval_grs1 (zval *return_value, Z_GenericRecord *p)
char tag[256];
int taglen = 0;
- if (eno[level] >= p->num_elements)
- {
+ if (eno[level] >= p->num_elements) {
--level;
- if (level >= 0)
+ if (level >= 0) {
eno[level]++;
+ }
continue;
}
/* eno[level]++; */
*tag = '\0';
- for (i = 0; i<=level; i++)
- {
+ for (i = 0; i <= level; i++) {
int tag_type = 3;
e = grs[i]->elements[eno[i]];
- if (e->tagType)
+ if (e->tagType) {
tag_type = *e->tagType;
-
+ }
taglen = strlen(tag);
- sprintf (tag+taglen, "(%d,", tag_type);
+ sprintf(tag + taglen, "(%d,", tag_type);
taglen = strlen(tag);
- if (e->tagValue->which == Z_StringOrNumeric_string)
- {
+ if (e->tagValue->which == Z_StringOrNumeric_string) {
int len = strlen(e->tagValue->u.string);
- memcpy (tag + taglen, e->tagValue->u.string, len);
+
+ memcpy(tag + taglen, e->tagValue->u.string, len);
tag[taglen+len] = '\0';
- }
- else if (e->tagValue->which == Z_StringOrNumeric_numeric)
- {
- sprintf (tag + taglen, "%d", *e->tagValue->u.numeric);
+ } else if (e->tagValue->which == Z_StringOrNumeric_numeric) {
+ sprintf(tag + taglen, "%d", *e->tagValue->u.numeric);
}
taglen = strlen(tag);
- strcpy (tag + taglen, ")");
+ strcpy(tag + taglen, ")");
}
+
ALLOC_ZVAL(my_zval);
array_init(my_zval);
INIT_PZVAL(my_zval);
add_next_index_string(my_zval, tag, 1);
- switch (e->content->which)
- {
- case Z_ElementData_string:
- add_next_index_string (my_zval, e->content->u.string, 1);
- break;
- case Z_ElementData_numeric:
- add_next_index_long (my_zval, *e->content->u.numeric);
- break;
- case Z_ElementData_trueOrFalse:
- add_next_index_long (my_zval, *e->content->u.trueOrFalse);
- break;
- case Z_ElementData_subtree:
- level++;
- grs[level] = e->content->u.subtree;
- eno[level] = -1;
+ switch (e->content->which) {
+ case Z_ElementData_string:
+ add_next_index_string(my_zval, e->content->u.string, 1);
+ break;
+ case Z_ElementData_numeric:
+ add_next_index_long(my_zval, *e->content->u.numeric);
+ break;
+ case Z_ElementData_trueOrFalse:
+ add_next_index_long(my_zval, *e->content->u.trueOrFalse);
+ break;
+ case Z_ElementData_subtree:
+ level++;
+ grs[level] = e->content->u.subtree;
+ eno[level] = -1;
}
- zend_hash_next_index_insert (return_value->value.ht,
- (void *) &my_zval, sizeof(zval *), NULL);
+
+ zend_hash_next_index_insert(return_value->value.ht, (void *) &my_zval, sizeof(zval *), NULL);
eno[level]++;
}
}
@@ -924,66 +898,59 @@ PHP_FUNCTION(yaz_record)
int pos;
char *type;
- if (ZEND_NUM_ARGS() != 3)
+ if (ZEND_NUM_ARGS() != 3) {
WRONG_PARAM_COUNT;
- if (zend_get_parameters_ex(3, &pval_id, &pval_pos, &pval_type) == FAILURE)
- {
+ }
+ if (zend_get_parameters_ex(3, &pval_id, &pval_pos, &pval_type) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
convert_to_long_ex(pval_pos);
pos = (*pval_pos)->value.lval;
-
convert_to_string_ex(pval_type);
type = (*pval_type)->value.str.val;
- if (p && p->zoom_set)
- {
- ZOOM_record r = ZOOM_resultset_record (p->zoom_set, pos-1);
- if (!strcmp(type, "string"))
+
+ if (p && p->zoom_set) {
+ ZOOM_record r = ZOOM_resultset_record(p->zoom_set, pos-1);
+ if (!strcmp(type, "string")) {
type = "render";
- if (r)
- {
- if (!strcmp (type, "array"))
- {
- Z_External *ext = (Z_External *) ZOOM_record_get (r, "ext", 0);
+ }
+ if (r) {
+ if (!strcmp(type, "array")) {
+ Z_External *ext = (Z_External *) ZOOM_record_get(r, "ext", 0);
oident *ent = oid_getentbyoid(ext->direct_reference);
- if (ext->which == Z_External_grs1 && ent->value == VAL_GRS1)
- {
- retval_grs1 (return_value, ext->u.grs1);
- }
- else if (ext->which == Z_External_octet)
- {
+ if (ext->which == Z_External_grs1 && ent->value == VAL_GRS1) {
+ retval_grs1(return_value, ext->u.grs1);
+ } else if (ext->which == Z_External_octet) {
char *buf = (char *) (ext->u.octet_aligned->buf);
- ODR odr = odr_createmem (ODR_DECODE);
+ ODR odr = odr_createmem(ODR_DECODE);
Z_GenericRecord *rec = 0;
- switch (ent->value)
- {
- case VAL_SOIF:
- case VAL_HTML:
- break;
- case VAL_TEXT_XML:
- case VAL_APPLICATION_XML:
- /* text2grs1 (&buf, &len, t->odr_in, 0, 0); */
- break;
- default:
- rec = marc_to_grs1 (buf, odr);
+ switch (ent->value) {
+ case VAL_SOIF:
+ case VAL_HTML:
+ break;
+ case VAL_TEXT_XML:
+ case VAL_APPLICATION_XML:
+ /* text2grs1(&buf, &len, t->odr_in, 0, 0); */
+ break;
+ default:
+ rec = marc_to_grs1(buf, odr);
}
- if (rec)
- retval_grs1 (return_value, rec);
- odr_destroy (odr);
+ if (rec) {
+ retval_grs1(return_value, rec);
+ }
+ odr_destroy(odr);
}
- }
- else
- {
+ } else {
int rlen;
- const char *info = ZOOM_record_get (r, type, &rlen);
+ const char *info = ZOOM_record_get(r, type, &rlen);
return_value->value.str.len = (rlen > 0) ? rlen : 0;
- return_value->value.str.val =
- estrndup(info, return_value->value.str.len);
+ return_value->value.str.val = estrndup(info, return_value->value.str.len);
return_value->type = IS_STRING;
}
}
@@ -992,22 +959,21 @@ PHP_FUNCTION(yaz_record)
}
/* }}} */
-
/* {{{ proto int yaz_syntax(resource id, string syntax)
Set record syntax for retrieval */
PHP_FUNCTION(yaz_syntax)
{
pval **pval_id, **pval_syntax;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_syntax) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_syntax) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- convert_to_string_ex (pval_syntax);
- option_set (p, "preferredRecordSyntax", (*pval_syntax)->value.str.val);
- release_assoc (p);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ convert_to_string_ex(pval_syntax);
+ option_set(p, "preferredRecordSyntax", (*pval_syntax)->value.str.val);
+ release_assoc(p);
}
/* }}} */
@@ -1017,15 +983,16 @@ PHP_FUNCTION(yaz_element)
{
pval **pval_id, **pval_element;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_element) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_element) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- convert_to_string_ex (pval_element);
- option_set (p, "elementSetName", (*pval_element)->value.str.val);
- release_assoc (p);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+
+ convert_to_string_ex(pval_element);
+ option_set(p, "elementSetName", (*pval_element)->value.str.val);
+ release_assoc(p);
}
/* }}} */
@@ -1035,15 +1002,15 @@ PHP_FUNCTION(yaz_schema)
{
pval **pval_id, **pval_element;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_element) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_element) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- convert_to_string_ex (pval_element);
- option_set (p, "schema", (*pval_element)->value.str.val);
- release_assoc (p);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ convert_to_string_ex(pval_element);
+ option_set(p, "schema", (*pval_element)->value.str.val);
+ release_assoc(p);
}
/* }}} */
@@ -1054,16 +1021,15 @@ PHP_FUNCTION(yaz_set_option)
pval **pval_ar, **pval_name, **pval_val, **pval_id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() == 2)
- {
- if (zend_get_parameters_ex(2, &pval_id, &pval_ar) == FAILURE)
+ if (ZEND_NUM_ARGS() == 2) {
+ if (zend_get_parameters_ex(2, &pval_id, &pval_ar) == FAILURE) {
WRONG_PARAM_COUNT;
- if (Z_TYPE_PP(pval_ar) != IS_ARRAY)
+ }
+ if (Z_TYPE_PP(pval_ar) != IS_ARRAY) {
WRONG_PARAM_COUNT;
-
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p)
- {
+ }
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p) {
HashPosition pos;
HashTable *ht;
zval **ent;
@@ -1071,39 +1037,33 @@ PHP_FUNCTION(yaz_set_option)
ht = Z_ARRVAL_PP(pval_ar);
for(zend_hash_internal_pointer_reset_ex(ht, &pos);
zend_hash_get_current_data_ex(ht, (void**) &ent, &pos) == SUCCESS;
- zend_hash_move_forward_ex(ht, &pos))
- {
+ zend_hash_move_forward_ex(ht, &pos)
+ ) {
char *key;
ulong idx;
#if PHP_API_VERSION > 20010101
- int type = zend_hash_get_current_key_ex(ht, &key, 0,
- &idx, 0, &pos);
+ int type = zend_hash_get_current_key_ex(ht, &key, 0, &idx, 0, &pos);
#else
- int type = zend_hash_get_current_key_ex(ht, &key, 0,
- &idx, &pos);
+ int type = zend_hash_get_current_key_ex(ht, &key, 0, &idx, &pos);
#endif
- if (type != HASH_KEY_IS_STRING || Z_TYPE_PP(ent) != IS_STRING)
+ if (type != HASH_KEY_IS_STRING || Z_TYPE_PP(ent) != IS_STRING) {
continue;
-
+ }
option_set(p, key, (*ent)->value.str.val);
}
release_assoc (p);
}
- }
- else if (ZEND_NUM_ARGS() == 3)
- {
- if (zend_get_parameters_ex(3, &pval_id, &pval_name, &pval_val)
- == FAILURE)
+ } else if (ZEND_NUM_ARGS() == 3) {
+ if (zend_get_parameters_ex(3, &pval_id, &pval_name, &pval_val) == FAILURE) {
WRONG_PARAM_COUNT;
+ }
get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
convert_to_string_ex(pval_name);
convert_to_string_ex(pval_val);
option_set(p, (*pval_name)->value.str.val, (*pval_val)->value.str.val);
- release_assoc (p);
- }
- else
- {
+ release_assoc(p);
+ } else {
WRONG_PARAM_COUNT;
}
}
@@ -1116,76 +1076,71 @@ PHP_FUNCTION(yaz_get_option)
pval **pval_id, **pval_name;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2)
+ if (ZEND_NUM_ARGS() != 2) {
WRONG_PARAM_COUNT;
- if (zend_get_parameters_ex(2, &pval_id, &pval_name) == FAILURE)
+ }
+ if (zend_get_parameters_ex(2, &pval_id, &pval_name) == FAILURE) {
WRONG_PARAM_COUNT;
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p)
- {
+ }
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p) {
const char *name_str, *v;
convert_to_string_ex (pval_name);
name_str = (*pval_name)->value.str.val;
v = option_get(p, name_str);
- if (!v)
+ if (!v) {
v = "";
+ }
return_value->value.str.len = strlen(v);
- return_value->value.str.val =
- estrndup(v, return_value->value.str.len);
+ return_value->value.str.val = estrndup(v, return_value->value.str.len);
return_value->type = IS_STRING;
- }
- else
- {
+ } else {
RETVAL_FALSE;
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
/* {{{ proto int yaz_range(resource id, int start, int number)
Set result set start point and number of records to request */
-
PHP_FUNCTION(yaz_range)
{
pval **pval_id, **pval_start, **pval_number;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 3 ||
- zend_get_parameters_ex(3, &pval_id, &pval_start, &pval_number) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &pval_id, &pval_start, &pval_number) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- convert_to_long_ex (pval_start);
- convert_to_long_ex (pval_number);
- option_set_int (p, "start", (*pval_start)->value.lval - 1);
- option_set_int (p, "count", (*pval_number)->value.lval);
- release_assoc (p);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ convert_to_long_ex(pval_start);
+ convert_to_long_ex(pval_number);
+ option_set_int(p, "start", (*pval_start)->value.lval - 1);
+ option_set_int(p, "count", (*pval_number)->value.lval);
+ release_assoc(p);
}
/* }}} */
/* {{{ proto int yaz_sort(resource id, string sortspec)
Set result set sorting criteria */
-
PHP_FUNCTION(yaz_sort)
{
pval **pval_id, **pval_criteria;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_criteria) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_criteria) == FAILURE) {
WRONG_PARAM_COUNT;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p)
- {
- convert_to_string_ex (pval_criteria);
- xfree (p->sort_criteria);
- p->sort_criteria = xstrdup ((*pval_criteria)->value.str.val);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p) {
+ convert_to_string_ex(pval_criteria);
+ xfree(p->sort_criteria);
+ p->sort_criteria = xstrdup((*pval_criteria)->value.str.val);
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
@@ -1194,43 +1149,35 @@ const char *ill_array_lookup (void *handle, const char *name)
return array_lookup_string((HashTable *) handle, name);
}
-
/* {{{ proto int yaz_itemorder(resource id, array package)
Sends Item Order request */
-
PHP_FUNCTION(yaz_itemorder)
{
pval **pval_id, **pval_package;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_package) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_package) == FAILURE) {
WRONG_PARAM_COUNT;
}
- if (Z_TYPE_PP(pval_package) != IS_ARRAY)
- {
+ if (Z_TYPE_PP(pval_package) != IS_ARRAY) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected array parameter");
RETURN_FALSE;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p)
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p) {
ZOOM_options options = ZOOM_options_create();
- ZOOM_options_set_callback (options, ill_array_lookup,
- Z_ARRVAL_PP(pval_package));
- ZOOM_package_destroy (p->zoom_package);
- p->zoom_package = ZOOM_connection_package (p->zoom_conn, options);
+ ZOOM_options_set_callback(options, ill_array_lookup, Z_ARRVAL_PP(pval_package));
+ ZOOM_package_destroy(p->zoom_package);
+ p->zoom_package = ZOOM_connection_package(p->zoom_conn, options);
ZOOM_package_send(p->zoom_package, "itemorder");
ZOOM_options_destroy (options);
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
-
-
/* {{{ proto int yaz_scan(resource id, type, query [, flags])
Sends Scan Request */
PHP_FUNCTION(yaz_scan)
@@ -1238,47 +1185,37 @@ PHP_FUNCTION(yaz_scan)
pval **pval_id, **pval_type, **pval_query, **pval_flags = 0;
HashTable *flags_ht = 0;
Yaz_Association p;
- if (ZEND_NUM_ARGS() == 3)
- {
- if (zend_get_parameters_ex(3, &pval_id, &pval_type, &pval_query) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() == 3) {
+ if (zend_get_parameters_ex(3, &pval_id, &pval_type, &pval_query) == FAILURE) {
WRONG_PARAM_COUNT;
}
- }
- else if (ZEND_NUM_ARGS() == 4)
- {
- if (zend_get_parameters_ex(4, &pval_id, &pval_type, &pval_query,
- &pval_flags) ==
- FAILURE)
- {
+ } else if (ZEND_NUM_ARGS() == 4) {
+ if (zend_get_parameters_ex(4, &pval_id, &pval_type, &pval_query, &pval_flags) == FAILURE) {
WRONG_PARAM_COUNT;
}
- if (Z_TYPE_PP(pval_flags) != IS_ARRAY)
- {
+ if (Z_TYPE_PP(pval_flags) != IS_ARRAY) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad flags parameter");
RETURN_FALSE;
}
flags_ht = Z_ARRVAL_PP(pval_flags);
- }
- else
- {
+ } else {
WRONG_PARAM_COUNT;
}
- convert_to_string_ex (pval_type);
- convert_to_string_ex (pval_query);
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- ZOOM_scanset_destroy (p->zoom_scan);
+ convert_to_string_ex(pval_type);
+ convert_to_string_ex(pval_query);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ ZOOM_scanset_destroy(p->zoom_scan);
p->zoom_scan = 0;
- if (p)
- {
- option_set (p, "number", array_lookup_string (flags_ht, "number"));
- option_set (p, "position", array_lookup_string (flags_ht, "position"));
- option_set (p, "stepSize", array_lookup_string (flags_ht, "stepsize"));
- p->zoom_scan = ZOOM_connection_scan (p->zoom_conn,
- Z_STRVAL_PP(pval_query));}
- release_assoc (p);
+ if (p) {
+ option_set(p, "number", array_lookup_string(flags_ht, "number"));
+ option_set(p, "position", array_lookup_string(flags_ht, "position"));
+ option_set(p, "stepSize", array_lookup_string(flags_ht, "stepsize"));
+ p->zoom_scan = ZOOM_connection_scan(p->zoom_conn, Z_STRVAL_PP(pval_query));
+ }
+ release_assoc(p);
}
/* }}} */
@@ -1288,131 +1225,116 @@ PHP_FUNCTION(yaz_es_result)
{
pval **pval_id;
Yaz_Association p;
- if (ZEND_NUM_ARGS() == 1)
- {
- if (zend_get_parameters_ex(1, &pval_id) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- }
- else
- {
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &pval_id) == FAILURE) {
WRONG_PARAM_COUNT;
}
+
array_init(return_value);
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p && p->zoom_package)
- {
- const char *str = ZOOM_package_option_get(p->zoom_package,
- "targetReference");
- if (str)
- add_assoc_string (return_value, "targetReference",
- (char*)str, 1);
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p && p->zoom_package) {
+ const char *str = ZOOM_package_option_get(p->zoom_package, "targetReference");
+
+ if (str) {
+ add_assoc_string(return_value, "targetReference", (char *) str, 1);
+ }
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
-/* {{{ proto int yaz_scan_result(resource id, array options)
+/* {{{ proto int yaz_scan_result(resource id [, array options])
Inspects Scan Result */
PHP_FUNCTION(yaz_scan_result)
{
pval **pval_id, **pval_opt = 0;
Yaz_Association p;
- if (ZEND_NUM_ARGS() == 2)
- {
- if (zend_get_parameters_ex(2, &pval_id, &pval_opt) == FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() == 2) {
+ if (zend_get_parameters_ex(2, &pval_id, &pval_opt) == FAILURE) {
WRONG_PARAM_COUNT;
}
- }
- else if (ZEND_NUM_ARGS() == 1)
- {
- if (zend_get_parameters_ex(1, &pval_id) == FAILURE)
- {
+ } else if (ZEND_NUM_ARGS() == 1) {
+ if (zend_get_parameters_ex(1, &pval_id) == FAILURE) {
WRONG_PARAM_COUNT;
}
- }
- else
- {
+ } else {
WRONG_PARAM_COUNT;
}
+
array_init(return_value);
- if (pval_opt && array_init(*pval_opt) == FAILURE)
- {
+
+ if (pval_opt && array_init(*pval_opt) == FAILURE) {
RETURN_FALSE;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p && p->zoom_scan)
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p && p->zoom_scan) {
int pos = 0;
int occ, len;
- int size = ZOOM_scanset_size (p->zoom_scan);
+ int size = ZOOM_scanset_size(p->zoom_scan);
- for (pos = 0; pos < size; pos++)
- {
- const char *term =
- ZOOM_scanset_term(p->zoom_scan, pos, &occ, &len);
+ for (pos = 0; pos < size; pos++) {
+ const char *term = ZOOM_scanset_term(p->zoom_scan, pos, &occ, &len);
zval *my_zval;
+
ALLOC_ZVAL(my_zval);
array_init(my_zval);
INIT_PZVAL(my_zval);
add_next_index_string(my_zval, "term", 1);
- if (term)
- add_next_index_stringl (my_zval, (char*) term, len, 1);
- else
- add_next_index_string (my_zval, "?", 1);
- add_next_index_long (my_zval, occ);
-
- zend_hash_next_index_insert (
- return_value->value.ht, (void *) &my_zval, sizeof(zval *),
- NULL);
+ if (term) {
+ add_next_index_stringl(my_zval, (char*) term, len, 1);
+ } else {
+ add_next_index_string(my_zval, "?", 1);
+ }
+ add_next_index_long(my_zval, occ);
+ zend_hash_next_index_insert(return_value->value.ht, (void *) &my_zval, sizeof(zval *), NULL);
}
- if (pval_opt)
- {
+
+ if (pval_opt) {
const char *v;
+
add_assoc_long(*pval_opt, "number", size);
- v = ZOOM_scanset_option_get (p->zoom_scan, "stepSize");
- if (v)
+ v = ZOOM_scanset_option_get(p->zoom_scan, "stepSize");
+ if (v) {
add_assoc_long(*pval_opt, "stepsize", atoi(v));
-
- v = ZOOM_scanset_option_get (p->zoom_scan, "position");
- if (v)
+ }
+ v = ZOOM_scanset_option_get(p->zoom_scan, "position");
+ if (v) {
add_assoc_long(*pval_opt, "position", atoi(v));
-
- v = ZOOM_scanset_option_get (p->zoom_scan, "scanStatus");
- if (v)
+ }
+ v = ZOOM_scanset_option_get(p->zoom_scan, "scanStatus");
+ if (v) {
add_assoc_long(*pval_opt, "status", atoi(v));
+ }
}
}
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
/* {{{ proto int yaz_ccl_conf(resource id, array package)
Configure CCL package */
-
PHP_FUNCTION(yaz_ccl_conf)
{
pval **pval_id, **pval_package;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_package) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_package) == FAILURE) {
WRONG_PARAM_COUNT;
}
- if (Z_TYPE_PP(pval_package) != IS_ARRAY)
- {
+
+ if (Z_TYPE_PP(pval_package) != IS_ARRAY) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expected array parameter");
RETURN_FALSE;
}
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p)
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p) {
HashTable *ht = Z_ARRVAL_PP(pval_package);
HashPosition pos;
zval **ent;
@@ -1420,20 +1342,20 @@ PHP_FUNCTION(yaz_ccl_conf)
ccl_qual_rm(&p->ccl_parser->bibset);
p->ccl_parser->bibset = ccl_qual_mk();
+
for(zend_hash_internal_pointer_reset_ex(ht, &pos);
zend_hash_get_current_data_ex(ht, (void**) &ent, &pos) == SUCCESS;
- zend_hash_move_forward_ex(ht, &pos))
- {
+ zend_hash_move_forward_ex(ht, &pos)
+ ) {
ulong idx;
#if PHP_API_VERSION > 20010101
- int type = zend_hash_get_current_key_ex(ht, &key, 0,
- &idx, 0, &pos);
+ int type = zend_hash_get_current_key_ex(ht, &key, 0, &idx, 0, &pos);
#else
- int type = zend_hash_get_current_key_ex(ht, &key, 0,
- &idx, &pos);
+ int type = zend_hash_get_current_key_ex(ht, &key, 0, &idx, &pos);
#endif
- if (type != HASH_KEY_IS_STRING || Z_TYPE_PP(ent) != IS_STRING)
+ if (type != HASH_KEY_IS_STRING || Z_TYPE_PP(ent) != IS_STRING) {
continue;
+ }
ccl_qual_fitem(p->ccl_parser->bibset, (*ent)->value.str.val, key);
}
}
@@ -1443,80 +1365,67 @@ PHP_FUNCTION(yaz_ccl_conf)
/* {{{ proto int yaz_ccl_parse(resource id, string query, array res)
Parse a CCL query */
-
PHP_FUNCTION(yaz_ccl_parse)
{
pval **pval_id, **pval_query, **pval_res = 0;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 3 ||
- zend_get_parameters_ex(3, &pval_id, &pval_query, &pval_res) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &pval_id, &pval_query, &pval_res) == FAILURE) {
WRONG_PARAM_COUNT;
}
pval_destructor(*pval_res);
array_init(*pval_res);
convert_to_string_ex (pval_query);
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- if (p)
- {
+
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ if (p) {
const char *query_str = (*pval_query)->value.str.val;
struct ccl_rpn_node *rpn;
- struct ccl_token *token_list =
- ccl_parser_tokenize(p->ccl_parser, query_str);
+ struct ccl_token *token_list = ccl_parser_tokenize(p->ccl_parser, query_str);
+
rpn = ccl_parser_find(p->ccl_parser, token_list);
ccl_token_del(token_list);
-
add_assoc_long(*pval_res, "errorcode", p->ccl_parser->error_code);
- if (p->ccl_parser->error_code)
- {
- add_assoc_string(*pval_res, "errorstring",
- (char*) ccl_err_msg(p->ccl_parser->error_code),
- 1);
- add_assoc_long(*pval_res, "errorpos",
- p->ccl_parser->error_pos - query_str);
+
+ if (p->ccl_parser->error_code) {
+ add_assoc_string(*pval_res, "errorstring", (char *) ccl_err_msg(p->ccl_parser->error_code), 1);
+ add_assoc_long(*pval_res, "errorpos", p->ccl_parser->error_pos - query_str);
RETVAL_FALSE;
- }
- else
- {
+ } else {
WRBUF wrbuf_pqf = wrbuf_alloc();
ccl_pquery(wrbuf_pqf, rpn);
- add_assoc_stringl(*pval_res, "rpn", wrbuf_buf(wrbuf_pqf),
- wrbuf_len(wrbuf_pqf),1);
+ add_assoc_stringl(*pval_res, "rpn", wrbuf_buf(wrbuf_pqf), wrbuf_len(wrbuf_pqf), 1);
wrbuf_free(wrbuf_pqf, 1);
RETVAL_TRUE;
}
ccl_rpn_delete(rpn);
- }
- else
+ } else {
RETVAL_FALSE;
- release_assoc (p);
+ }
+ release_assoc(p);
}
/* }}} */
/* {{{ proto int yaz_database (resource id, string databases)
Specify the databases within a session */
-
PHP_FUNCTION(yaz_database)
{
pval **pval_id, **pval_database;
Yaz_Association p;
- if (ZEND_NUM_ARGS() != 2 ||
- zend_get_parameters_ex(2, &pval_id, &pval_database) ==
- FAILURE)
- {
+
+ if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pval_id, &pval_database) == FAILURE) {
WRONG_PARAM_COUNT;
}
- convert_to_string_ex (pval_database);
- get_assoc (INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
- option_set (p, "databaseName", (*pval_database)->value.str.val);
+
+ convert_to_string_ex(pval_database);
+ get_assoc(INTERNAL_FUNCTION_PARAM_PASSTHRU, pval_id, &p);
+ option_set(p, "databaseName", (*pval_database)->value.str.val);
RETVAL_TRUE;
- release_assoc (p);
+ release_assoc(p);
}
/* }}} */
-
/* {{{ php_yaz_init_globals
*/
static void php_yaz_init_globals(zend_yaz_globals *yaz_globals)
@@ -1525,14 +1434,12 @@ static void php_yaz_init_globals(zend_yaz_globals *yaz_globals)
}
/* }}} */
-void yaz_close_session(Yaz_Association *as TSRMLS_DC)
+static void yaz_close_session(Yaz_Association *as TSRMLS_DC)
{
- if (*as && (*as)->order == YAZSG(assoc_seq))
- {
- if ((*as)->persistent)
+ if (*as && (*as)->order == YAZSG(assoc_seq)) {
+ if ((*as)->persistent) {
(*as)->in_use = 0;
- else
- {
+ } else {
yaz_association_destroy(*as);
*as = 0;
}
@@ -1542,19 +1449,15 @@ void yaz_close_session(Yaz_Association *as TSRMLS_DC)
static void yaz_close_link (zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
Yaz_Association *as = (Yaz_Association *) rsrc->ptr;
- yaz_close_session (as TSRMLS_CC);
+ yaz_close_session(as TSRMLS_CC);
}
/* {{{ PHP_INI_BEGIN
*/
PHP_INI_BEGIN()
- STD_PHP_INI_ENTRY("yaz.max_links", "100", PHP_INI_ALL,
- OnUpdateInt, max_links,
- zend_yaz_globals, yaz_globals)
- STD_PHP_INI_ENTRY("yaz.log_file", NULL, PHP_INI_ALL,
- OnUpdateString, log_file,
- zend_yaz_globals, yaz_globals)
- PHP_INI_END()
+ STD_PHP_INI_ENTRY("yaz.max_links", "100", PHP_INI_ALL, OnUpdateInt, max_links, zend_yaz_globals, yaz_globals)
+ STD_PHP_INI_ENTRY("yaz.log_file", NULL, PHP_INI_ALL, OnUpdateString, log_file, zend_yaz_globals, yaz_globals)
+PHP_INI_END()
/* }}} */
PHP_MINIT_FUNCTION(yaz)
@@ -1564,24 +1467,25 @@ PHP_MINIT_FUNCTION(yaz)
#ifdef ZTS
yaz_mutex = tsrm_mutex_alloc();
#endif
+
ZEND_INIT_MODULE_GLOBALS(yaz, php_yaz_init_globals, NULL);
REGISTER_INI_ENTRIES();
- if (YAZSG(log_file))
- {
+ if (YAZSG(log_file)) {
yaz_log_init_level(LOG_ALL);
yaz_log_init_file(YAZSG(log_file));
+ } else {
+ yaz_log_init_level(0);
}
- else
- yaz_log_init_level (0);
- le_link = zend_register_list_destructors_ex (yaz_close_link, 0,
- "YAZ link", module_number);
+ le_link = zend_register_list_destructors_ex (yaz_close_link, 0, "YAZ link", module_number);
+
order_associations = 1;
- shared_associations = xmalloc (sizeof(*shared_associations) * MAX_ASSOC);
- for (i = 0; i<MAX_ASSOC; i++)
+ shared_associations = xmalloc(sizeof(*shared_associations) * MAX_ASSOC);
+ for (i = 0; i < MAX_ASSOC; i++) {
shared_associations[i] = 0;
+ }
return SUCCESS;
}
@@ -1589,11 +1493,11 @@ PHP_MSHUTDOWN_FUNCTION(yaz)
{
int i;
- if (shared_associations)
- {
- for (i = 0; i<MAX_ASSOC; i++)
+ if (shared_associations) {
+ for (i = 0; i < MAX_ASSOC; i++) {
yaz_association_destroy (shared_associations[i]);
- xfree (shared_associations);
+ }
+ xfree(shared_associations);
shared_associations = 0;
nmem_exit();
}
@@ -1624,13 +1528,14 @@ PHP_RSHUTDOWN_FUNCTION(yaz)
PHP_RINIT_FUNCTION(yaz)
{
char pidstr[20];
- sprintf (pidstr, "%ld", (long) getpid());
+
+ sprintf(pidstr, "%ld", (long) getpid());
#ifdef ZTS
- tsrm_mutex_lock (yaz_mutex);
+ tsrm_mutex_lock(yaz_mutex);
#endif
YAZSG(assoc_seq) = order_associations++;
#ifdef ZTS
- tsrm_mutex_unlock (yaz_mutex);
+ tsrm_mutex_unlock(yaz_mutex);
#endif
yaz_log_init_prefix(pidstr);
return SUCCESS;