diff mbox

[6/6] Netfilter: xt_LOG: Add timestamp support

Message ID 1330989588-26833-7-git-send-email-richard@nod.at
State Rejected
Headers show

Commit Message

Richard Weinberger March 5, 2012, 11:19 p.m. UTC
Using XT_LOG_ADD_TIMESTAMP it is possible to have a timestamp
directly in the log message.

Signed-off-by: Richard Weinberger <richard@nod.at>
---
 include/linux/netfilter/xt_LOG.h |    3 ++-
 net/netfilter/xt_LOG.c           |    8 ++++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

Comments

Pablo Neira Ayuso March 7, 2012, 3:29 p.m. UTC | #1
On Tue, Mar 06, 2012 at 12:19:48AM +0100, Richard Weinberger wrote:
> Using XT_LOG_ADD_TIMESTAMP it is possible to have a timestamp
> directly in the log message.
> 
> Signed-off-by: Richard Weinberger <richard@nod.at>
> ---
>  include/linux/netfilter/xt_LOG.h |    3 ++-
>  net/netfilter/xt_LOG.c           |    8 ++++++++
>  2 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/include/linux/netfilter/xt_LOG.h b/include/linux/netfilter/xt_LOG.h
> index 8ac25e0..9361374 100644
> --- a/include/linux/netfilter/xt_LOG.h
> +++ b/include/linux/netfilter/xt_LOG.h
> @@ -8,7 +8,8 @@
>  #define XT_LOG_UID		0x08	/* Log UID owning local socket */
>  #define XT_LOG_NFLOG		0x10	/* Unsupported, don't reuse */
>  #define XT_LOG_MACDECODE	0x20	/* Decode MAC header */
> -#define XT_LOG_MASK		0x2f
> +#define XT_LOG_ADD_TIMESTAMP	0x40    /* Add a timestamp */
> +#define XT_LOG_MASK		0x6f
>  
>  struct xt_log_info {
>          unsigned char level;
> diff --git a/net/netfilter/xt_LOG.c b/net/netfilter/xt_LOG.c
> index f75f2d7..23db206 100644
> --- a/net/netfilter/xt_LOG.c
> +++ b/net/netfilter/xt_LOG.c
> @@ -499,6 +499,14 @@ log_packet_common(struct sbuff *m,
>  	if (loginfo->type == NF_LOG_TYPE_LOG)
>  		sb_add(m, "<%d>", loginfo->u.log.level);
>  
> +	if (loginfo->u.log.logflags & XT_LOG_ADD_TIMESTAMP) {
> +		struct timespec tv;
> +
> +		getnstimeofday(&tv);
> +		sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
> +			(unsigned int)tv.tv_nsec / NSEC_PER_MSEC);

net/netfilter/xt_LOG.c: In function ‘log_packet_common’:
net/netfilter/xt_LOG.c:507:4: warning: format ‘%u’ expects argument of
type ‘unsigned int’, but argument 4 has type ‘long int’ [-Wformat]

It has to be:

                sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
                        (unsigned int)(tv.tv_nsec / NSEC_PER_MSEC));
                                      ^                          ^
I've fixed, no need to resend this patch.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Richard Weinberger March 7, 2012, 3:33 p.m. UTC | #2
On 07.03.2012 16:29, Pablo Neira Ayuso wrote:
> On Tue, Mar 06, 2012 at 12:19:48AM +0100, Richard Weinberger wrote:
>> Using XT_LOG_ADD_TIMESTAMP it is possible to have a timestamp
>> directly in the log message.
>>
>> Signed-off-by: Richard Weinberger<richard@nod.at>
>> ---
>>   include/linux/netfilter/xt_LOG.h |    3 ++-
>>   net/netfilter/xt_LOG.c           |    8 ++++++++
>>   2 files changed, 10 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/linux/netfilter/xt_LOG.h b/include/linux/netfilter/xt_LOG.h
>> index 8ac25e0..9361374 100644
>> --- a/include/linux/netfilter/xt_LOG.h
>> +++ b/include/linux/netfilter/xt_LOG.h
>> @@ -8,7 +8,8 @@
>>   #define XT_LOG_UID		0x08	/* Log UID owning local socket */
>>   #define XT_LOG_NFLOG		0x10	/* Unsupported, don't reuse */
>>   #define XT_LOG_MACDECODE	0x20	/* Decode MAC header */
>> -#define XT_LOG_MASK		0x2f
>> +#define XT_LOG_ADD_TIMESTAMP	0x40    /* Add a timestamp */
>> +#define XT_LOG_MASK		0x6f
>>
>>   struct xt_log_info {
>>           unsigned char level;
>> diff --git a/net/netfilter/xt_LOG.c b/net/netfilter/xt_LOG.c
>> index f75f2d7..23db206 100644
>> --- a/net/netfilter/xt_LOG.c
>> +++ b/net/netfilter/xt_LOG.c
>> @@ -499,6 +499,14 @@ log_packet_common(struct sbuff *m,
>>   	if (loginfo->type == NF_LOG_TYPE_LOG)
>>   		sb_add(m, "<%d>", loginfo->u.log.level);
>>
>> +	if (loginfo->u.log.logflags&  XT_LOG_ADD_TIMESTAMP) {
>> +		struct timespec tv;
>> +
>> +		getnstimeofday(&tv);
>> +		sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
>> +			(unsigned int)tv.tv_nsec / NSEC_PER_MSEC);
>
> net/netfilter/xt_LOG.c: In function ‘log_packet_common’:
> net/netfilter/xt_LOG.c:507:4: warning: format ‘%u’ expects argument of
> type ‘unsigned int’, but argument 4 has type ‘long int’ [-Wformat]
>
> It has to be:
>
>                  sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
>                          (unsigned int)(tv.tv_nsec / NSEC_PER_MSEC));
>                                        ^                          ^
> I've fixed, no need to resend this patch.

Which gcc version are you using?
I've not seen this warning. :(

Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Eric Dumazet March 7, 2012, 3:40 p.m. UTC | #3
Le mercredi 07 mars 2012 à 16:29 +0100, Pablo Neira Ayuso a écrit :
> On Tue, Mar 06, 2012 at 12:19:48AM +0100, Richard Weinberger wrote:
> > Using XT_LOG_ADD_TIMESTAMP it is possible to have a timestamp
> > directly in the log message.
> > 
> > Signed-off-by: Richard Weinberger <richard@nod.at>
> > ---
> >  include/linux/netfilter/xt_LOG.h |    3 ++-
> >  net/netfilter/xt_LOG.c           |    8 ++++++++
> >  2 files changed, 10 insertions(+), 1 deletions(-)
> > 
> > diff --git a/include/linux/netfilter/xt_LOG.h b/include/linux/netfilter/xt_LOG.h
> > index 8ac25e0..9361374 100644
> > --- a/include/linux/netfilter/xt_LOG.h
> > +++ b/include/linux/netfilter/xt_LOG.h
> > @@ -8,7 +8,8 @@
> >  #define XT_LOG_UID		0x08	/* Log UID owning local socket */
> >  #define XT_LOG_NFLOG		0x10	/* Unsupported, don't reuse */
> >  #define XT_LOG_MACDECODE	0x20	/* Decode MAC header */
> > -#define XT_LOG_MASK		0x2f
> > +#define XT_LOG_ADD_TIMESTAMP	0x40    /* Add a timestamp */
> > +#define XT_LOG_MASK		0x6f
> >  
> >  struct xt_log_info {
> >          unsigned char level;
> > diff --git a/net/netfilter/xt_LOG.c b/net/netfilter/xt_LOG.c
> > index f75f2d7..23db206 100644
> > --- a/net/netfilter/xt_LOG.c
> > +++ b/net/netfilter/xt_LOG.c
> > @@ -499,6 +499,14 @@ log_packet_common(struct sbuff *m,
> >  	if (loginfo->type == NF_LOG_TYPE_LOG)
> >  		sb_add(m, "<%d>", loginfo->u.log.level);
> >  
> > +	if (loginfo->u.log.logflags & XT_LOG_ADD_TIMESTAMP) {
> > +		struct timespec tv;
> > +
> > +		getnstimeofday(&tv);
> > +		sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
> > +			(unsigned int)tv.tv_nsec / NSEC_PER_MSEC);
> 
> net/netfilter/xt_LOG.c: In function ‘log_packet_common’:
> net/netfilter/xt_LOG.c:507:4: warning: format ‘%u’ expects argument of
> type ‘unsigned int’, but argument 4 has type ‘long int’ [-Wformat]
> 
> It has to be:
> 
>                 sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
>                         (unsigned int)(tv.tv_nsec / NSEC_PER_MSEC));
>                                       ^                          ^
> I've fixed, no need to resend this patch.

This is why I submitted the "netfilter: ipt_LOG: add __printf() to
sb_add()" patch :)



--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/netfilter/xt_LOG.h b/include/linux/netfilter/xt_LOG.h
index 8ac25e0..9361374 100644
--- a/include/linux/netfilter/xt_LOG.h
+++ b/include/linux/netfilter/xt_LOG.h
@@ -8,7 +8,8 @@ 
 #define XT_LOG_UID		0x08	/* Log UID owning local socket */
 #define XT_LOG_NFLOG		0x10	/* Unsupported, don't reuse */
 #define XT_LOG_MACDECODE	0x20	/* Decode MAC header */
-#define XT_LOG_MASK		0x2f
+#define XT_LOG_ADD_TIMESTAMP	0x40    /* Add a timestamp */
+#define XT_LOG_MASK		0x6f
 
 struct xt_log_info {
         unsigned char level;
diff --git a/net/netfilter/xt_LOG.c b/net/netfilter/xt_LOG.c
index f75f2d7..23db206 100644
--- a/net/netfilter/xt_LOG.c
+++ b/net/netfilter/xt_LOG.c
@@ -499,6 +499,14 @@  log_packet_common(struct sbuff *m,
 	if (loginfo->type == NF_LOG_TYPE_LOG)
 		sb_add(m, "<%d>", loginfo->u.log.level);
 
+	if (loginfo->u.log.logflags & XT_LOG_ADD_TIMESTAMP) {
+		struct timespec tv;
+
+		getnstimeofday(&tv);
+		sb_add(m, "TIMESTAMP=%li.%03u ", tv.tv_sec,
+			(unsigned int)tv.tv_nsec / NSEC_PER_MSEC);
+	}
+
 	sb_add(m, "%sIN=%s OUT=%s ", prefix, in ? in->name : "",
 	       out ? out->name : "");
 #ifdef CONFIG_BRIDGE_NETFILTER