* reference to the .dll no matter what context (vhost,
* location, etc) they apply to.
*/
- isa->report_version = MAKELONG(0, 5); /* Revision 5.0 */
+ isa->report_version = 0x500; /* Revision 5.0 */
isa->timeout = 300 * 1000000; /* microsecs, not used */
rv = apr_dso_load(&isa->handle, isa->filename, p);
/* TerminateExtension() is an optional interface */
rv = apr_dso_sym((void**)&isa->TerminateExtension, isa->handle,
"TerminateExtension");
- SetLastError(0);
+ apr_set_os_error(0);
/* Run GetExtensionVersion() */
if (!(isa->GetExtensionVersion)(isa->isapi_version)) {
int APR_THREAD_FUNC GetServerVariable (isapi_cid *cid,
char *variable_name,
- void *buf_data,
+ void *buf_ptr,
apr_uint32_t *buf_size)
{
request_rec *r = cid->r;
const char *result;
+ char *buf_data = (char*)buf_ptr;
apr_uint32_t len;
if (!strcmp(variable_name, "ALL_HTTP"))
if (*buf_size < len + 1) {
*buf_size = len + 1;
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INSUFFICIENT_BUFFER));
return 0;
}
for (i = 0; i < arr->nelts; i++) {
if (!strncmp(elts[i].key, "HTTP_", 5)) {
strcpy(buf_data, elts[i].key);
- ((char*)buf_data) += strlen(elts[i].key);
- *(((char*)buf_data)++) = ':';
+ buf_data += strlen(elts[i].key);
+ *(buf_data++) = ':';
strcpy(buf_data, elts[i].val);
- ((char*)buf_data) += strlen(elts[i].val);
- *(((char*)buf_data)++) = '\r';
- *(((char*)buf_data)++) = '\n';
+ buf_data += strlen(elts[i].val);
+ *(buf_data++) = '\r';
+ *(buf_data++) = '\n';
}
}
- *(((char*)buf_data)++) = '\0';
+ *(buf_data++) = '\0';
*buf_size = len + 1;
return 1;
}
if (*buf_size < len + 1) {
*buf_size = len + 1;
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INSUFFICIENT_BUFFER));
return 0;
}
for (i = 0; i < arr->nelts; i++) {
strcpy(buf_data, elts[i].key);
- ((char*)buf_data) += strlen(elts[i].key);
- *(((char*)buf_data)++) = ':';
- *(((char*)buf_data)++) = ' ';
+ buf_data += strlen(elts[i].key);
+ *(buf_data++) = ':';
+ *(buf_data++) = ' ';
strcpy(buf_data, elts[i].val);
- ((char*)buf_data) += strlen(elts[i].val);
- *(((char*)buf_data)++) = '\r';
- *(((char*)buf_data)++) = '\n';
+ buf_data += strlen(elts[i].val);
+ *(buf_data++) = '\r';
+ *(buf_data++) = '\n';
}
- *(((char*)buf_data)++) = '\0';
+ *(buf_data++) = '\0';
*buf_size = len + 1;
return 1;
}
len = strlen(result);
if (*buf_size < len + 1) {
*buf_size = len + 1;
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INSUFFICIENT_BUFFER));
return 0;
}
strcpy(buf_data, result);
}
/* Not Found */
- SetLastError(ERROR_INVALID_INDEX);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_INDEX));
return 0;
}
*buf_size = read;
if (res < 0) {
- SetLastError(ERROR_READ_FAULT);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_READ_FAULT));
}
return (res >= 0);
}
{
int head_present = 1;
int termarg;
- char *termch;
+ const char *termch;
apr_size_t ate = 0;
if (!head || headlen == 0 || !*head) {
return ate;
}
-int APR_THREAD_FUNC WriteClient(isapi_cid *cid,
- void *buf_data,
- apr_uint32_t *size_arg,
+int APR_THREAD_FUNC WriteClient(isapi_cid *cid,
+ void *buf_ptr,
+ apr_uint32_t *size_arg,
apr_uint32_t flags)
{
request_rec *r = cid->r;
conn_rec *c = r->connection;
apr_uint32_t buf_size = *size_arg;
+ char *buf_data = (char*)buf_ptr;
apr_bucket_brigade *bb;
apr_bucket *b;
apr_status_t rv;
* Parse them out, or die trying.
*/
apr_ssize_t ate;
- ate = send_response_header(cid, NULL, (char*)buf_data,
- 0, buf_size);
+ ate = send_response_header(cid, NULL, buf_data, 0, buf_size);
if (ate < 0) {
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
- (char*)buf_data += ate;
+ buf_data += ate;
buf_size -= ate;
}
int APR_THREAD_FUNC ServerSupportFunction(isapi_cid *cid,
apr_uint32_t HSE_code,
- void *buf_data,
+ void *buf_ptr,
apr_uint32_t *buf_size,
apr_uint32_t *data_type)
{
request_rec *r = cid->r;
conn_rec *c = r->connection;
+ char *buf_data = (char*)buf_ptr;
request_rec *subreq;
switch (HSE_code) {
apr_table_unset(r->headers_in, "Content-Length");
/* AV fault per PR3598 - redirected path is lost! */
- (char*)buf_data = apr_pstrdup(r->pool, (char*)buf_data);
- ap_internal_redirect((char*)buf_data, r);
+ buf_data = apr_pstrdup(r->pool, (char*)buf_data);
+ ap_internal_redirect(buf_data, r);
return 1;
case HSE_REQ_SEND_RESPONSE_HEADER:
(char*) data_type,
statlen, headlen);
if (ate < 0) {
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
else if ((apr_size_t)ate < headlen) {
"HSE_REQ_DONE_WITH_SESSION is not supported: %s",
r->filename);
}
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_MAP_URL_TO_PATH:
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
"ISAPI: ServerSupportFunction HSE_REQ_GET_SSPI_INFO "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_APPEND_LOG_PARAMETER:
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
"ISAPI: ServerSupportFunction HSE_REQ_IO_COMPLETION "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_TRANSMIT_FILE:
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
"ISAPI: ServerSupportFunction HSE_REQ_TRANSMIT_FILE "
"as HSE_IO_ASYNC is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
else {
apr_finfo_t fi;
if (apr_file_info_get(&fi, APR_FINFO_SIZE, fd) != APR_SUCCESS) {
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
fsize = fi.size - tf->Offset;
if (ate < 0)
{
apr_brigade_destroy(bb);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
}
"ISAPI: ServerSupportFunction "
"HSE_REQ_REFRESH_ISAPI_ACL "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_IS_KEEP_CONN:
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
"ISAPI: asynchronous I/O not supported: %s",
r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
"ISAPI: ServerSupportFunction "
"HSE_REQ_GET_IMPERSONATION_TOKEN "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_MAP_URL_TO_PATH_EX:
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
"ISAPI: ServerSupportFunction HSE_REQ_ABORTIVE_CLOSE"
" is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_GET_CERT_INFO_EX: /* Added in ISAPI 4.0 */
"ISAPI: ServerSupportFunction "
"HSE_REQ_GET_CERT_INFO_EX "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_SEND_RESPONSE_HEADER_EX: /* Added in ISAPI 4.0 */
shi->cchStatus,
shi->cchHeader);
if (ate < 0) {
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
else if ((apr_size_t)ate < shi->cchHeader) {
"ISAPI: ServerSupportFunction "
"HSE_REQ_CLOSE_CONNECTION "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
case HSE_REQ_IS_CONNECTED: /* Added after ISAPI 4.0 */
"ISAPI: ServerSupportFunction "
"HSE_REQ_EXTENSION_TRIGGER "
"is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
default:
ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r,
"ISAPI: ServerSupportFunction (%d) not supported: "
"%s", HSE_code, r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
+ apr_set_os_error(APR_FROM_OS_ERROR(ERROR_INVALID_PARAMETER));
return 0;
}
}
read = 0;
while (read < cid->ecb->cbAvailable &&
- ((res = ap_get_client_block(r, cid->ecb->lpbData + read,
+ ((res = ap_get_client_block(r, (char*)cid->ecb->lpbData + read,
cid->ecb->cbAvailable - read)) > 0)) {
read += res;
}