Browse Source

* remove debugging message

* use SAPI's http response code
    * improve POST read (still blocks in Ns_ConnRead, even if there is enough
      data to read)
    * improve config data handling
experimetnal/RETURN_REF_PATCH
Sascha Schumann 27 years ago
parent
commit
e6006d03ca
  1. 41
      aolserver.c

41
aolserver.c

@ -60,7 +60,6 @@ sapi_ub_write(const char *str, uint str_length)
ctx = (php_aol_context *) SG(server_context);
Ns_DStringInit(&dstr);
Ns_Log(Notice, "writing %d bytes\n", str_length);
Ns_DStringNAppend(&dstr, (char *) str, str_length);
Ns_ConnSendDString(ctx->conn, &dstr);
Ns_DStringFree(&dstr);
@ -104,7 +103,7 @@ sapi_send_headers(sapi_headers_struct *sapi_headers SLS_DC)
php_aol_context *ctx;
ctx = (php_aol_context *) SG(server_context);
Ns_ConnFlushHeaders(ctx->conn, 200);
Ns_ConnFlushHeaders(ctx->conn, SG(sapi_headers).http_response_code);
return SAPI_HEADER_SENT_SUCCESSFULLY;
}
@ -114,7 +113,12 @@ sapi_read_post(char *buf, uint count_bytes SLS_DC)
uint total_read = 0;
php_aol_context *ctx = (php_aol_context *) SG(server_context);
total_read = Ns_ConnRead(ctx->conn, buf, total_read);
total_read = Ns_ConnRead(ctx->conn, buf, count_bytes);
if(total_read == NS_ERROR) {
total_read = -1;
}
return total_read;
}
@ -239,21 +243,36 @@ static void config(char *server, char *module, php_aol_context *ctx)
int i;
char *path;
Ns_Set *set;
char *map;
path = Ns_ConfigPath(server, NULL, "php", NULL);
map = NULL;
path = Ns_ConfigPath(server, module, NULL);
set = Ns_ConfigGetSection(path);
for(i = 0; set && i < Ns_SetSize(set); i++) {
char *key = Ns_SetValue(set, i);
char *key = Ns_SetKey(set, i);
char *value = Ns_SetValue(set, i);
if(!strcasecmp(key, "map")) {
map = Ns_SetValue(set, i);
Ns_RegisterRequest(server, "GET", map, request_handler, NULL, ctx, 0);
Ns_RegisterRequest(server, "POST", map, request_handler, NULL, ctx, 0);
Ns_RegisterRequest(server, "HEAD", map, request_handler, NULL, ctx, 0);
Ns_Log(Notice, "Registering PHP for \"%s\"", value);
Ns_RegisterRequest(server, "GET", value, request_handler, NULL, ctx, 0);
Ns_RegisterRequest(server, "POST", value, request_handler, NULL, ctx, 0);
Ns_RegisterRequest(server, "HEAD", value, request_handler, NULL, ctx, 0);
} else if(!strcasecmp(key, "php_value")) {
char *val;
val = strchr(value, ' ');
if(val) {
char *key_end;
key_end = val;
do {
val++;
} while(*val == ' ');
php_alter_ini_entry(key, key_end - key, val, strlen(val), PHP_INI_SYSTEM);
}
}
}
}

Loading…
Cancel
Save