Author: hgomez
Date: Fri Jun 29 06:55:47 2007
New Revision: 551893
URL: http://svn.apache.org/viewvc?view=rev&rev=551893
Log:
Add ascii->ebcdic conversion around open, unlink. Provided by Ron Egyed
Modified:
tomcat/connectors/trunk/jk/native/common/jk_shm.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_shm.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_shm.c?view=diff&rev=551893&r1=551892&r2=551893
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_shm.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_shm.c Fri Jun 29 06:55:47 2007
@@ -241,6 +241,10 @@
{
int rc;
char flkname[256];
+#ifdef AS400_UTF8
+ char *wptr;
+#endif
+
JK_TRACE_ENTER(l);
if (attached && jk_shmem.lockname) {
@@ -248,7 +252,7 @@
jk_shmem.fd_lock = open(jk_shmem.lockname, O_RDWR, 0666);
#else
errno = EINVAL;
-#endif
+#endif
if (jk_shmem.fd_lock == -1) {
rc = errno;
JK_TRACE_EXIT(l);
@@ -278,8 +282,15 @@
#else
strcpy(flkname, fname);
strcat(flkname, ".lock");
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(flkname) + 1);
+ jk_ascii2ebcdic((char *)flkname, wptr);
+ jk_shmem.fd_lock = open(wptr, O_RDWR|O_CREAT|O_TRUNC, 0666);
+ free(wptr);
+#else
jk_shmem.fd_lock = open(flkname, O_RDWR|O_CREAT|O_TRUNC, 0666);
#endif
+#endif
if (jk_shmem.fd_lock == -1) {
rc = errno;
JK_TRACE_EXIT(l);
@@ -319,6 +330,9 @@
int rc;
int fd;
void *base;
+#ifdef AS400_UTF8
+ char *wptr;
+#endif
JK_TRACE_ENTER(l);
if (jk_shmem.hdr) {
@@ -353,7 +367,14 @@
if (!attached) {
size_t size;
jk_shmem.attached = 0;
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+ fd = open(wptr, O_RDWR|O_CREAT|O_TRUNC, 0666);
+ free(wptr);
+#else
fd = open(jk_shmem.filename, O_RDWR|O_CREAT|O_TRUNC, 0666);
+#endif
if (fd == -1) {
jk_shmem.size = 0;
JK_TRACE_EXIT(l);
@@ -365,7 +386,14 @@
if (ftruncate(fd, jk_shmem.size)) {
rc = errno;
close(fd);
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+ unlink(wptr);
+ free(wptr);
+#else
unlink(jk_shmem.filename);
+#endif
jk_shmem.size = 0;
JK_TRACE_EXIT(l);
return rc;
@@ -377,7 +405,14 @@
if (lseek(fd, 0, SEEK_SET) != 0) {
rc = errno;
close(fd);
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+ unlink(wptr);
+ free(wptr);
+#else
unlink(jk_shmem.filename);
+#endif
jk_shmem.size = 0;
JK_TRACE_EXIT(l);
return rc;
@@ -390,7 +425,14 @@
if (base == (caddr_t)MAP_FAILED || base == (caddr_t)0) {
rc = errno;
close(fd);
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+ unlink(wptr);
+ free(wptr);
+#else
unlink(jk_shmem.filename);
+#endif
jk_shmem.size = 0;
JK_TRACE_EXIT(l);
return rc;
@@ -439,7 +481,14 @@
if (!attached) {
munmap((void *)jk_shmem.hdr, jk_shmem.size);
close(jk_shmem.fd);
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+ unlink(wptr);
+ free(wptr);
+#else
unlink(jk_shmem.filename);
+#endif
}
jk_shmem.hdr = NULL;
jk_shmem.fd = -1;
@@ -463,6 +512,10 @@
void jk_shm_close()
{
int rc;
+#ifdef AS400_UTF8
+ char *wptr;
+#endif
+
if (jk_shmem.hdr) {
--jk_shmem.hdr->h.data.childs;
@@ -493,12 +546,26 @@
if (jk_shmem.fd_lock >= 0)
close(jk_shmem.fd_lock);
if (jk_shmem.lockname) {
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.lockname) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.lockname, wptr);
+ unlink(wptr);
+ free(wptr);
+#else
unlink(jk_shmem.lockname);
+#endif
free(jk_shmem.lockname);
jk_shmem.lockname = NULL;
}
if (jk_shmem.filename) {
+#ifdef AS400_UTF8
+ wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+ jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+ unlink(wptr);
+ free(wptr);
+#else
unlink(jk_shmem.filename);
+#endif
free(jk_shmem.filename);
jk_shmem.filename = NULL;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]