Date: Wed Apr 23 17:15:10 CEST 2003
User: Derick Rethans
Directory: php_srm
Log Message:
[0.50]
- Hopefully fix the session problems
#- Not tested yet, but it should atleast compile now
Modified files:
php_srm/srm_session.c (version: 1.15)
[FILE: /php_srm/srm_session.c]
--- php_srm/srm_session.c:1.14 Wed Jan 08 19:44:51 2003 GMT
+++ php_srm/srm_session.c Wed Apr 23 13:15:09 2003 GMT
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cvstemp,v 1.14 2003/01/08 20:44:51 derick Exp $ */
+/* $Id: cvstemp,v 1.15 2003/04/23 15:15:09 derick Exp $ */
#include "php.h"
#include "ext/session/php_session.h"
@@ -139,22 +139,32 @@
{
PS_SRM_DATA;
struct srm_value *ret;
- struct srm_value *dat;
- srm_llist *data_list;
+ SRM_LIST(params)
+ SRM_LIST(indices)
- ret = srm_data_retrieve (SRM_ST_SESSION, data->connect_data, data->connect_data.sess_key, 16);
- if (SRM_IS_ERROR (ret) || VALP_IS_NULL (ret)) {
+ SRM_LIST_INIT(params);
+ SRM_LIST_ADD(STR, params, "session");
+
+ SRM_LIST_INIT(indices);
+ SRM_LIST_ADD(STR, indices, data->connect_data.sess_key);
+ indices->ref_count++;
+ SRM_LIST_ADD_LST(params, indices);
+
+ ret = srm_do_command(data->connect_data, "get_data", params);
+
+ srm_value_free(params);
+ srm_value_free(indices);
+
+ if (SRM_IS_ERROR(ret) || VALP_IS_NULL(ret)) {
*val = estrdup ("");
*vallen = 0;
return SUCCESS;
}
- data_list = SRMVALP_LIST (ret);
- dat = SRM_LLIST_VALP (SRM_LLIST_HEAD (data_list));
- *val = emalloc (dat->value_length);
- memcpy (*val, dat->s_value, dat->value_length);
- *vallen = dat->value_length;
- srm_value_free (ret);
+ *val = emalloc(ret->value_length);
+ memcpy(*val, ret->s_value, ret->value_length);
+ *vallen = ret->value_length;
+ srm_value_free(ret);
return SUCCESS;
}
@@ -162,12 +172,33 @@
PS_WRITE_FUNC(srm)
{
PS_SRM_DATA;
- SRM_LIST (dat);
-
- SRM_LIST_INIT (dat);
- SRM_LIST_ADD_BINSTR (dat, val, vallen);
- srm_data_store (SRM_ST_SESSION, data->connect_data, data->connect_data.sess_key, 16, dat);
- SRM_LIST_FREE (dat);
+ SRM_LIST(params)
+ SRM_LIST(indices)
+ srm_value *dat;
+ srm_value *ret_val;
+
+ SRM_LIST_INIT(params);
+ SRM_LIST_ADD(STR, params, "session");
+
+ SRM_LIST_INIT(indices);
+ SRM_LIST_ADD(STR, indices, data->connect_data.sess_key);
+ indices->ref_count++;
+ SRM_LIST_ADD_LST(params, indices);
+
+ dat = srm_value_init();
+ dat->type = SRM_VALUE_STR;
+ dat->s_value = malloc(vallen);
+ memcpy(dat->s_value, val, vallen);
+ dat->value_length = vallen;
+ dat->ref_count++;
+ SRM_LIST_ADD_SVAL(params, dat);
+
+ ret_val = srm_do_command(data->connect_data, "set_data", params);
+
+ srm_value_free(params);
+ srm_value_free(indices);
+ srm_value_free(dat);
+ srm_value_free(ret_val);
return SUCCESS;
}
@@ -175,8 +206,23 @@
PS_DESTROY_FUNC(srm)
{
PS_SRM_DATA;
-
- srm_data_delete (SRM_ST_SESSION, data->connect_data, data->connect_data.sess_key, 16);
+ SRM_LIST(params)
+ SRM_LIST(indices)
+ srm_value *ret_val;
+
+ SRM_LIST_INIT(params);
+ SRM_LIST_ADD(STR, params, "session");
+
+ SRM_LIST_INIT(indices);
+ SRM_LIST_ADD(STR, indices, data->connect_data.sess_key);
+ indices->ref_count++;
+ SRM_LIST_ADD_LST(params, indices);
+
+ ret_val = srm_do_command(data->connect_data, "remove_data", params);
+
+ srm_value_free(params);
+ srm_value_free(indices);
+ srm_value_free(ret_val);
return SUCCESS;
}
Received on Wed Apr 23 17:15:13 2003
This archive was generated by hypermail 2.1.8 : Tue Jan 06 2009 - 09:00:03 CET