Re: (unknown)

Alexander Malysh <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hi,

this will not work. You should just call bb_smscconn_failed(.., TMP, 
...) and don't set connection status. Because who will set connection to 
ONLINE status? With this patch you will make connection unusable after 
first temp. failure.

Thanks,
Alex

Vincent CHAVANIS schrieb:
> Ok, so we could have something like this :
> 
> --- /gateway-cvs/gw/smsc/smsc_http.c    2006-04-19 13:03:21.000000000 +0200
> +++ /gateway/gw/smsc/smsc_http.c        2006-05-04 16:10:28.000000000 +0200
> @@ -396,9 +396,20 @@
>              octstr_case_compare(body, octstr_imm("Ok.")) == 0 ||
>              octstr_ncompare(body, octstr_imm("Result: OK"),10) == 0)) {
>          bb_smscconn_sent(conn, msg, NULL);
> +    } else if ((status == HTTP_INTERNAL_SERVER_ERROR || status == HTTP_NOT_IMPLEMENTED
> +        || status == HTTP_BAD_GATEWAY || status == HTTP_SERVICE_UNAVAILABLE)
> +        && (octstr_case_compare(body, octstr_imm("Try again later.")) == 0)) {
> +          ConnData *conndata = conn->data;
> +          conn->status = SMSCCONN_RECONNECTING;
> +          debug("smsc.http.kannel", 0, "HTTP[%s]: Server is busy/unavailable, re-sending request",
> +                octstr_get_cstr(conn->id));
> +          bb_smscconn_send_failed(conn, msg,
> +                      SMSCCONN_FAILED_TEMPORARILY, NULL);
>      } else {
> +        error(0, "HTTP[%s]: Message was rejected. SMSC reponse was: <%s>",
> +              octstr_get_cstr(conn->id), octstr_get_cstr(body));
>          bb_smscconn_send_failed(conn, msg,
> -                   SMSCCONN_FAILED_MALFORMED, octstr_duplicate(body));
> +                    SMSCCONN_FAILED_REJECTED, octstr_duplicate(body));
>      }
>  }
> 
> 
> 
> --
> Telemaque - NICE - (FR)
> Service Technique - Developpement
> http://www.telemaque.fr/
> [email protected]
> Tel : +33 4 93 97 71 64 (fax 68)
> 
> ----- Original Message ----- 
> From: "Alexander Malysh" <[email protected]>
> To: <[email protected]>
> Sent: Thursday, May 04, 2006 2:30 PM
> Subject: Re: (unknown)
> 
> 
>> Hi,
>>
>> I don't think that sleep in that case the best approach.
>> You could just call:
>> bb_smscconn_send_failed(...,...,SMSCCONN_FAILED_TEMPORARILY,...)
>>
>> and smscconn core will take care of resending.
>>
>> Thanks,
>> Alex
>>
>> ------------------------------------------------------------------------
>>
>> --- /gateway-cvs/gw/smsc/smsc_http.c    2006-04-19 13:03:21.000000000 +0200
>> +++ /gateway/gw/smsc/smsc_http.c        2006-05-04 16:10:28.000000000 +0200
>> @@ -396,9 +396,20 @@
>>              octstr_case_compare(body, octstr_imm("Ok.")) == 0 ||
>>              octstr_ncompare(body, octstr_imm("Result: OK"),10) == 0)) {
>>          bb_smscconn_sent(conn, msg, NULL);
>> +    } else if ((status == HTTP_INTERNAL_SERVER_ERROR || status == HTTP_NOT_IMPLEMENTED
>> +        || status == HTTP_BAD_GATEWAY || status == HTTP_SERVICE_UNAVAILABLE)
>> +        && (octstr_case_compare(body, octstr_imm("Try again later.")) == 0)) {
>> +          ConnData *conndata = conn->data;
>> +          conn->status = SMSCCONN_RECONNECTING;
>> +          debug("smsc.http.kannel", 0, "HTTP[%s]: Server is busy/unavailable, re-sending request",
>> +                octstr_get_cstr(conn->id));
>> +          bb_smscconn_send_failed(conn, msg,
>> +                      SMSCCONN_FAILED_TEMPORARILY, NULL);
>>      } else {
>> +        error(0, "HTTP[%s]: Message was rejected. SMSC reponse was: <%s>",
>> +              octstr_get_cstr(conn->id), octstr_get_cstr(body));
>>          bb_smscconn_send_failed(conn, msg,
>> -                   SMSCCONN_FAILED_MALFORMED, octstr_duplicate(body));
>> +                    SMSCCONN_FAILED_REJECTED, octstr_duplicate(body));
>>      }
>>  }
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.