Whoops. This script should use RCVBUFFORCE, which overrides the global value of rmem_max
[vsys-scripts.git] / fd_bmsocket.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 "fdpass.h"
7
8 unsigned int rcvbuf = 16*1024*1024;
9
10 int main(int argc, char *argv[]) {
11     int control_channel_fd, magic_socket;
12     if (argc < 3) {
13         printf("This script is called by vsys.\n");
14         exit(1);
15     }
16
17     sscanf(argv[2],"%d", &control_channel_fd);
18
19     magic_socket = socket(AF_INET, SOCK_STREAM, 0);
20
21     if (magic_socket == -1) {
22         printf("Error creating socket: %d\n", errno);
23         exit(1);
24     }
25     if (setsockopt(magic_socket, SOL_SOCKET, SO_RCVBUFFORCE, &rcvbuf, sizeof(unsigned int))) {
26         printf("Error calling setsockopt: %d\n", errno);
27         exit(1);
28     }
29     send_fd(control_channel_fd, magic_socket);
30 }