All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [RFC_PATCH 3/4] smsutil:add proper checking of sms-address in status report-function
Date: Tue, 17 Aug 2010 13:16:26 -0500	[thread overview]
Message-ID: <4C6AD1FA.3050504@gmail.com> (raw)
In-Reply-To: <1281942533-9126-3-git-send-email-petteri.tikander@ixonos.com>

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

Hi Petteri,

On 08/16/2010 02:08 AM, Petteri Tikander wrote:
> ---
>  src/smsutil.c |   54 ++++++++++++++++++++++++++----------------------------
>  1 files changed, 26 insertions(+), 28 deletions(-)
> 
> diff --git a/src/smsutil.c b/src/smsutil.c
> index 0972988..25e405c 100644
> --- a/src/smsutil.c
> +++ b/src/smsutil.c
> @@ -46,7 +46,7 @@
>  #define SMS_BACKUP_PATH_FILE SMS_BACKUP_PATH_DIR "/%03i"
>  
>  #define SMS_SR_BACKUP_PATH STORAGEDIR "/%s/sms_sr"
> -#define SMS_SR_BACKUP_PATH_DIR SMS_SR_BACKUP_PATH "/%s-%i-%i"
> +#define SMS_SR_BACKUP_PATH_DIR SMS_SR_BACKUP_PATH "/%s"

Aha you're already following my comments from last patch :)  Can you
please modify the previous patch to include this change?

