Skip to content

Commit 7916977

Browse files
committed
Merge pull request #21 from zelgerj/master
added appserver_session_init function
2 parents 9b39c14 + bfa0f00 commit 7916977

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

build.default.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
# ---- General Settings ---------------------------------------------------------
1111
php.ext.name = appserver
1212

13-
release.version = 0.1.10
13+
release.version = 0.1.11
1414
release.stability = beta
15-
api.version = 0.1.10
15+
api.version = 0.1.11
1616
api.stability = beta
1717

1818
php.version = 5.6.0beta4

src/appserver.c

+28
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "php.h"
2727
#include "php_ini.h"
2828
#include "ext/standard/info.h"
29+
#include "ext/session/php_session.h"
2930
#include "php_appserver.h"
3031
#include "TSRM.h"
3132
#include "SAPI.h"
@@ -57,6 +58,7 @@ const zend_function_entry appserver_functions[] = {
5758
PHP_FE(appserver_set_raw_post_data, NULL)
5859
PHP_FE(appserver_get_http_response_code, NULL)
5960
PHP_FE(appserver_get_envs, NULL)
61+
PHP_FE(appserver_session_init, NULL)
6062
PHP_FE_END
6163
};
6264

@@ -329,6 +331,32 @@ PHP_FUNCTION(appserver_set_raw_post_data)
329331

330332
}
331333

334+
/* {{{ proto boolean appserver_session_init()
335+
init session state at runtime ... /* }}} */
336+
PHP_FUNCTION(appserver_session_init)
337+
{
338+
if (PS(http_session_vars)) {
339+
zval_ptr_dtor(&PS(http_session_vars));
340+
PS(http_session_vars) = NULL;
341+
}
342+
/* Do NOT destroy PS(mod_user_names) here! */
343+
if (PS(mod_data) || PS(mod_user_implemented)) {
344+
zend_try {
345+
PS(mod)->s_close(&PS(mod_data) TSRMLS_CC);
346+
} zend_end_try();
347+
}
348+
if (PS(id)) {
349+
efree(PS(id));
350+
}
351+
352+
PS(id) = NULL;
353+
PS(session_status) = php_session_none;
354+
PS(mod_data) = NULL;
355+
PS(mod_user_is_open) = 0;
356+
/* Do NOT init PS(mod_user_names) here! */
357+
PS(http_session_vars) = NULL;
358+
}
359+
332360
/* {{{ proto boolean appserver_redefine(string $constant [, mixed $value])
333361
redefine/undefine constant at runtime ... /* }}} */
334362
PHP_FUNCTION(appserver_redefine)

src/php_appserver.h

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ PHP_FUNCTION(appserver_redefine);
7474
PHP_FUNCTION(appserver_set_raw_post_data);
7575
PHP_FUNCTION(appserver_get_http_response_code);
7676
PHP_FUNCTION(appserver_get_envs);
77+
PHP_FUNCTION(appserver_session_init);
7778

7879
ZEND_BEGIN_MODULE_GLOBALS(appserver)
7980
appserver_llist *headers;

0 commit comments

Comments
 (0)