Changeset 228 for eaccelerator/trunk/content.c
- Timestamp:
- 07/19/06 11:13:56 (2 years ago)
- Files:
-
- eaccelerator/trunk/content.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
eaccelerator/trunk/content.c
r201 r228 138 138 sapi_add_header("Status: 304 Not Modified", sizeof("Status: 304 Not Modified") - 1, 1) == SUCCESS) { 139 139 zval_dtor(return_value); 140 return_value->value.str.val= empty_string;141 return_value->value.str.len= 0;140 Z_STRVAL_P(return_value) = empty_string; 141 Z_STRLEN_P(return_value) = 0; 142 142 /*fprintf(stderr,"\nnot-modified\n");*/ 143 143 return 1; … … 281 281 gzstring.type == IS_STRING) { 282 282 if (gzip) { 283 char* ret = emalloc( gzstring.value.str.len+13);283 char* ret = emalloc(Z_STRLEN(gzstring) + 13); 284 284 unsigned long crc32 = eaccelerator_crc32(Z_STRVAL_P(return_value),Z_STRLEN_P(return_value)); 285 285 ret[0] = '\x1f'; … … 293 293 ret[8] = '\x00'; 294 294 ret[9] = '\x03'; 295 memcpy(ret +10,gzstring.value.str.val+2,gzstring.value.str.len-6);296 ret[ gzstring.value.str.len+4] = (char)(crc32 & 0xff);297 ret[ gzstring.value.str.len+5] = (char)((crc32 >> 8) & 0xff);298 ret[ gzstring.value.str.len+6] = (char)((crc32 >> 16) & 0xff);299 ret[ gzstring.value.str.len+7] = (char)((crc32 >> 24) & 0xff);300 ret[ gzstring.value.str.len+8] = (char)(return_value->value.str.len& 0xff);301 ret[ gzstring.value.str.len+9] = (char)((return_value->value.str.len>> 8) & 0xff);302 ret[ gzstring.value.str.len+10] = (char)((return_value->value.str.len>> 16) & 0xff);303 ret[ gzstring.value.str.len+11] = (char)((return_value->value.str.len>> 24) & 0xff);304 ret[ gzstring.value.str.len+12] = '\x00';305 STR_FREE( gzstring.value.str.val);306 gzstring.value.str.val= ret;307 gzstring.value.str.len+= 12;295 memcpy(ret + 10, Z_STRVAL(gzstring) + 2, Z_STRLEN(gzstring) - 6); 296 ret[Z_STRLEN(gzstring)+4] = (char)(crc32 & 0xff); 297 ret[Z_STRLEN(gzstring)+5] = (char)((crc32 >> 8) & 0xff); 298 ret[Z_STRLEN(gzstring)+6] = (char)((crc32 >> 16) & 0xff); 299 ret[Z_STRLEN(gzstring)+7] = (char)((crc32 >> 24) & 0xff); 300 ret[Z_STRLEN(gzstring)+8] = (char)(Z_STRLEN_P(return_value) & 0xff); 301 ret[Z_STRLEN(gzstring)+9] = (char)((Z_STRLEN_P(return_value) >> 8) & 0xff); 302 ret[Z_STRLEN(gzstring)+10] = (char)((Z_STRLEN_P(return_value) >> 16) & 0xff); 303 ret[Z_STRLEN(gzstring)+11] = (char)((Z_STRLEN_P(return_value) >> 24) & 0xff); 304 ret[Z_STRLEN(gzstring)+12] = '\x00'; 305 STR_FREE(Z_STRVAL(gzstring)); 306 Z_STRVAL(gzstring) = ret; 307 Z_STRLEN(gzstring) += 12; 308 308 } 309 309 eaccelerator_put_page(zkey, zkey_len, &gzstring, ttl TSRMLS_CC); … … 346 346 } 347 347 memcpy(return_value, content, sizeof(zval)); 348 s = key = return_value->value.str.val;348 s = key = Z_STRVAL_P(return_value); 349 349 if ((status & PHP_OUTPUT_HANDLER_START) != 0) { 350 350 while (*s) {++s;} 351 351 ttl = atoi(key); 352 352 s = key = s+1; 353 if (s - return_value->value.str.val > return_value->value.str.len) {353 if (s - Z_STRVAL_P(return_value) > Z_STRLEN_P(return_value)) { 354 354 zval_copy_ctor(return_value); 355 355 eaccelerator_destroy_headers(TSRMLS_C); … … 359 359 key_len = atoi(key); 360 360 s = key = s+1; 361 if (s - return_value->value.str.val > return_value->value.str.len) {361 if (s - Z_STRVAL_P(return_value) > Z_STRLEN_P(return_value)) { 362 362 zval_copy_ctor(return_value); 363 363 eaccelerator_destroy_headers(TSRMLS_C); … … 366 366 while (*s) {++s;} 367 367 ++s; 368 if (s - return_value->value.str.val > return_value->value.str.len) {368 if (s - Z_STRVAL_P(return_value) > Z_STRLEN_P(return_value)) { 369 369 zval_copy_ctor(return_value); 370 370 eaccelerator_destroy_headers(TSRMLS_C); … … 372 372 } 373 373 } 374 return_value->value.str.len -= (s-return_value->value.str.val);375 return_value->value.str.val= s;374 Z_STRLEN_P(return_value) -= (s-Z_STRVAL_P(return_value)); 375 Z_STRVAL_P(return_value) = s; 376 376 zval_copy_ctor(return_value); 377 377 if ((status & PHP_OUTPUT_HANDLER_START) != 0 && … … 438 438 sapi_add_header(enc, strlen(enc), 1) == SUCCESS && 439 439 sapi_add_header("Vary: Accept-Encoding", sizeof("Vary: Accept-Encoding") - 1, 1) == SUCCESS) { 440 ZEND_WRITE( return_value->value.str.val, return_value->value.str.len);440 ZEND_WRITE(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value)); 441 441 } 442 442 efree(zkey); … … 454 454 eaccelerator_compress(key, key_len, return_value, ttl TSRMLS_CC); 455 455 } 456 ZEND_WRITE( return_value->value.str.val, return_value->value.str.len);456 ZEND_WRITE(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value)); 457 457 zend_bailout(); 458 458 RETURN_TRUE; … … 549 549 return_value->type == IS_STRING) { 550 550 /* Output is cached. Print it. */ 551 ZEND_WRITE( return_value->value.str.val, return_value->value.str.len);551 ZEND_WRITE(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value)); 552 552 zval_dtor(return_value); 553 553 RETURN_TRUE;