public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH iproute2 0/2] lib names: Refactoring and cleanups
@ 2014-12-06  2:05 Vadim Kochan
  2014-12-06  2:05 ` [PATCH iproute2 1/2] lib names: Use CONFDIR for specify 'group' file path Vadim Kochan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Vadim Kochan @ 2014-12-06  2:05 UTC (permalink / raw)
  To: netdev; +Cc: Vadim Kochan

Some cleanups and refactoring in lib/rt_names.c:

    #1 Replaced using of /etc/iproute2 path by CONFDIR define
        when initializing tables of group names.

    #2 Added helper to have one func for parsing id and names from
        db files.

Vadim Kochan (2):
  lib names: Use CONFDIR for specify 'group' file path
  lib names: Add helper func for parse id and name from file

 lib/rt_names.c | 70 +++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 40 insertions(+), 30 deletions(-)

-- 
2.1.3

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH iproute2 1/2] lib names: Use CONFDIR for specify 'group' file path
  2014-12-06  2:05 [PATCH iproute2 0/2] lib names: Refactoring and cleanups Vadim Kochan
@ 2014-12-06  2:05 ` Vadim Kochan
  2014-12-06  2:05 ` [PATCH iproute2 2/2] lib names: Add helper func for parse id and name from file Vadim Kochan
  2014-12-10  4:38 ` [PATCH iproute2 0/2] lib names: Refactoring and cleanups Stephen Hemminger
  2 siblings, 0 replies; 6+ messages in thread
