[srm-cvs] CVS Update: - Hopefully fix the session problems

From: <d.rethans[@]jdimedia.nl>
Date: Wed Apr 23 2003 - 17:15:10 CEST

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