all the python scripts are for python2, and fedora31 requires to be specific
[vsys-scripts.git] / root-context / fd_packetseer.c
1 #include <sys/types.h>
2 #include <sys/socket.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <errno.h>
6 #include <linux/if_ether.h>
7 #include "fdpass.h"
8
9 #define MAX_BUFSIZE (32*1024*1024)
10
11 /*------------------------------------------------------------------*/
12 void
13 receive_argument(int control_fd, int *rcvbuf, int *sndbuf)
14 {
15   if (recv(control_fd, rcvbuf, sizeof(int), 0) != sizeof(int)) {
16     fprintf(stderr, "receiving the first argument failed\n");
17     exit(-1);
18   }
19   if (recv(control_fd, sndbuf, sizeof(int), 0) != sizeof(int)) {
20     fprintf(stderr, "receiving the first argument failed\n");
21
22     exit(-1);
23   }
24 }
25 /*------------------------------------------------------------------*/
26 int 
27 main(int argc, char *argv[]) 
28 {
29     int control_channel_fd, magic_socket;
30     int rcvbufsize = 0, sndbufsize = 0;
31     
32     if (argc < 3) {
33         printf("This script is called by vsys.\n");
34         exit(1);
35     }
36
37     sscanf(argv[2],"%d", &control_channel_fd);
38     magic_socket = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
39     if (magic_socket == -1) {
40       fprintf(stderr, "Error creating socket: %d\n", errno);
41       exit(1);
42     }
43     else fprintf(stderr, "Socket: %d", magic_socket);
44
45     send_fd(control_channel_fd, magic_socket);
46 }