cvs: /php4/serverapi isapi_sapi.c nsapi_sapi.c
| From: | Rasmus Lerdorf | Date: | Sat, 04 Sep 1999 21:49:40 +0000 |
| Subject: | cvs: /php4/serverapi isapi_sapi.c nsapi_sapi.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-4098@lists.php.net to get a copy of this message | ||
rasmus Sat Sep 4 17:49:40 1999 EDT
Modified files:
/php4/serverapi isapi_sapi.c nsapi_sapi.c
Log:
Add connection handling stuff to ISAPI and NSAPI code. This will
likely need some reworking, but this way it won't get overlooked.
Index: php4/serverapi/isapi_sapi.c
diff -u php4/serverapi/isapi_sapi.c:1.4 php4/serverapi/isapi_sapi.c:1.5
--- php4/serverapi/isapi_sapi.c:1.4 Sat Sep 4 16:12:47 1999
+++ php4/serverapi/isapi_sapi.c Sat Sep 4 17:49:39 1999
@@ -54,7 +54,9 @@
HSE_REQ_SEND_URL_REDIRECT_RESP,
NULL,&len,(LPDWORD)header)) {
OutputDebugString("Header Failed\n");
- return -1;
+ PG(connection_status) = PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
+ return EOF;
}
return 1;
}
@@ -72,7 +74,9 @@
n = strlen(string);
if (!lpEcb->WriteClient(lpEcb->ConnID,string,&n,0)) {
OutputDebugString("PUTS Failed\n");
- return -1;
+ PG(connection_status) = PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
+ return EOF;
}
return 1;
}
@@ -82,7 +86,9 @@
int n = 1;
if (!lpEcb->WriteClient(lpEcb->ConnID,&c,&n,0)){
OutputDebugString("PUTC Failed\n");
- return -1;
+ PG(connection_status) = PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
+ return EOF;
}
return 1;
}
@@ -91,6 +97,8 @@
LPEXTENSION_CONTROL_BLOCK lpEcb=scid;
if (!lpEcb->WriteClient(lpEcb->ConnID,string,&len,0)){
OutputDebugString("WriteClient Failed\n");
+ PG(connection_status) = PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
return 0;
}
return 1;
Index: php4/serverapi/nsapi_sapi.c
diff -u php4/serverapi/nsapi_sapi.c:1.3 php4/serverapi/nsapi_sapi.c:1.4
--- php4/serverapi/nsapi_sapi.c:1.3 Sat Sep 4 16:12:47 1999
+++ php4/serverapi/nsapi_sapi.c Sat Sep 4 17:49:39 1999
@@ -94,22 +94,41 @@
int sapi_flush(void *scid){
struct ns_request_info *ns_rqst=(struct ns_request_info *)scid;
+ /* FIXME */
return 1;
}
int sapi_puts(void *scid, char *string){
+ int ret;
struct ns_request_info *ns_rqst=(struct ns_request_info *)scid;
- return puts(string);
+ ret = puts(string);
+ if(ret==EOF) {
+ PG(connection_status) |= PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
+ }
+ return ret;
}
int sapi_putc(void *scid, char c){
+ int ret;
struct ns_request_info *ns_rqst=(struct ns_request_info *)scid;
- return net_write(ns_rqst->sn->csd, &c, 1);
+ ret = net_write(ns_rqst->sn->csd, &c, 1);
+ if(ret==EOF) {
+ PG(connection_status) |= PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
+ }
+ return ret;
}
int sapi_writeclient(void *scid, char *string, int len){
+ int ret;
struct ns_request_info *ns_rqst=(struct ns_request_info *)scid;
- return net_write(ns_rqst->sn->csd, s, size);
+ ret = net_write(ns_rqst->sn->csd, s, size);
+ if(ret==EOF) {
+ PG(connection_status) |= PHP_CONNECTION_ABORTED;
+ if(!PG(ignore_user_abort)) zend_bailout();
+ }
+ return ret;
}
void sapi_block(void *scid){}