[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: SOAPAction Expansion Issues (HTTP_ORIG_SHORTFIELD Logic Seems Flawed)



   Scott,



   A little further testing and research and I believe I have discovered
   the issue. You used the following declarations code to allow for your
   "tricky" technique.

        D getSA           PR         16384A   varying
        D                                     ExtProc('GETREALSA')
        D   peSoapAction                 2a   const
        D getRealSA       PR         16384A   varying
        D   peSoapAction                 2a

   Since the constant parameter was only defined as 2A anything passed
   that point was being truncated. I changed that code to



        D getSA           PR         16384A   varying
        D                                     ExtProc('GETREALSA')
        D   peSoapAction             16384a   Const
        D getRealSA       PR         16384A   varying
        D   peSoapAction                 2a



   and that seemed to address the truncation issue. I admit I rushed
   through this change as I have people waiting on this but I think the
   fix was a proper one.



   Regards,

   Ron
     _________________________________________________________________

   From: Ron [mailto:ron@xxxxxxxxxxxx]
   Sent: Monday, April 18, 2011 12:38 PM
   To: 'ftpapi@xxxxxxxxxxxxxxxxxxxxxx'
   Subject: SOAPAction Expansion Issues (HTTP_ORIG_SHORTFIELD Logic Seems
   Flawed)

   Scott,



   We have the need to support a larger SOAP action that the original
   specification of 64A. After some research it appears that you had put
   in some "hooks" to allow that through the definition
   of HTTP_ORIG_SHORTFIELD. It appears to convert to a larger 16384A
   varying parameter. I made the assumption that all I had to do was
   undefine HTTP_ORIG_SHORTFIELD and the rest would be taken care off. So
   that is what I did and began to run into issues. The first thing I ran
   into was that the actual procedure parameters did not match the
   procedure definition in the include module. Seems the same conditional
   logic was not in HTTPAPIR4 that was in the header file HTTPAPI_H. So I
   had to go in manually and deal with them. Now everything compiles.



   However now when I actually execute the code there seems to be a flaw
   in the getRealSA procedure. It still thinks I'm using the "old style"
   short parameter and only returns the first two bytes of the variable
   that was passed into the up stream procedure as a 16384A varying const
   parameter. Jut to clarify. If I pass in the default content type for
   example of 'text/xml' the lower level procedures receive only the
   first two characters 'te'.



   To make things even more confusing it seems that SOAP action is
   defined as 32767A varying in some places internally where I was
   expecting it too match the parameter size of 16384A varying
   (http_persist_get for example).



   I am on the BETA release 1.24.



   Before I address these issues myself (by removing all the logic that
   allows compability with the old 64A parameter) I would like to see
   what guidance you would provide.



   Regards,

   Ron
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------