From: Vadim Kochan @ 2014-12-06  2:05 UTC (permalink / raw)
  To: netdev; +Cc: Vadim Kochan

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 lib/rt_names.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/rt_names.c b/lib/rt_names.c
index 369e0f4..e6a1e01 100644
--- a/lib/rt_names.c
+++ b/lib/rt_names.c
@@ -469,7 +469,7 @@ static int rtnl_group_init;
 static void rtnl_group_initialize(void)
 {
 	rtnl_group_init = 1;
-	rtnl_hash_initialize("/etc/iproute2/group",
+	rtnl_hash_initialize(CONFDIR "/group",
 			     rtnl_group_hash, 256);
 }
 
-- 
2.1.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH iproute2 2/2] lib names: Add helper func for parse id and name from file
  2014-12-06  2:05 [PATCH iproute2 0/2] lib names: Refactoring and cleanups Vadim Kochan
  2014-12-06  2:05 ` [PATCH iproute2 1/2] lib names: Use CONFDIR for specify 'group' file path Vadim Kochan
@ 2014-12-06  2:05 ` Vadim Kochan
  2014-12-10  4:38 ` [PATCH iproute2 0/2] lib names: Refactoring and cleanups Stephen Hemminger
  2 siblings, 0 replies; 6+ messages in thread
From: Vadim Kochan @ 2014-12-06  2:05 UTC (permalink / raw)
  To: netdev; +Cc: Vadim Kochan

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 lib/rt_names.c | 68 +++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 39 insertions(+), 29 deletions(-)

diff --git a/lib/rt_names.c b/lib/rt_names.c
index e6a1e01..2f14723 100644
--- a/lib/rt_names.c
+++ b/lib/rt_names.c
@@ -27,43 +27,62 @@
 #define CONFDIR "/etc/iproute2"
 #endif
 
+#define NAME_MAX_LEN 512
+
 struct rtnl_hash_entry {
 	struct rtnl_hash_entry *next;
 	const char *		name;
 	unsigned int		id;
 };
 
+static int fread_id_name(FILE *fp, int *id, char *namebuf)
+{
+	char buf[NAME_MAX_LEN];
+	while (fgets(buf, sizeof(buf), fp)) {
+		char *p = buf;
+
+		while (*p == ' ' || *p == '\t')
+			p++;
+
+		if (*p == '#' || *p == '\n' || *p == 0)
+			continue;
+
+		if (sscanf(p, "0x%x %s\n", id, namebuf) != 2 &&
+				sscanf(p, "0x%x %s #", id, namebuf) != 2 &&
+				sscanf(p, "%d %s\n", id, namebuf) != 2 &&
+				sscanf(p, "%d %s #", id, namebuf) != 2) {
+			strcpy(namebuf, p);
+			return -1;
+		}
+		return 1;
+	}
+	return 0;
+}
+
 static void
 rtnl_hash_initialize(const char *file, struct rtnl_hash_entry **hash, int size)
 {
 	struct rtnl_hash_entry *entry;
-	char buf[512];
 	FILE *fp;
+	int id;
+	char namebuf[NAME_MAX_LEN] = {0};
+	int ret;
 
 	fp = fopen(file, "r");
 	if (!fp)
 		return;
-	while (fgets(buf, sizeof(buf), fp)) {
-		char *p = buf;
-		int id;
-		char namebuf[512];
 
-		while (*p == ' ' || *p == '\t')
-			p++;
-		if (*p == '#' || *p == '\n' || *p == 0)
-			continue;
-		if (sscanf(p, "0x%x %s\n", &id, namebuf) != 2 &&
-		    sscanf(p, "0x%x %s #", &id, namebuf) != 2 &&
-		    sscanf(p, "%d %s\n", &id, namebuf) != 2 &&
-		    sscanf(p, "%d %s #", &id, namebuf) != 2) {
+	while ((ret = fread_id_name(fp, &id, &namebuf[0]))) {
+		if (ret == -1) {
 			fprintf(stderr, "Database %s is corrupted at %s\n",
-				file, p);
+					file, namebuf);
 			fclose(fp);
 			return;
 		}
 
 		if (id<0)
 			continue;
+
 		entry = malloc(sizeof(*entry));
 		entry->id   = id;
 		entry->name = strdup(namebuf);
@@ -75,31 +94,22 @@ rtnl_hash_initialize(const char *file, struct rtnl_hash_entry **hash, int size)
 
 static void rtnl_tab_initialize(const char *file, char **tab, int size)
 {
-	char buf[512];
 	FILE *fp;
+	int id;
+	char namebuf[NAME_MAX_LEN] = {0};
+	int ret;
 
 	fp = fopen(file, "r");
 	if (!fp)
 		return;
-	while (fgets(buf, sizeof(buf), fp)) {
-		char *p = buf;
-		int id;
-		char namebuf[512];
 
-		while (*p == ' ' || *p == '\t')
-			p++;
-		if (*p == '#' || *p == '\n' || *p == 0)
-			continue;
-		if (sscanf(p, "0x%x %s\n", &id, namebuf) != 2 &&
-		    sscanf(p, "0x%x %s #", &id, namebuf) != 2 &&
-		    sscanf(p, "%d %s\n", &id, namebuf) != 2 &&
-		    sscanf(p, "%d %s #", &id, namebuf) != 2) {
+	while ((ret = fread_id_name(fp, &id, &namebuf[0]))) {
+		if (ret == -1) {
 			fprintf(stderr, "Database %s is corrupted at %s\n",
-				file, p);
+					file, namebuf);
 			fclose(fp);
 			return;
 		}
-
 		if (id<0 || id>size)
 			continue;
 
-- 
2.1.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH iproute2 0/2] lib names: Refactoring and cleanups
  2014-12-06  2:05 [PATCH iproute2 0/2] lib names: Refactoring and cleanups Vadim Kochan
  2014-12-06  2:05 ` [PATCH iproute2 1/2] lib names: Use CONFDIR for specify 'group' file path Vadim Kochan
  2014-12-06  2:05 ` [PATCH iproute2 2/2] lib names: Add helper func for parse id and name from file Vadim Kochan
@ 2014-12-10  4:38 ` Stephen Hemminger
  2014-12-10 15:10   ` vadim4j
  2 siblings, 1 reply; 6+ messages in thread
From: Stephen Hemminger @ 2014-12-10  4:38 UTC (permalink / raw)
  To: Vadim Kochan; +Cc: netdev

On Sat,  6 Dec 2014 04:05:10 +0200
Vadim Kochan <vadim4j@gmail.com> wrote:

> Some cleanups and refactoring in lib/rt_names.c:
> 
>     #1 Replaced using of /etc/iproute2 path by CONFDIR define
>         when initializing tables of group names.
> 
>     #2 Added helper to have one func for parsing id and names from
>         db files.
> 
> Vadim Kochan (2):
>   lib names: Use CONFDIR for specify 'group' file path
>   lib names: Add helper func for parse id and name from file
> 
>  lib/rt_names.c | 70 +++++++++++++++++++++++++++++++++-------------------------
>  1 file changed, 40 insertions(+), 30 deletions(-)
> 

Both applied

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH iproute2 0/2] lib names: Refactoring and cleanups
  2014-12-10  4:38 ` [PATCH iproute2 0/2] lib names: Refactoring and cleanups Stephen Hemminger
