Open Source Telephony
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [RFC] "magic" numbers (145,129)
Date: Mon, 17 Jan 2011 10:32:29 -0600	[thread overview]
Message-ID: <4D346F1D.2010502@gmail.com> (raw)
In-Reply-To: <453fcdb2b40bbc8f6628d8912df89588.squirrel@squirrel-webmail.surftown.com>

[-- Attachment #1: Type: text/plain, Size: 3327 bytes --]

Hi George,

On 01/16/2011 12:39 PM, George Matveev wrote:
> Hi,
> 
> this is proposal for a patch series which would replace
> "magic" numbers 145 and 129 with well defined enumeration.
> 
> Currently we have the following (eliminating sms and CAIF related code):
> 
> geo(a)fermat:/home/work/ofono/ofono$ grep -nr 145 drivers src|grep -v
> sms|grep -v CAIF
> drivers/huaweimodem/voicecall.c:123:	if (ph->type == 145)
> drivers/stemodem/voicecall.c:195:	if (ph->type == 145)
> drivers/atmodem/voicecall.c:374:	if (ph->type == 145)
> drivers/calypsomodem/voicecall.c:88:	if (ph->type == 145)
> drivers/hfpmodem/voicecall.c:369:	if (ph->type == 145)
> drivers/ifxmodem/voicecall.c:313:	if (ph->type == 145)
> src/phonebook.c:41:#define TYPE_INTERNATIONAL 145
> src/common.c:74:	{ 145,	"Message class not supported" },
> src/common.c:408:	if (ph->type == 145 && (strlen(ph->number) > 0) &&
> src/common.c:425:		ph->type = 145;	/* International */
> geo(a)fermat:/home/work/ofono/ofono$
> 
> Even though TYPE_INTERNATIONAL is defined it is used only once:
> 
> geo(a)fermat:/home/work/ofono/ofono$ grep -nr _INTERNATIONAL .|grep -v SMS
> ./src/phonebook.c:41:#define TYPE_INTERNATIONAL 145
> ./src/phonebook.c:179:	if ((type == TYPE_INTERNATIONAL) && (number[0] !=
> '+'))
> geo(a)fermat:/home/work/ofono/ofono$
> 
> And for "magic" number 129 we have:
> 
> geo(a)fermat:/home/work/ofono/ofono$ grep -nr 129 drivers src|grep -v
> sms|grep -v CAIF
> drivers/atmodem/call-forwarding.c:92:		list[num].phone_number.type = 129;
> drivers/atmodem/atutil.c:115:		int number_type = 129;
> drivers/atmodem/ssn.c:72:	ph.type = 129;
> drivers/calypsomodem/voicecall.c:298:		type = 129;
> src/call-forwarding.c:794:		ph.type = 129;
> src/common.c:70:	{ 129,	"Short message type 0 not supported" },
> src/common.c:428:		ph->type = 129;	/* Local */
> geo(a)fermat:/home/work/ofono/ofono$
> 
> 
> So if we introduce enum phone_number_type in src/common.h
> similar to sms_number_type defined in smsutils.h:
> 
> enum phone_number_type {
> 	PHONE_NUMBER_TYPE_LOCAL = 0,
> 	PHONE_NUMBER_TYPE_INTER = 1
> };
> 
> and use it consistently with phone type then we may avoid magic numbers
> and need to guess what they mean.
> 

As Rajesh mentions in the other reply you at least have to assign proper
values to the enum.  Assigning 0 and 1 is not going to work.  Also,
please use proper naming.  PHONE_NUMBER_TYPE_INTER makes no sense to me.
 If you mean INTERNATIONAL then please spell that out.

Refer to 24.008 Section 10.5.4.7 for more details.

> Also if we do so there will be no need to include any new headers in
> voicecall.c files in case of
> stemodem and hfpmodem drivers. Only voicecall.c for atmodem, calypsomodem,
> and ifxmodem drivers will have to include common.h.
> 
> If project maintainers agree that such patch (series) might make oFono
> code more structured
> and easier to understand (no need to comment on each line) I'll submit a
> patch series shortly.

Personally I don't really consider these as 'magic numbers'.  They're so
widely used in 27.007 that if you don't know what type 145/128/129 is,
you have bigger problems ;)  However, if you really feel this makes
things better I'm okay with accepting such a patch series.

Regards,
-Denis

  parent reply	other threads:[~2011-01-17 16:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-16 18:39 [RFC] "magic" numbers (145,129) George Matveev
2011-01-16 23:48 ` Rajesh.Nagaiah
2011-01-17 16:32 ` Denis Kenzior [this message]
2011-01-17 21:10   ` George Matveev
2011-01-17 23:54     ` Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D346F1D.2010502@gmail.com \
    --to=denkenz@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox