From: Patrick McHardy <kaber@trash.net>
To: Eric Leblond <eric@inl.fr>
Cc: Harald Welte <laforge@netfilter.org>,
netfilter-devel@lists.netfilter.org,
Pablo Neira Ayuso <pablo@netfilter.org>,
Vincent Deffontaines <vincent@inl.fr>
Subject: Re: [Patch 1/2] libnfnetlink, iface conversion to string
Date: Fri, 19 Jan 2007 16:22:50 +0100 [thread overview]
Message-ID: <45B0E24A.7040906@trash.net> (raw)
In-Reply-To: <1169163050.8926.16.camel@localhost>
Eric Leblond wrote:
> Index: src/rtnl.c
> ===================================================================
> --- src/rtnl.c (révision 6736)
> +++ src/rtnl.c (copie de travail)
> @@ -116,7 +116,7 @@
> struct sockaddr_nl nladdr;
>
> memset(&nladdr, 0, sizeof(nladdr));
> - memset(&req, 0, sizeof(req));
> + memset(&req, 0, sizeof(req));
Reindenting, but fine ..
> nladdr.nl_family = AF_NETLINK;
>
> req.nlh.nlmsg_len = sizeof(req);
> @@ -127,11 +127,11 @@
> req.g.rtgen_family = AF_INET;
>
> return sendto(rtnl_fd, (void*)&req, sizeof(req), 0,
> - (struct sockaddr*)&nladdr, sizeof(nladdr));
> + (struct sockaddr*)&nladdr, sizeof(nladdr));
This one isn't.
> }
>
> /* rtnl_receive - receive netlink packets from rtnetlink socket */
> -int rtnl_receive()
> +int rtnl_receive(int rtnl_fd)
header file needs to be fixed as well. Is the global rtnl_fd still
needed?
> {
> int status;
> char buf[8192];
> Index: src/iftable.c
> ===================================================================
> --- src/iftable.c (révision 6736)
> +++ src/iftable.c (copie de travail)
> @@ -2,7 +2,7 @@
> *
> * (C) 2004 by Astaro AG, written by Harald Welte <hwelte@astaro.com>
> *
> - * This software is Free Software and licensed under GNU GPLv2.
> + * This software is Free Software and licensed under GNU GPLv2.
Please do cleanup in seperate patches.
> *
> */
>
> @@ -23,8 +23,8 @@
>
> #define iftb_log(x, ...)
>
> -struct ifindex_map {
> - struct ifindex_map *next;
> +struct ifindex_map_t {
> + struct ifindex_map_t *next;
No useless renaming without a reason please.
>
> u_int32_t index;
> u_int32_t type;
> @@ -34,7 +34,7 @@
> char name[16];
> };
>
> -static struct ifindex_map *ifindex_map[16];
> +static struct ifindex_map_t *ifindex_map[16];
>
> /* iftable_dump - Dump the interface table to a given file stream
> * @outfd: file stream to which table should be dumped
> @@ -44,7 +44,7 @@
> int i;
>
> for (i = 0; i < 16; i++) {
> - struct ifindex_map *im;
> + struct ifindex_map_t *im;
> for (im = ifindex_map[i]; im; im = im->next) {
> fprintf(outfd, "%u %s", im->index, im->name);
> if (!(im->flags & IFF_UP))
> @@ -67,7 +67,7 @@
> {
> unsigned int hash;
> struct ifinfomsg *ifi_msg = NLMSG_DATA(n);
> - struct ifindex_map *im, **imp;
> + struct ifindex_map_t *im, **imp;
> struct rtattr *cb[IFLA_MAX+1];
>
> if (n->nlmsg_type != RTM_NEWLINK)
> @@ -108,7 +108,7 @@
> iftb_log(LOG_DEBUG, "creating new iftable (ifindex=%u)",
> im->index);
> }
> -
> +
> im->type = ifi_msg->ifi_type;
> im->flags = ifi_msg->ifi_flags;
> if (cb[IFLA_ADDRESS]) {
> @@ -129,14 +129,13 @@
> * @n: netlink message header of a RTM_DELLINK nlmsg
> * @arg: not used
> *
> - * Delete an entry from the interface table.
> + * Delete an entry from the interface table.
> * Returns -1 on error, 0 if no matching entry was found or 1 on success.
> */
> int iftable_del(struct nlmsghdr *n, void *arg)
> {
> struct ifinfomsg *ifi_msg = NLMSG_DATA(n);
> struct rtattr *cb[IFLA_MAX+1];
> - struct ifindex_map *im;
>
> if (n->nlmsg_type != RTM_DELLINK) {
> iftb_log(LOG_ERROR,
> @@ -157,15 +156,15 @@
>
> return 1;
> }
> -
> -/* ifindex_2name - get the name for an ifindex
> +
> +/* nl_ifindex_2name - get the name for an ifindex
> * @index: ifindex to be resolved
> *
> * Return value: character string containing name of interface
> */
> -char *ifindex_2name(unsigned int index)
> +char *nlif_index_2name(unsigned int index)
> {
> - struct ifindex_map *im;
> + struct ifindex_map_t *im;
>
> if (index == 0)
> return "*";
> @@ -183,7 +182,7 @@
> */
> int iftable_up(unsigned int index)
> {
> - struct ifindex_map *im;
> + struct ifindex_map_t *im;
>
> for (im = ifindex_map[index&0xF]; im; im = im->next) {
> if (im->index == index) {
> @@ -208,6 +207,14 @@
> if (fini)
> goto cleanup;
>
> + memset(ifindex_map,0,sizeof(ifindex_map));
whitespace after comma.
> +
> + ret = rtnl_init();
> +
> + if (ret == -1) {
> + goto cleanup_none;
> + }
Please no parens around single expressions.
> +
> if (rtnl_handler_register(&handlers[0]) < 0) {
> ret = -1;
> goto cleanup_none;
> @@ -223,7 +230,7 @@
> goto cleanup_1;
> }
>
> - return 0;
> + return ret;
>
> #if 0
> if (rtnl_wilddump_requet(rtnl_fd, AF_UNSPEC, RTM_GETLINK) < 0) {
> @@ -243,19 +250,30 @@
> return ret;
> }
>
> -/* iftable_init - Initialize interface table
> +/** nl_iftable_init - Initialize interface table
> + *
> + * Initialize rtnl interface and interface table
> + *
> + * \return file descriptor to netlink socket
> */
> -int iftable_init(void)
> +int nlif_table_init(void)
> {
> iftb_log(LOG_DEBUG, "%s", __FUNCTION__);
> return init_or_fini(0);
> }
>
> -/* iftable_fini - Destructor of interface table
> +/* nl_iftable_fini - Destructor of interface table
> */
> -void iftable_fini(void)
> +void nlif_table_fini(void)
> {
> init_or_fini(1);
> }
>
> +/**
> + * \return 0 if OK
> + */
> +int nlif_treat_msg(int fd)
> +{
> + return rtnl_receive(fd);
> +}
>
> Index: src/Makefile.am
> ===================================================================
> --- src/Makefile.am (révision 6736)
> +++ src/Makefile.am (copie de travail)
> @@ -8,4 +8,4 @@
>
> libnfnetlink_la_LDFLAGS = -Wc,-nostartfiles \
> -version-info $(LIBVERSION)
> -libnfnetlink_la_SOURCES = libnfnetlink.c
> +libnfnetlink_la_SOURCES = libnfnetlink.c iftable.c rtnl.c
next prev parent reply other threads:[~2007-01-19 15:22 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-27 22:17 [RFC] libnfnetlink and iface conversion to string Eric Leblond
2006-12-28 17:39 ` Pablo Neira Ayuso
2006-12-28 23:40 ` Eric Leblond
2007-01-02 8:46 ` [Patch 1/2] Resend : sending iface name from nfnetlink_queue Eric Leblond
2007-01-10 6:52 ` Patrick McHardy
2007-01-02 8:48 ` [Patch 2/2] getting iface name from libnetfilter_queue Eric Leblond
2007-01-07 14:26 ` [RFC] libnfnetlink and iface conversion to string Harald Welte
2007-01-08 22:41 ` Eric Leblond
2007-01-09 0:53 ` Pablo Neira Ayuso
2007-01-09 2:50 ` Eric Leblond
2007-01-09 11:51 ` Harald Welte
2007-01-18 23:24 ` [Patch 0/2] " Eric Leblond
2007-01-18 23:30 ` [Patch 1/2] libnfnetlink, " Eric Leblond
2007-01-19 15:22 ` Patrick McHardy [this message]
2007-01-19 17:38 ` Pablo Neira Ayuso
2007-01-19 22:46 ` Eric Leblond
2007-01-22 12:36 ` Harald Welte
2007-01-23 21:13 ` Eric Leblond
2007-01-24 16:50 ` Patrick McHardy
2007-01-25 1:46 ` Pablo Neira Ayuso
2007-01-25 12:11 ` Eric Leblond
2007-01-25 15:59 ` Harald Welte
2007-01-26 2:24 ` Pablo Neira Ayuso
2007-01-25 12:16 ` [Patch 2/2] libnetfilter_queue, " Eric Leblond
2007-01-26 2:26 ` Pablo Neira Ayuso
2007-01-29 10:36 ` Eric Leblond
2007-01-31 1:49 ` Pablo Neira Ayuso
2007-01-18 23:33 ` [Patch 2/2] libnetfilter_queue and " Eric Leblond
2007-01-19 15:25 ` Patrick McHardy
2007-01-19 16:17 ` Resend: " Eric Leblond
2007-01-23 21:17 ` Eric Leblond
2007-01-09 10:22 ` [RFC] libnfnetlink " Patrick McHardy
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=45B0E24A.7040906@trash.net \
--to=kaber@trash.net \
--cc=eric@inl.fr \
--cc=laforge@netfilter.org \
--cc=netfilter-devel@lists.netfilter.org \
--cc=pablo@netfilter.org \
--cc=vincent@inl.fr \
/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.