Jump to content

Recommended Posts

Guest ha-as
Posted

Hello,

 

In my application writen in C for linux system. I have a post hook filter which tries to print out the outgoing packets source and destination ports for TCP connections only. When I print the value of the ports I get strange values, here's the code for the post_hook:

 

Code:

static struct nf_hook_ops nfho_post; // Struct holding set of hook function options

 

unsigned int nf_hook_post(unsigned int hooknum,

struct sk_buff *skb,

const struct net_device *in,

const struct net_device *out,

int (*okfn) (struct sk_buff *))

{

struct iphdr *iph;

struct tcphdr *th;

 

if (skb == NULL)

{

printk(KERN_INFO "%s: Socket buffer NULL.\n", __FUNCTION__);

return NF_ACCEPT;

}

 

if(skb_is_nonlinear(skb))

skb_linearize(skb);

 

iph = ip_hdr(skb);

if(iph == NULL)

{

printk("%s: IP header NULL.\n", __FUNCTION__);

return NF_ACCEPT;

}

 

/* Handles only TCP connection: if transport protocol isn't TCP, we don't care about it. */

if(iph->protocol != IPPROTO_TCP)

return NF_ACCEPT;

 

th = tcp_hdr(skb);

if(th == NULL)

{

printk("%s: TCP header NULL.\n", __FUNCTION__);

return NF_ACCEPT;

}

 

printk("1 Source port=%u, Destination port=%u.\n", ntohl((unsigned short int) th->source)

,ntohl((unsigned short int) th->dest));

 

printk("2 Source port=%u, Destination port=%u.\n", htonl((unsigned short int) th->source)

,htonl((unsigned short int) th->dest));

 

printk("3 Source port=%u, Destination port=%u.\n", (unsigned short int) th->source

,(unsigned short int) th->dest);

 

return NF_ACCEPT;

}

I tried to print the values using different methods but until now I did not succed. So please can anyone tell me what is the problem and how to solve it?

 

Continue reading...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...