@ 2014-12-10 15:10   ` vadim4j
  2014-12-10 23:46     ` Stephen Hemminger
  0 siblings, 1 reply; 6+ messages in thread
From: vadim4j @ 2014-12-10 15:10 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Vadim Kochan, netdev

On Tue, Dec 09, 2014 at 08:38:56PM -0800, Stephen Hemminger wrote:
> On Sat,  6 Dec 2014 04:05:10 +0200
> Vadim Kochan <vadim4j@gmail.com> wrote:
> 
> > Some cleanups and refactoring in lib/rt_names.c:
> > 
> >     #1 Replaced using of /etc/iproute2 path by CONFDIR define
> >         when initializing tables of group names.
> > 
> >     #2 Added helper to have one func for parsing id and names from
> >         db files.
> > 
> > Vadim Kochan (2):
> >   lib names: Use CONFDIR for specify 'group' file path
> >   lib names: Add helper func for parse id and name from file
> > 
> >  lib/rt_names.c | 70 +++++++++++++++++++++++++++++++++-------------------------
> >  1 file changed, 40 insertions(+), 30 deletions(-)
> > 
> 
> Both applied

Hi Stephen,

I see a warning (after 'make clean && make') about using 'const' in lib/rt_names.c:

    static const char * rtnl_rtscope_tab[256] = {
            "global",
    };

which came with PATCH with a subject:

    "lib names: Add helper func for parse id and name from file" (f00073e8b)

but in the PATCH version which was sent by me in email I did not see this.

Why it was needed ?

Regards,
Vadim

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH iproute2 0/2] lib names: Refactoring and cleanups
  2014-12-10 15:10   ` vadim4j
@ 2014-12-10 23:46     ` Stephen Hemminger
  0 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2014-12-10 23:46 UTC (permalink / raw)
  To: vadim4j; +Cc: netdev

On Wed, 10 Dec 2014 17:10:29 +0200
vadim4j@gmail.com wrote:

> On Tue, Dec 09, 2014 at 08:38:56PM -0800, Stephen Hemminger wrote:
> > On Sat,  6 Dec 2014 04:05:10 +0200
> > Vadim Kochan <vadim4j@gmail.com> wrote:
> > 
> > > Some cleanups and refactoring in lib/rt_names.c:
> > > 
> > >     #1 Replaced using of /etc/iproute2 path by CONFDIR define
> > >         when initializing tables of group names.
> > > 
> > >     #2 Added helper to have one func for parsing id and names from
> > >         db files.
> > > 
> > > Vadim Kochan (2):
> > >   lib names: Use CONFDIR for specify 'group' file path
> > >   lib names: Add helper func for parse id and name from file
> > > 
> > >  lib/rt_names.c | 70 +++++++++++++++++++++++++++++++++-------------------------
> > >  1 file changed, 40 insertions(+), 30 deletions(-)
> > > 
> > 
> > Both applied
> 
> Hi Stephen,
> 
> I see a warning (after 'make clean && make') about using 'const' in lib/rt_names.c:
> 
>     static const char * rtnl_rtscope_tab[256] = {
>             "global",
>     };
> 
> which came with PATCH with a subject:
> 
>     "lib names: Add helper func for parse id and name from file" (f00073e8b)
> 
> but in the PATCH version which was sent by me in email I did not see this.
> 
> Why it was needed ?
> 
> Regards,
> Vadim

My gaff. Fixed but not pushed, holding of until include snafu is fixed

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-12-10 23:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-06  2:05 [PATCH iproute2 0/2] lib names: Refactoring and cleanups Vadim Kochan
2014-12-06  2:05 ` [PATCH iproute2 1/2] lib names: Use CONFDIR for specify 'group' file path Vadim Kochan
2014-12-06  2:05 ` [PATCH iproute2 2/2] lib names: Add helper func for parse id and name from file Vadim Kochan
2014-12-10  4:38 ` [PATCH iproute2 0/2] lib names: Refactoring and cleanups Stephen Hemminger
2014-12-10 15:10   ` vadim4j
2014-12-10 23:46     ` Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox