Author: hgomez Date: Tue Apr 24 01:00:07 2007 New Revision: 531815 URL: http://svn.apache.org/viewvc?view=rev&rev=531815 Log: define jk_stat(). On i5/OS the jk_stat will do the ASCII->EBCDIC conversion and next call stat(). On others platform jk_stat is just stat
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.c tomcat/connectors/trunk/jk/native/common/jk_util.h Modified: tomcat/connectors/trunk/jk/native/common/jk_util.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.c?view=diff&rev=531815&r1=531814&r2=531815 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_util.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_util.c Tue Apr 24 01:00:07 2007 @@ -525,7 +525,15 @@ used = usable_size; } buf[used] = 0; + +/* + * MCH errors encountered on i5/OS (V5R3/V5R4) when using jk_logger, use the JOBLOB QPRINT instead for now + */ +#ifdef AS400 + printf("%s\n", buf); +#else l->log(l, level, buf); +#endif #ifdef NETWARE free(buf); #endif @@ -1390,43 +1398,33 @@ } -int jk_file_exists(const char *f) -{ - int rc; - char *ptr; - - if (f) { - struct stat st; - -#ifdef AS400 - /** * i5/OS V5R4 expect filename in ASCII for fopen but required them in EBCDIC for stat() */ #ifdef AS400_UTF8 - ptr = (char *)malloc(strlen(f) + 1); - jk_ascii2ebcdic((char *)f, ptr); - rc = stat(ptr, &st); - free(ptr); - - if ((0 == rc) && (st.st_mode & _S_IFREG)) - return JK_TRUE; +int jk_stat(const char *f, struct stat * statbuf) +{ + char *ptr; + int rc; -#else /* AS400_UTF8 */ + ptr = (char *)malloc(strlen(f) + 1); + jk_ascii2ebcdic((char *)f, ptr); + rc = stat(ptr, statbuf); + free(ptr); - if ((0 == stat(f, &st)) && (st.st_mode & _S_IFREG)) - return JK_TRUE; + return (rc); +} -#endif /* AS400_UTF8 */ +#endif -#else /* AS400 */ +int jk_file_exists(const char *f) +{ + if (f) { + struct stat st; - if ((0 == stat(f, &st)) && (st.st_mode & S_IFREG)) + if ((0 == jk_stat(f, &st)) && (st.st_mode & S_IFREG)) return JK_TRUE; - -#endif /* AS400 */ - } return JK_FALSE; @@ -1582,7 +1580,7 @@ char **jk_parse_sysprops(jk_pool_t *p, const char *sysprops) { char **rc = NULL; -#if defined(AS400) || defined(_REENTRANT) +#ifdef _REENTRANT char *lasts; #endif @@ -1600,7 +1598,7 @@ rc = jk_pool_alloc(p, (num_of_prps + 1) * sizeof(char *)); if (rc) { unsigned i = 0; -#if defined(AS400) || defined(_REENTRANT) +#ifdef _REENTRANT char *tmp = strtok_r(prps, "*", &lasts); #else char *tmp = strtok(prps, "*"); @@ -1608,7 +1606,7 @@ while (tmp && i < num_of_prps) { rc[i] = tmp; -#if defined(AS400) || defined(_REENTRANT) +#ifdef _REENTRANT tmp = strtok_r(NULL, "*", &lasts); #else tmp = strtok(NULL, "*"); Modified: tomcat/connectors/trunk/jk/native/common/jk_util.h URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.h?view=diff&rev=531815&r1=531814&r2=531815 ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_util.h (original) +++ tomcat/connectors/trunk/jk/native/common/jk_util.h Tue Apr 24 01:00:07 2007 @@ -211,10 +211,26 @@ #define TC41_BRIDGE_TYPE 41 #define TC50_BRIDGE_TYPE 50 +#ifdef AS400 + +#define S_IFREG _S_IFREG + #ifdef AS400_UTF8 + void jk_ascii2ebcdic(char *src, char *dst); void jk_ebcdic2ascii(char *src, char *dst); + +/* i5/OS V5R4 need ASCII-EBCDIC conversion before stat() call */ +int jk_stat(const char *f, struct stat * statbuf); + +#else /* AS400_UTF8 */ + +#define jk_stat(a, b) stat(a, b) + +#endif /* AS400_UTF8 */ + #endif + #ifdef __cplusplus extern "C" --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]