Skip to content

Commit da9448f

Browse files
committed
Added upload progress feedback in session data as describied
in RFC : http://wiki.php.net/rfc/session_upload_progress
1 parent d5a6464 commit da9448f

File tree

2 files changed

+350
-2
lines changed

2 files changed

+350
-2
lines changed

ext/session/php_session.h

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,26 @@ typedef enum {
9595
php_session_active
9696
} php_session_status;
9797

98+
typedef struct _php_session_rfc1867_progress {
99+
100+
size_t sname_len;
101+
zval sid;
102+
smart_str key;
103+
104+
long update_step;
105+
long next_update;
106+
double next_update_time;
107+
zend_bool cancel_upload;
108+
zend_bool apply_trans_sid;
109+
size_t content_length;
110+
111+
zval *data; /* the array exported to session data */
112+
zval *post_bytes_processed; /* data["bytes_processed"] */
113+
zval *files; /* data["files"] array */
114+
zval *current_file; /* array of currently uploading file */
115+
zval *current_file_bytes_processed;
116+
} php_session_rfc1867_progress;
117+
98118
typedef struct _php_ps_globals {
99119
char *save_path;
100120
char *session_name;
@@ -143,6 +163,13 @@ typedef struct _php_ps_globals {
143163
int send_cookie;
144164
int define_sid;
145165
zend_bool invalid_session_id; /* allows the driver to report about an invalid session id and request id regeneration */
166+
167+
php_session_rfc1867_progress *rfc1867_progress;
168+
zend_bool rfc1867_enabled; /* session.upload_progress.enabled */
169+
smart_str rfc1867_prefix; /* session.upload_progress.prefix */
170+
smart_str rfc1867_name; /* session.upload_progress.name */
171+
long rfc1867_freq; /* session.upload_progress.freq */
172+
double rfc1867_min_freq; /* session.upload_progress.min_freq */
146173
} php_ps_globals;
147174

148175
typedef php_ps_globals zend_ps_globals;

0 commit comments

Comments
 (0)