>  #define SMS_SR_BACKUP_PATH_FILE SMS_SR_BACKUP_PATH_DIR "/%i"
>  
>  #define SMS_ADDR_FMT "%24[0-9A-F]"
> @@ -2417,7 +2417,7 @@ static void sms_assembly_backup_free(struct sms_assembly *assembly,
>  {
>  	char *path;
>  	int seq;
> -	char straddr[25];
> +	DECLARE_SMS_ADDR_STR(straddr);

Same comment as above, squish into previous patch.

>  
>  	if (!assembly->imsi)
>  		return;
> @@ -2652,7 +2652,8 @@ static void sr_assembly_load_backup(GHashTable *assembly_table,
>  {
>  	char *path;
>  	struct dirent **ids;
> -	struct sms_address sms_addr, *addr;
> +	struct sms_address addr;
> +	DECLARE_SMS_ADDR_STR(straddr);

Here as well, squish into previous patch.

>  	struct id_table_node *node;
>  	GHashTable *id_table;
>  	int len;
> @@ -2666,13 +2667,12 @@ static void sr_assembly_load_backup(GHashTable *assembly_table,
>  	if (addr_dir->d_type != DT_DIR)
>  		return;
>  
> -	addr = &sms_addr;
> +	/* Max of SMS address size is 12 bytes, hex encoded */
> +	if (sscanf(addr_dir->d_name, SMS_ADDR_FMT, straddr) < 1)
> +		return;
>  
> -	if (sscanf(addr_dir->d_name, SMS_ADDR_FMT "-%i-%i",
> -			addr->address, (int *) &addr->number_type,
> -			(int *) &addr->numbering_plan) < 3) {
> +	if (sms_assembly_extract_address(straddr, &addr) == FALSE)
>  		return;
> -	}

And here

>  
>  	/* Go through different msg_ids. */
>  	path = g_strdup_printf(SMS_SR_BACKUP_PATH "/%s", imsi,
> @@ -2687,12 +2687,12 @@ static void sr_assembly_load_backup(GHashTable *assembly_table,
>  	id_table = g_hash_table_new_full(g_int_hash, g_int_equal,
>  							g_free, g_free);
>  
> -	assembly_table_key = g_try_malloc(sizeof(addr->address));
> +	assembly_table_key = g_try_malloc(sizeof(addr.address));
>  
>  	if (assembly_table_key == NULL)
>  		return;
>  
> -	g_strlcpy(assembly_table_key, addr->address, sizeof(addr->address));
> +	g_strlcpy(assembly_table_key, addr.address, sizeof(addr.address));
>  	g_hash_table_insert(assembly_table, assembly_table_key, id_table);

g_strdup(sms_address_to_string(&addr)) seems better.  Squish this one
into the previous patch as well.

>  
>  	while (len--) {
> @@ -2716,7 +2716,7 @@ static void sr_assembly_load_backup(GHashTable *assembly_table,
>  		}
>  		/* Gather the data for id_table node */
>  		node = g_new0(struct id_table_node, 1);
> -		memcpy(&node->to, addr, sizeof(*addr));
> +		memcpy(&node->to, &addr, sizeof(addr));
>  		node->expiration = segment_stat.st_mtime;
>  		memcpy(node->mrs, buf, sizeof(node->mrs));
>  		memcpy(&node->total_mrs, buf + sizeof(node->mrs),
> @@ -2766,7 +2766,6 @@ struct status_report_assembly *status_report_assembly_new(const char *imsi)
>  		/* Go through different addresses. Each address can relate to
>  		 * 1-n msg_ids.
>  		 */
> -

Again, please leave this newline here.

>  		while (len--) {
>  			sr_assembly_load_backup(ret->assembly_table, imsi,
>  								addresses[len]);
> @@ -2786,10 +2785,14 @@ static gboolean sr_assembly_add_fragment_backup(const char *imsi,
>  	int len = sizeof(node->mrs) + sizeof(node->total_mrs) +
>  			sizeof(node->sent_mrs) + sizeof(node->deliverable);
>  	unsigned char buf[len];
> +	DECLARE_SMS_ADDR_STR(straddr);
>  
>  	if (!imsi)
>  		return FALSE;
>  
> +	if (sms_address_to_hex_string(&node->to, straddr) == FALSE)
> +		return FALSE;
> +

And squish here as well..

>  	memcpy(buf, node->mrs, sizeof(node->mrs));
>  
>  	memcpy(buf + sizeof(node->mrs), &node->total_mrs,
> @@ -2801,10 +2804,9 @@ static gboolean sr_assembly_add_fragment_backup(const char *imsi,
>  	memcpy(buf + sizeof(node->mrs) + sizeof(node->total_mrs) +
>  	sizeof(node->sent_mrs),	&node->deliverable, sizeof(node->deliverable));
>  
> -	/* storagedir/%s/sms_sr/%s-%i-%i/%i */
> +	/* storagedir/%s/sms_sr/%s/%i */
>  	if (write_file(buf, len, SMS_BACKUP_MODE, SMS_SR_BACKUP_PATH_FILE, imsi,
> -			node->to.address, node->to.number_type,
> -			node->to.numbering_plan, msg_id) != len)
> +			straddr, msg_id) != len)

And here

>  		return FALSE;
>  
>  	return TRUE;
> @@ -2815,19 +2817,20 @@ static gboolean sr_assembly_remove_fragment_backup(const char *imsi,
>  					unsigned int msg_id)
>  {
>  	char *path;
> +	DECLARE_SMS_ADDR_STR(straddr);
>  
>  	if (!imsi)
>  		return FALSE;
>  
> -	path = g_strdup_printf(SMS_SR_BACKUP_PATH_FILE, imsi, node->to.address,
> -				node->to.number_type, node->to.numbering_plan,
> -				msg_id);
> +	if (sms_address_to_hex_string(&node->to, straddr) == FALSE)
> +		return FALSE;
> +
> +	path = g_strdup_printf(SMS_SR_BACKUP_PATH_FILE, imsi, straddr, msg_id);
>  
>  	unlink(path);
>  	g_free(path);
>  
> -	path = g_strdup_printf(SMS_SR_BACKUP_PATH_DIR, imsi, node->to.address,
> -				node->to.number_type, node->to.numbering_plan);
> +	path = g_strdup_printf(SMS_SR_BACKUP_PATH_DIR, imsi, straddr);

And squish this chunk into previous as well.

>  
>  	/* If the address does not have relating msg_ids anymore, remove it */
>  	rmdir(path);
> @@ -2836,14 +2839,6 @@ static gboolean sr_assembly_remove_fragment_backup(const char *imsi,
>  	return TRUE;
>  }
>  
> -static gboolean sr_assembly_update_fragment_backup(const char *imsi,
> -					const struct id_table_node *node,
> -					unsigned int msg_id)
> -{
> -	return sr_assembly_remove_fragment_backup(imsi, node, msg_id) &&
> -			sr_assembly_add_fragment_backup(imsi, node, msg_id);
> -}
> -

Simply removing this function from the previous patch is better.

>  void status_report_assembly_free(struct status_report_assembly *assembly)
>  {
>  	g_hash_table_destroy(assembly->assembly_table);
> @@ -2930,6 +2925,9 @@ gboolean status_report_assembly_report(struct status_report_assembly *assembly,
>  	}
>  
>  	if (pending == TRUE && node->deliverable == TRUE) {
> +		/* More status reports expected, and already received
> +		   reports completed. Update backup file.
> +		 */

Please update this comment based on the coding style guidelines.  For
multi line comments we prefer

/*
 * Comment line 1...
 * Comment line 2...
 */

>  		sr_assembly_add_fragment_backup(assembly->imsi, node,
>  						*((unsigned int *) key));
>  

Regards,
-Denis

  parent reply	other threads:[~2010-08-17 18:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1281942533-9126-1-git-send-email-petteri.tikander@ixonos.com>
2010-08-16  7:08 ` [RFC_PATCH 2/4] smsutil: Editorial changes to sms status report function Petteri Tikander
2010-08-16  7:08   ` [RFC_PATCH 3/4] smsutil:add proper checking of sms-address in status report-function Petteri Tikander
2010-08-16  7:08     ` [RFC_PATCH 4/4] smsutil: added function for data handling of status report Petteri Tikander
2010-08-17 19:07       ` Denis Kenzior
2010-08-18 17:53         ` Petteri Tikander
2010-08-18 18:11           ` Denis Kenzior
2010-08-17 18:16     ` Denis Kenzior [this message]
2010-08-17 18:10   ` [RFC_PATCH 2/4] smsutil: Editorial changes to sms status report function Denis Kenzior
2010-08-18 17:40     ` Petteri Tikander
2010-08-18 18:09       ` 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=4C6AD1FA.3050504@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.