RE: [PATCH] http.c

Nisan Bloch <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hi Michael

yup, thats it exactly, and this causes havoc, under load with delivery acks 
or many  MO messages.

Nisan

At 03:53 PM 12/3/02 +0000, Michael Mulcahy wrote:
>The problem is with the calling of "parse_url" in the code.
>"parse_url" is called twice when a http request is being made.
>It is the second call that causes the leak.
>
>the "write_request_thread" function invokes "get_connection", this calls
>"parse_url" and populates the trans->host field.
>then "write_request_thread" invokes "send_request", this calls "parse_url"
>again
>and populates the trans->host fields.
>
>However send_request does not destroy the trans->host that has already been
>allocated.
>
>cheers,
>michael.
>
>ANAM Wireless Internet Solutions
>http://www.anam.com mailto:[email protected]
>+353 1 284 7555
>Castle Yard, Saint Patrick's Road, Dalkey, County Dublin, Ireland
>
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]]On Behalf Of Stipe Tolj
> > Sent: 03 December 2002 14:25
> > To: Nisan Bloch
> > Cc: [email protected]
> > Subject: Re: [PATCH] http.c
> >
> >
> > > the check for != NULL is not necessary, yes. But the
> > octstr_destroy is, as
> > > in http.c:parse_url:1155 , host is created.
> > > *host = octstr_copy(url, prefix_len, host_len);
> >
> > but the host is inside the HTTPServe trans structure, it should be
> > free'ed there, see gwlib/http.c:616:
> >
> > static void server_destroy(void *p)
> > {
> >     HTTPServer *trans;
> >
> >     trans = p;
> >     octstr_destroy(trans->url);
> >     http_destroy_headers(trans->request_headers);
> >     trans->request_headers = NULL;
> >     octstr_destroy(trans->request_body);
> >     entity_destroy(trans->response);
> >     octstr_destroy(trans->host);
> >     gw_free(trans);
> > }
> >
> > and the previous server_create() garantees that the ->host is NULLed.
> >
> > Stipe
> >
> > [email protected]
> > -------------------------------------------------------------------
> > Wapme Systems AG
> >
> > Vogelsanger Weg 80
> > 40470 Düsseldorf
> >
> > Tel: +49-211-74845-0
> > Fax: +49-211-74845-299
> >
> > E-Mail: [email protected]
> > Internet: http://www.wapme-systems.de
> > -------------------------------------------------------------------
> > wapme.net - wherever you are
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.