File: testipfrdr.c

package info (click to toggle)
miniupnpd 2.3.9-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,040 kB
  • sloc: ansic: 28,571; sh: 2,024; makefile: 164
file content (74 lines) | stat: -rw-r--r-- 1,698 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* $Id: testipfrdr.c,v 1.4 2012/03/19 21:14:13 nanard Exp $ */

#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <netinet/in.h>
#include <sys/types.h>
#include "ipfrdr.h"

/* test program for ipfrdr.c */

int runtime_flags = 0;

void
list_eports_tcp(void)
{
	unsigned short * port_list;
	unsigned int number = 0;
	unsigned int i;
	port_list = get_portmappings_in_range(0, 65535, IPPROTO_TCP, &number);
	printf("%u ports redirected (TCP) :", number);
	for(i = 0; i < number; i++)
	{
		printf(" %hu", port_list[i]);
	}
	printf("\n");
	free(port_list);
	port_list = get_portmappings_in_range(0, 65535, IPPROTO_UDP, &number);
	printf("%u ports redirected (UDP) :", number);
	for(i = 0; i < number; i++)
	{
		printf(" %hu", port_list[i]);
	}
	printf("\n");
	free(port_list);
}

int
main(int argc, char * * argv)
{
	char c;
	
	openlog("testipfrdrd", LOG_CONS|LOG_PERROR, LOG_USER);
	if(init_redirect() < 0)
	{
		fprintf(stderr, "init_redirect() failed\n");
		return 1;
	}
	
	printf("List rdr ports :\n");
	list_eports_tcp();
	
	printf("Add redirection !\n");
	add_redirect_rule2("xennet0", "*", 12345, "192.168.1.100", 54321, IPPROTO_UDP,
	                   "redirection description", 0);
	add_redirect_rule2("xennet0", "8.8.8.8", 12345, "192.168.1.100", 54321, IPPROTO_TCP,
	                   "redirection description", 0);
	
	printf("Check redirect rules with \"ipnat -l\" then press any key.\n");
	c = getchar();
	
	printf("List rdr ports :\n");
	list_eports_tcp();
	
	printf("Delete redirection !\n");
	delete_redirect_rule("xennet0", 12345, IPPROTO_UDP);
	delete_redirect_rule("xennet0", 12345, IPPROTO_TCP);
	
	printf("List rdr ports :\n");
	list_eports_tcp();
	
	return 0;
}