axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Valentine Kouznetsov <vkuz...@yahoo.com>
Subject Re: various bugs found, see attached patch
Date Fri, 10 Sep 2004 16:02:54 GMT
Hi Damitha,
thanks for applying my patches.
Regarding hardcoded path. I still disagree since
in our application we are not deploying Axis, we are
using it as a part. That means we link agaist axis
libraries. We are not using any configuration files
and it is not necessary for our case. I would suggest
to remove /usr/local/Axis/libs path at all, leave
names of the libraries, such as  libaxis_xmlparser.so
and rely on LD_LIBRARY_PATH (the way I originally
propose it is also not good, since it introduce new
environment variables). Since your code uses dlopen
the libraries would be found according to system
settings or LD_LIBRARY_PATH.
Valentin.


--- damitha kumarage <damitha@opensource.lk> wrote:

> Hi
> 
> On Fri, 2004-08-20 at 19:35, Valentine Kouznetsov
> wrote:
> > 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
> 
> done
> 
> > 
> > 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
> 
> Actually this is not hard coded. The are just
> default values
> that the engine assumes if it cannot determine them
> from
> the configuration file at
> $AXICPP_DEPLLY/etc/axiscpp.conf
> 
> 
> > 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)
> > 
> 
> done
> 
> > 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++.
> 
> true
> 
> regds
> damitha
> 
> > 
> > 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
> > 
> >
>
______________________________________________________________________
> > 
> > diff -Naur
> axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> > --- axis-c-src-1-2-linux/src/common/AxisConfig.cpp
> 2004-07-09 07:22:04.000000000 +0000
> > +++
> axis-c-src-1-2-linux-vk/src/common/AxisConfig.cpp
> 2004-08-18 16:35:50.246450056 +0000
> > @@ -25,7 +25,8 @@
> >  #include <axis/server/AxisFile.h>
> >  #include "AxisUtils.h"
> >  #include <stdlib.h>
> > -#include <stdio.h>
> > +//#include <stdio.h>
> > +#include <iostream>
> >  #include <string.h>
> >  
> >  AxisConfig::AxisConfig ()
> > @@ -58,8 +59,22 @@
> >      m_pcValueArray[AXCONF_NODENAME] = "server
> name";
> >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> port";
> >  #else
> > -	m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > -	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> > +    char* axis_xmlparser =
> getenv("AXIS_XMLPARSER");
> > +    if(!axis_xmlparser) {
> > +      std::cerr<<"No AXIS_XMLPARSER environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_XMLPARSER] =
> axis_xmlparser;
> > +    }
> > +    char* axis_transport =
> getenv("AXIS_TRANSPORT");
> > +    if(!axis_transport) {
> > +       std::cerr<<"No AXIS_TRANSPORT environment
> variable found"<<endl; 
> > +       exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> axis_transport;
> > +    }
> > +//        m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > +//        m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> >      m_pcValueArray[AXCONF_NODENAME] = "server
> name";
> >      m_pcValueArray[AXCONF_LISTENPORT] = "listen
> port";
> >  #endif
> > @@ -68,10 +83,38 @@
> >      m_pcValueArray[AXCONF_XMLPARSER] =
> "AxisXMLParser.dll";
> >  	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "AxisTransport.dll";
> >  #else
> > -	m_pcValueArray[AXCONF_XMLPARSER] =
> "/usr/local/Axis/libs/libaxis_xmlparser.so";
> > -	m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> "/usr/local/Axis/libs/libaxis_transport.so";
> > -        m_pcValueArray[AXCONF_LOGPATH] =
> "/usr/local/Axis/logs/AxisLog";
> > -        m_pcValueArray[AXCONF_CLIENTLOGPATH] =
> "/usr/local/Axis/logs/AxisClientLog";
> > +    char* axis_xmlparser =
> getenv("AXIS_XMLPARSER");
> > +    if(!axis_xmlparser) {
> > +      std::cerr<<"No AXIS_XMLPARSER environment
> variable found"<<endl;
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_XMLPARSER] =
> axis_xmlparser;
> > +    }
> > +    char* axis_transport =
> getenv("AXIS_TRANSPORT");
> > +    if(!axis_transport) {
> > +      std::cerr<<"No AXIS_TRANSPORT environment
> variable found"<<endl; 
> > +      exit(1);
> > +    } else {
> > +      m_pcValueArray[AXCONF_TRANSPORTHTTP] =
> axis_transport;
> > +    }
> 
=== message truncated ===



		
_______________________________
Do you Yahoo!?
Shop for Back-to-School deals on Yahoo! Shopping.
http://shopping.yahoo.com/backtoschool

Mime
View raw message