The original condition was commented:
+ if (/*user == NULL || pass == NULL ||*/ /* we don't need this
anymore */
+ octstr_compare(user, conndata->username) != 0 ||
+ octstr_compare(pass, conndata->password) != 0) {
+ error(0, "HTTP[%s]: Authorization failure",
The piece of code you're referencing it's before the original (now
commented) evaluation. The purpose is to truly make user and password
optionals.
And yes, you're absolutely right, it should be "||" to avoid
octstr_compare on an undefined value.
Thanks for pointing this out. I've uploaded a new patch here:
http://www.magicom-bcn.net/kannel/full-mo-http-params-20070907.patch
Regards,
Alejandro
On 9/7/07, Vincent CHAVANIS <[EMAIL PROTECTED]> wrote:
> Hi alejandro,
>
> I'm wondering why this condition has been changed
>
> if (user == NULL || pass == NULL) {
> user = octstr_create("");
> pass = octstr_create("");
> }
>
> into:
>
> if (user == NULL && pass == NULL) {
> user = octstr_create("");
> pass = octstr_create("");
> }
>
> I think that we need to check both of these values.
> if user = blah and password = NULL
> we will do octstr_compare with password and this is not safe.
>
> Vincent.
>
> --
> Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
> Service Technique/Reseau - NOC
> Developpement SMS/MMS/Kiosques
> http://www.telemaque.fr/
> [EMAIL PROTECTED]
> Tel : +33 4 92 90 99 84 (fax 9142)
> ----- Original Message -----
> From: "Alejandro Guerrieri" <[EMAIL PROTECTED]>
> To: "Alexander Malysh" <[EMAIL PROTECTED]>
> Cc: <[email protected]>
> Sent: Thursday, September 06, 2007 10:31 PM
> Subject: Re: [PATCH] Support for MO parameters on 'generic' HTTP
> SMSC -
> Secondrevision
>
>
> > Done,
> > Done,
> >
> > New version of the patch, using generic_receive_sms() instead of
> > kannel_receive_sms()
> >
> > http://www.magicom-bcn.net/kannel/full-mo-http-params-20070906.patch
> >
> > Regards,
> >
> > Alejandro
> >
> > On 9/6/07, Alexander Malysh <[EMAIL PROTECTED]> wrote:
> >> Hi,
> >>
> >> please doesn't change kannel http mode. Please define new MO
> >> function for generic HTTP mode instead.
> >>
> >> Alejandro Guerrieri wrote:
> >>
> >> > Hi,
> >> >
> >> > I've improved my patch and added extra flexibility. Now it's
> >> > possible to implement full clickatell functionality (including
> >> > DLR's) by properly configure the 'generic' http smsc.
> >> >
> >> > The patch is available here:
> >> >
> >> > http://magicom-bcn.net/kannel/full-mo-http-params-20070905.patch
> >> >
> >> > The patch allows for this new parameters on config:
> >> >
> >> > * This parameters allows to rename the proper MO parameters to
> >> > whatever you like:
> >> >
> >> > mo-from
> >> > mo-to
> >> > mo-text
> >> > mo-udh
> >> > mo-account
> >> > mo-binfo
> >> > mo-dlr-url
> >> > mo-dlr-mid
> >> > mo-flash
> >> > mo-mclass
> >> > mo-mwi
> >> > mo-coding
> >> > mo-validity
> >> > mo-deferred
> >> > mo-dlr-mask
> >> > mo-dlr-stat -> this special one allows you to rename the
> >> > message_id being returned by an external dlr confirmation, such
> >> > as
> >> > clickatell's "status" parameter.
> >> >
> >> > For example, setting mo-from = whatever, then the "from"
> >> > parameter
> >> > will be renamed "whatever".
> >> >
> >> > * This allows you to rename the return string the http generic
> >> > smsc returns:
> >> >
> >> > mo-ret-accepted
> >> > mo-ret-denied
> >> > mo-ret-unknown-dlr
> >> > mo-ret-missing-args
> >> > mo-ret-udh-mismatch
> >> > mo-ret-udh-long
> >> > mo-ret-auth-failed
> >> > mo-ret-dlr-accepted
> >> > mo-ret-dlr-denied
> >> >
> >> > For example, the mo-ret-accpeted allows you to change the "Sent."
> >> > text you get for anything else.
> >> >
> >> > Now comes the "new" features:
> >> >
> >> > id-from-reply -> When you send an MT message to an external http
> >> > smsc and you ask for a DLR, kannel "invents" a message_id. This
> >> > parameters allows you to get that message id from the external
> >> > source, effectively enabling the use of DLR's with clickatell.
> >> > You
> >> > must fill this field with the text expected _before_ the
> >> > message_id. In the case of clickatell that's "ID:". So, if you
> >> > get
> >> > "ID:12345678" the message_id will be "12345678".
> >> >
> >> > err-from-reply -> Same thing but for error id's.
> >> >
> >> > This 3 parameters allows you to map different external statuses
> >> > to
> >> > kannel dlr statuses:
> >> >
> >> > dlr-success-regex -> maps to DLR_SUCCESS (0x08)
> >> > dlr-permfail-regex -> maps to DLR_BUFFERED (0x04)
> >> > dlr-tempfail-regex -> maps to DLR_FAILED (0x02)
> >> >
> >> > So, to implement clickatell's connectivity for MT and DLR's, you
> >> > just need to configure like this:
> >> >
> >> > group = smsc
> >> > smsc = http
> >> > system-type = generic
> >> > smsc-id = clicka
> >> > allowed-smsc-id = clicka
> >> > port = 15000
> >> > send-url =
> >>
> >> > status-success-regex = "ID" status-permfail-regex = "ERR"
> >> > status-tempfail-regex = "TEMP"
> >> > mo-dlr-mid = apiMsgId
> >> > mo-dlr-stat = status
> >> > id-from-reply = "ID:"
> >> > err-from-reply = "ERR:"
> >> > dlr-success-regex ="(004|008)"
> >> > dlr-permfail-regex = "(001|005|006|007|009|010)"
> >> > dlr-tempfail-regex ="(002|003|011)"
> >> >
> >> > I'll explain a little more:
> >> >
> >> > send-url points to the clickatell http api. A few parameters are
> >> > hardcoded, like api_id, user/pass, etc.
> >> > status-*-regex (current kannel functionality) is used to detect
> >> > whether the message was accepted by clickatell's api.
> >> >
> >> > mo-dlr-* is used to map the DLR parameters to kannel's own.
> >> >
> >> > id/err-from-reply is used to fetch the message/error id on MT
> >> > from
> >> > clickatell's http response. This is mandatory for DLR's only.
> >> >
> >> > dlr-*-regex is used to map the different possible responses to
> >> > different kannel DLR status. So, if kannel responds with "004" or
> >> > "008" a DLR Success will be sent (0x08 for Kannel).
> >> >
> >> > I don't have a two-way account for clickatell, so I couldn't
> >> > test
> >> > the MO part, but it should be as simple as to map the proper
> >> > parameters by configuring mo-* parameters and maybe mapping some
> >> > mo-ret-* strings also.
> >> >
> >> > Last by not least, the goal of this patch wasn't to replace the
> >> > clickatell interface, but to provide a generic mean to implement
> >> > other SMSC's without writing source code and recompiling. The
> >> > clickatell example was just that, an example of the capabilities
> >> > being added.
> >> >
> >> > I'd happily try to model other http smsc's (even extending the
> >> > patch to accomodate extra flexibility), just drop me a line in
> >> > private and send me docs about it.
> >> >
> >> > Regards,
> >>
> >> --
> >> Thanks,
> >> Alex
> >>
> >>
> >>
> >
> >
> > --
> > Alejandro Guerrieri
> > Magicom
> > http://www.magicom-bcn.net/
> > LinkedIn: http://www.linkedin.com/in/aguerrieri
> >
> >
>
>
>
>
--
Alejandro Guerrieri
Magicom
http://www.magicom-bcn.net/
LinkedIn: http://www.linkedin.com/in/aguerrieri