From: Luciano Coelho <luciano.coelho@nokia.com>
To: ext Jan Engelhardt <jengelh@medozas.de>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"netfilter-devel@vger.kernel.org"
<netfilter-devel@vger.kernel.org>,
"kaber@trash.net" <kaber@trash.net>,
Timo Teras <timo.teras@iki.fi>
Subject: Re: [PATCH] netfilter: Xtables: idletimer target implementation
Date: Wed, 02 Jun 2010 16:37:16 +0300 [thread overview]
Message-ID: <1275485836.22501.24.camel@chilepepper> (raw)
In-Reply-To: <alpine.LSU.2.01.1006021444480.14585@obet.zrqbmnf.qr>
Hi Jan,
Thanks for your prompt review! I'll send v2 with the fixes you
suggested.
On Wed, 2010-06-02 at 14:54 +0200, ext Jan Engelhardt wrote:
> On Wednesday 2010-06-02 13:58, Luciano Coelho wrote:
> >+
> >+#ifndef _XT_IDLETIMER_H
> >+#define _XT_IDLETIMER_H
> >+
> >+#define MAX_LABEL_SIZE 32
> >+
> >+struct idletimer_tg_info {
> >+ unsigned int timeout;
> >+
> >+ char label[MAX_LABEL_SIZE];
> >+};
>
> As per "Writing Netfilter Modules" e-book, using "int" is a no-no.
Sorry I missed that one. Fixed in v2.
> >+config NETFILTER_XT_TARGET_IDLETIMER
> >+ tristate "IDLETIMER target support"
>
> depends on NETFILTER_ADVANCED
Yes.
> >xt_IDLETIMER.c
> >+struct idletimer_tg_attr {
> >+ struct attribute attr;
> >+ ssize_t (*show)(struct kobject *kobj,
> >+ struct attribute *attr, char *buf);
> >+};
>
> Some indent seems to have gone wrong.
Fixed.
> >+ attr->attr.name = kstrdup(info->label, GFP_KERNEL);
>
> Need to check return value!
Oops! Fixed in v2. Also added sysfs_remove_file_from_group() if the
struct idletimer_tg allocation fails.
> >+ attr->attr.mode = 0444;
>
> attr->attr.mode = S_IRUGO;
Fixed.
>
> >+static struct xt_target idletimer_tg __read_mostly = {
> >+ .name = "IDLETIMER",
> >+ .family = NFPROTO_IPV4,
>
> NFPROTO_UNSPEC
Yeps, this is a remain from the previous (and ugly) read from ipt_ip.
Fixed.
>
> >+ .target = idletimer_tg_target,
> >+ .targetsize = sizeof(struct idletimer_tg_info),
> >+ .checkentry = idletimer_tg_checkentry,
> >+ .destroy = idletimer_tg_destroy,
> >+ .me = THIS_MODULE,
> >+};
> >+
> >+static int __init idletimer_tg_init(void)
> >+{
> >+ int ret;
> >+
> >+ idletimer_tg_kobj = kobject_create_and_add("idletimer",
> >+ &THIS_MODULE->mkobj.kobj);
> >+ if (!idletimer_tg_kobj)
> >+ return -ENOMEM;
> >+
> >+ /* FIXME: do we want to keep it in the module or in the net class? */
>
> I have only ever seen interfaces in /sys/class/net, so it might be
> wise to keep it that way in light of scripts doing
> echo /sys/class/net/* to get a list of interfaces.
Yes, this is the only reason why I haven't put it under the net class,
which would probably look cleaner. In other classes it seems to be
common to add misc attributes, but the net class (as of now) only
contains interface subclasses, as you said.
I'll change the FIXME to a clearer comment.
> Looks quite ok.
Thanks!
--
Cheers,
Luca.
prev parent reply other threads:[~2010-06-02 13:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-02 11:58 [PATCH] netfilter: Xtables: idletimer target implementation Luciano Coelho
2010-06-02 12:54 ` Jan Engelhardt
2010-06-02 13:37 ` Luciano Coelho [this message]
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=1275485836.22501.24.camel@chilepepper \
--to=luciano.coelho@nokia.com \
--cc=jengelh@medozas.de \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=timo.teras@iki.fi \
/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;
as well as URLs for NNTP newsgroup(s).