axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Valentine Kouznetsov <vkuz...@yahoo.com>
Subject various bugs found, see attached patch
Date Fri, 20 Aug 2004 13:35:38 GMT
Dear Axis developers,
I found several bugs, design flows in Axis C++ 1.2
code. Instead of reporting 
a bug I'm sending you a patch which fix the following
bugs:

1) The code cannot handle 100 HTTP request Code
According to HTTP 1.1 specification you may get 100
code which means that 
server is still not ready to give OK request and you
need to continue

2) Using HARDCODED PATH to "/usr/local/Axis/" is EVIL.
I'm a user not a 
sys-admin on 800 nodes in our cluster and I don't have
privilages to write to 
this location. The fix I applied is to introduce
environment variable instead 
of hardcoded path

3) Using enum (CRITICAL and other) without namespace
MAY lead that your code 
can overlap with code on client legacy application and
conflict with it. I 
changed CRITICAL, etc. to AXIS_CRITICAL. It's not the
best way to do (better 
would be use namespace), but it's unlikely to overlap
with our code.

4) Bug in AxisTransport.cpp where you reject to read
rest of the buffer if 
it's bigger you buffer size (which is 1024). For long
soap messages (which I 
doubt you tested) the XMLParser can handle to parse
them in chunks. But 
AxisTransport.cpp was unable to deliver correctly
parts of long soap message.
To fix this I applied
 AXIS_TRANSPORT_STATUS AxisTransport::getBytes(char*
pcBuffer, int* pSize)
 {
-    if (0 <= m_iBytesLeft)
+    if (0 >= m_iBytesLeft)

5) It's worthwhile to mentioned that you're using in a
wrong way string class.
Instead of using 
strlen (m_PayLoad.c_str ());
it's better (and faster) to use
m_PayLoad.size()
since m_PayLoad is a string.
I found quite a lot of places where you mismatch C and
C++.

I appreciate your effort of developing such nice
package and hope you will 
consider my comments seriously and apply the patch I
provide.

The patch was done against axis-c-src-1-2-linux code
and can be applied as
patch -p0 < axis.patch

(You need to stay in directory where
axis-c-src-1-2-linux resides).

If you need further assistance don't hesitate to
contact me.
Sincerely,
Valentin.


		
_______________________________
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush
Mime
View raw message