rbb 99/11/22 10:01:40
Modified: src/lib/apr/inc apr_fnmatch.h
src/lib/apr/include apr_errno.h apr_lib.h apr_md5.h
src/lib/apr/lib apr_execve.c apr_fnmatch.c apr_md5.c
Log:
Begin to update apr/lib files to follow the standard APR function format.
This is the incredibly low hanging fruit, where all I am doing is
standardizing the return codes for functions that already returned int's.
Revision Changes Path
1.3 +2 -1 apache-2.0/src/lib/apr/inc/apr_fnmatch.h
Index: apr_fnmatch.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/inc/apr_fnmatch.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apr_fnmatch.h 1999/08/31 05:32:31 1.2
+++ apr_fnmatch.h 1999/11/22 18:00:46 1.3
@@ -39,6 +39,7 @@
#else
#include "apr_win.h"
#endif
+#include "apr_errno.h"
#ifndef _APR_FNMATCH_H_
#define _APR_FNMATCH_H_
@@ -55,7 +56,7 @@
/* This flag is an Apache addition */
#define FNM_CASE_BLIND 0x08 /* Compare characters case ap_context_t
nsensitively. */
-API_EXPORT(int) ap_fnmatch(const char *pattern, const char *strings,
+API_EXPORT(ap_status_t) ap_fnmatch(const char *pattern, const char *strings,
int flags);
/* this function is an Apache addition */
1.9 +4 -0 apache-2.0/src/lib/apr/include/apr_errno.h
Index: apr_errno.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_errno.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- apr_errno.h 1999/10/21 16:13:24 1.8
+++ apr_errno.h 1999/11/22 18:00:55 1.9
@@ -128,6 +128,10 @@
*/
#define APR_ENOTIMPL (APR_OS_START_STATUS + 17)
+/* Passwords do not match.
+ */
+#define APR_EMISMATCH (APR_OS_START_STATUS + 18)
+
/*
* APR equivalents to what should be standard errno codes.
*/
1.15 +2 -2 apache-2.0/src/lib/apr/include/apr_lib.h
Index: apr_lib.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_lib.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- apr_lib.h 1999/11/16 18:30:26 1.14
+++ apr_lib.h 1999/11/22 18:00:59 1.15
@@ -169,8 +169,8 @@
API_EXPORT(const char *) ap_filename_of_pathname(const char *pathname);
/*API_EXPORT(ap_mutex_t *) ap_create_mutex(void *m);*/
API_EXPORT(int) ap_slack(int l, int h);
-API_EXPORT_NONSTD(int) ap_execle(const char *c, const char *a, ...);
-API_EXPORT_NONSTD(int) ap_execve(const char *c, const char *argv[],
+API_EXPORT_NONSTD(ap_status_t) ap_execle(const char *c, const char *a, ...);
+API_EXPORT_NONSTD(ap_status_t) ap_execve(const char *c, const char *argv[],
const char *envp[]);
#define ap_create_mutex(x) (0)
1.3 +5 -5 apache-2.0/src/lib/apr/include/apr_md5.h
Index: apr_md5.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_md5.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apr_md5.h 1999/08/31 05:32:32 1.2
+++ apr_md5.h 1999/11/22 18:01:01 1.3
@@ -113,13 +113,13 @@
unsigned char buffer[64]; /* input buffer */
} APR_MD5_CTX;
-API_EXPORT(void) ap_MD5Init(APR_MD5_CTX * context);
-API_EXPORT(void) ap_MD5Update(APR_MD5_CTX * context, const unsigned char
*input,
+API_EXPORT(ap_status_t) ap_MD5Init(APR_MD5_CTX * context);
+API_EXPORT(ap_status_t) ap_MD5Update(APR_MD5_CTX * context, const unsigned
char *input,
unsigned int inputLen);
-API_EXPORT(void) ap_MD5Final(unsigned char digest[16], APR_MD5_CTX *
context);
-API_EXPORT(void) ap_MD5Encode(const char *password, const char *salt,
+API_EXPORT(ap_status_t) ap_MD5Final(unsigned char digest[16], APR_MD5_CTX *
context);
+API_EXPORT(ap_status_t) ap_MD5Encode(const char *password, const char *salt,
char *result, size_t nbytes);
-API_EXPORT(char *) ap_validate_password(const char *passwd, const char
*hash);
+API_EXPORT(ap_status_t) ap_validate_password(const char *passwd, const char
*hash);
#ifdef __cplusplus
}
1.4 +7 -8 apache-2.0/src/lib/apr/lib/apr_execve.c
Index: apr_execve.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_execve.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- apr_execve.c 1999/08/31 21:54:48 1.3
+++ apr_execve.c 1999/11/22 18:01:14 1.4
@@ -112,7 +112,7 @@
* local argv[] array. The va_arg logic makes sure we do the right thing.
* XXX: malloc() is used because we expect to be overlaid soon.
*/
-int ap_execle(const char *filename, const char *argv0, ...)
+ap_status_t ap_execle(const char *filename, const char *argv0, ...)
{
va_list adummy;
char **envp;
@@ -127,8 +127,7 @@
va_end(adummy);
if ((argv = (char **) malloc((argc + 2) * sizeof(*argv))) == NULL) {
- fprintf(stderr, "Ouch! Out of memory in ap_execle()!\n");
- return -1;
+ return APR_ENOMEM;
}
/* Pass two --- copy the argument strings into the result space */
@@ -140,7 +139,8 @@
envp = va_arg(adummy, char **);
va_end(adummy);
- ret = ap_execve(filename, argv, envp);
+ ap_execve(filename, argv, envp);
+ ret = errno;
free(argv);
return ret;
@@ -163,7 +163,7 @@
* We have to fiddle with the argv array to make it work on platforms
* which don't support the "hashbang" interpreter line by default.
*/
-int ap_execve(const char *filename, const char *argv[],
+ap_status_t ap_execve(const char *filename, const char *argv[],
const char *envp[])
{
const char **script_argv;
@@ -225,8 +225,7 @@
int i = count_args(argv) + 1; /* +1 for leading SHELL_PATH */
if ((script_argv = malloc(sizeof(*script_argv) * i)) == NULL) {
- fprintf(stderr, "Ouch! Out of memory in ap_execve()!\n");
- return -1;
+ return APR_ENOMEM;
}
script_argv[0] = SHELL_PATH;
@@ -241,7 +240,7 @@
free(script_argv);
}
}
- return -1;
+ return errno;
}
/*---------------------------------------------------------------*/
1.4 +5 -5 apache-2.0/src/lib/apr/lib/apr_fnmatch.c
Index: apr_fnmatch.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_fnmatch.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- apr_fnmatch.c 1999/09/12 10:52:17 1.3
+++ apr_fnmatch.c 1999/11/22 18:01:23 1.4
@@ -56,7 +56,7 @@
static const char *rangematch(const char *, int, int);
-API_EXPORT(int) ap_fnmatch(const char *pattern, const char *string, int
flags)
+API_EXPORT(ap_status_t) ap_fnmatch(const char *pattern, const char *string,
int flags)
{
const char *stringstart;
char c, test;
@@ -64,7 +64,7 @@
for (stringstart = string;;) {
switch (c = *pattern++) {
case EOS:
- return (*string == EOS ? 0 : FNM_NOMATCH);
+ return (*string == EOS ? APR_SUCCESS : FNM_NOMATCH);
case '?':
if (*string == EOS) {
return (FNM_NOMATCH);
@@ -95,10 +95,10 @@
/* Optimize for pattern with * at end or before /. */
if (c == EOS) {
if (flags & FNM_PATHNAME) {
- return (strchr(string, '/') == NULL ? 0 : FNM_NOMATCH);
+ return (strchr(string, '/') == NULL ? APR_SUCCESS :
FNM_NOMATCH);
}
else {
- return (0);
+ return (APR_SUCCESS);
}
}
else if (c == '/' && flags & FNM_PATHNAME) {
@@ -111,7 +111,7 @@
/* General case, use recursion. */
while ((test = *string) != EOS) {
if (!ap_fnmatch(pattern, string, flags & ~FNM_PERIOD)) {
- return (0);
+ return (APR_SUCCESS);
}
if (test == '/' && flags & FNM_PATHNAME) {
break;
1.4 +13 -8 apache-2.0/src/lib/apr/lib/apr_md5.c
Index: apr_md5.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_md5.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- apr_md5.c 1999/10/01 16:18:32 1.3
+++ apr_md5.c 1999/11/22 18:01:28 1.4
@@ -178,7 +178,7 @@
/* MD5 initialization. Begins an MD5 operation, writing a new context.
*/
-API_EXPORT(void) ap_MD5Init(APR_MD5_CTX * context)
+API_EXPORT(ap_status_t) ap_MD5Init(APR_MD5_CTX * context)
{
context->count[0] = context->count[1] = 0;
/* Load magic initialization constants. */
@@ -186,13 +186,14 @@
context->state[1] = 0xefcdab89;
context->state[2] = 0x98badcfe;
context->state[3] = 0x10325476;
+ return APR_SUCCESS;
}
/* MD5 block update operation. Continues an MD5 message-digest
operation, processing another message block, and updating the
context.
*/
-API_EXPORT(void) ap_MD5Update(APR_MD5_CTX * context, const unsigned char
*input,
+API_EXPORT(ap_status_t) ap_MD5Update(APR_MD5_CTX * context, const unsigned
char *input,
unsigned int inputLen)
{
unsigned int i, idx, partLen;
@@ -242,12 +243,13 @@
/* Buffer remaining input */
ebcdic2ascii_strictly(&context->buffer[idx], &input[i], inputLen - i);
#endif /*CHARSET_EBCDIC*/
+ return APR_SUCCESS;
}
/* MD5 finalization. Ends an MD5 message-digest operation, writing the
the message digest and zeroizing the context.
*/
-API_EXPORT(void) ap_MD5Final(unsigned char digest[16], APR_MD5_CTX * context)
+API_EXPORT(ap_status_t) ap_MD5Final(unsigned char digest[16], APR_MD5_CTX *
context)
{
unsigned char bits[8];
unsigned int idx, padLen;
@@ -284,6 +286,8 @@
/* Zeroize sensitive information. */
memset(context, 0, sizeof(*context));
+
+ return APR_SUCCESS;
}
/* MD5 basic transformation. Transforms state based on block. */
@@ -426,7 +430,7 @@
}
}
-API_EXPORT(void) ap_MD5Encode(const char *pw, const char *salt,
+API_EXPORT(ap_status_t) ap_MD5Encode(const char *pw, const char *salt,
char *result, size_t nbytes)
{
/*
@@ -573,16 +577,17 @@
memset(final, 0, sizeof(final));
ap_cpystrn(result, passwd, nbytes - 1);
+ return APR_SUCCESS;
}
/*
* Validate a plaintext password against a smashed one. Use either
* crypt() (if available) or ap_MD5Encode(), depending upon the format
- * of the smashed input password. Return NULL if they match, or
- * an explanatory text string if they don't.
+ * of the smashed input password. Return APR_SUCCESS if they match, or
+ * APR_EMISMATCH if they don't.
*/
-API_EXPORT(char *) ap_validate_password(const char *passwd, const char *hash)
+API_EXPORT(ap_status_t) ap_validate_password(const char *passwd, const char
*hash)
{
char sample[120];
#ifndef WIN32
@@ -605,5 +610,5 @@
ap_cpystrn(sample, crypt_pw, sizeof(sample) - 1);
#endif
}
- return (strcmp(sample, hash) == 0) ? NULL : "password mismatch";
+ return (strcmp(sample, hash) == 0) ? APR_SUCCESS : APR_EMISMATCH;
}