#define PS_CLOSE_ARGS void **mod_data
#define PS_READ_ARGS void **mod_data, const char *key, char **val, int *vallen
#define PS_WRITE_ARGS void **mod_data, const char *key, const char *val, const int vallen
-#define PS_DELETE_ARGS void **mod_data, const char *key
+#define PS_DESTROY_ARGS void **mod_data, const char *key
#define PS_GC_ARGS void **mod_data, int maxlifetime
typedef struct ps_module_struct {
int (*close)(PS_CLOSE_ARGS);
int (*read)(PS_READ_ARGS);
int (*write)(PS_WRITE_ARGS);
- int (*delete)(PS_DELETE_ARGS);
+ int (*destroy)(PS_DESTROY_ARGS);
int (*gc)(PS_GC_ARGS);
} ps_module;
#define PS_CLOSE_FUNC(x) int _ps_close_##x(PS_CLOSE_ARGS)
#define PS_READ_FUNC(x) int _ps_read_##x(PS_READ_ARGS)
#define PS_WRITE_FUNC(x) int _ps_write_##x(PS_WRITE_ARGS)
-#define PS_DELETE_FUNC(x) int _ps_delete_##x(PS_DELETE_ARGS)
+#define PS_DESTROY_FUNC(x) int _ps_delete_##x(PS_DESTROY_ARGS)
#define PS_GC_FUNC(x) int _ps_gc_##x(PS_GC_ARGS)
#define PS_FUNCS(x) \
PS_CLOSE_FUNC(x); \
PS_READ_FUNC(x); \
PS_WRITE_FUNC(x); \
- PS_DELETE_FUNC(x); \
+ PS_DESTROY_FUNC(x); \
PS_GC_FUNC(x)
static int php_mshutdown_session(SHUTDOWN_FUNC_ARGS);
static int php_rshutdown_session(SHUTDOWN_FUNC_ARGS);
static void php_info_isapi(ZEND_MODULE_INFO_FUNC_ARGS);
-static void php_rshutdown_globals(PSLS_D);
+static void php_rshutdown_session_globals(PSLS_D);
zend_module_entry session_module_entry = {
"session",
if(PS(mod_data) && PS(gc_probability) > 0) {
srand(time(NULL));
- nrand = (100.0*rand()/RAND_MAX);
+ nrand = (int) (100.0*rand()/RAND_MAX);
if(nrand >= PS(gc_probability))
PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime));
}
if(PS(nr_open_sessions) == 0)
return;
- PS(mod)->delete(&PS(mod_data), &PS(id));
- php_rshutdown_globals(PSLS_C);
+ PS(mod)->destroy(&PS(mod_data), PS(id));
+ php_rshutdown_session_globals(PSLS_C);
PS(nr_open_sessions)--;
}
}
/* }}} */
-void php_rinit_globals(PSLS_D)
+static void php_rinit_session_globals(PSLS_D)
{
PS(mod) = _php_find_ps_module(INI_STR("session_module_name") PSLS_CC);
PS(mod_data) = NULL;
}
-void php_rshutdown_globals(PSLS_D)
+static void php_rshutdown_session_globals(PSLS_D)
{
if(PS(mod_data))
PS(mod)->close(&PS(mod_data));
{
PSLS_FETCH();
- php_rinit_globals(PSLS_C);
+ php_rinit_session_globals(PSLS_C);
if(INI_INT("session_auto_start")) {
_php_session_start(PSLS_C);
_php_session_save_current_state(PSLS_C);
PS(nr_open_sessions)--;
}
- php_rshutdown_globals(PSLS_C);
+ php_rshutdown_session_globals(PSLS_C);
return SUCCESS;
}
void php_request_shutdown(void *dummy)
{
-#if FHTTPD
- char tmpline[128];
- int i, serverdefined;
-#endif
CLS_FETCH();
ELS_FETCH();
PLS_FETCH();
php3_unset_timeout();
-
#if CGI_BINARY
fflush(stdout);
if(request_info.php_argv0) {
request_info.php_argv0 = NULL;
}
#endif
-#if FHTTPD
- if (response) {
- if (!headermade) {
- makestandardheader(response, 200, "text/html", "fhttpd", req && req->keepalive);
- } else {
- if (headerfirstline)
- putlinetoheader(response, headerfirstline);
- else
- putlinetoheader(response, "HTTP/1.0 200 OK\r\n");
- serverdefined = 0;
- for (i = 0; i < headerlines; i++) {
- if (!strncmp(currentheader[i], "Server:", 7))
- serverdefined = 1;
- putlinetoheader(response, currentheader[i]);
- }
- if (!serverdefined)
- putlinetoheader(response, "Server: fhttpd\r\n");
- if (response->datasize) {
- sprintf(tmpline, "Content-Length: %ld\r\n", response->datasize);
- putlinetoheader(response, tmpline);
- if (req && req->keepalive)
- putlinetoheader(response,
- "Connection: Keep-Alive\r\nKeep-Alive: max=0, timeout=30\r\n");
- }
- php3_fhttpd_free_header();
- }
- sendresponse(server, response);
- if (response->datasize)
- finishresponse(server, response);
- else
- finishdropresponse(server, response);
- deleteresponse(response);
- }
- response = NULL;
- if (req)
- deleterequest(req);
- req = NULL;
-#endif
-#if USE_SAPI
- sapi_rqst->flush(sapi_rqst->scid);
-#endif
}
_php3_hash_update(&EG(symbol_table), "PHP_SELF", sizeof("PHP_SELF"), (void *) &tmp, sizeof(pval *), NULL);
}
#else
-#if FHTTPD
- {
- int i, j;
- if (req) {
- for (i = 0; i < req->nlines; i++) {
- if (req->lines[i].paramc > 1 && req->lines[i].params[0] && req->lines[i].params[1]) {
- tmp = (pval *) emalloc(sizeof(pval));
- tmp->value.str.len = strlen(req->lines[i].params[1]);
- tmp->value.str.val = estrndup(req->lines[i].params[1], tmp->value.str.len);
- tmp->type = IS_STRING;
- tmp->refcount=1;
- tmp->is_ref=0;
- _php3_hash_update(&EG(symbol_table), req->lines[i].params[0],
- strlen(req->lines[i].params[0]) + 1, &tmp,
- sizeof(pval *), NULL);
- }
- }
- if (req->script_name_resolved) {
- i = strlen(req->script_name_resolved);
- tmp = (pval *) emalloc(sizeof(pval));
- tmp->value.str.len = i;
- tmp->value.str.val = estrndup(req->script_name_resolved, i);
- tmp->type = IS_STRING;
- tmp->refcount=1;
- tmp->is_ref=0;
- _php3_hash_update(&EG(symbol_table), "PATH_TRANSLATED",
- sizeof("PATH_TRANSLATED"),
- &tmp, sizeof(pval *), NULL);
- if (req->script_name) {
- j = i - strlen(req->script_name);
- if (j > 0
- && !strcmp(req->script_name_resolved + j,
- req->script_name)) {
- tmp = (pval *) emalloc(sizeof(pval));
- tmp->value.str.len = j;
- tmp->value.str.val = estrndup(req->script_name_resolved, j);
- tmp->type = IS_STRING;
- tmp->refcount=1;
- tmp->is_ref=0;
- _php3_hash_update(&EG(symbol_table), "DOCUMENT_ROOT",
- sizeof("DOCUMENT_ROOT"),
- &tmp, sizeof(pval *), NULL);
- }
- }
- }
- }
- }
-#endif
{
/* Build the special-case PHP_SELF variable for the CGI version */
char *pi;