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]

Reply via email to