#include <sys/types.h>
#include <sys/socket.h>
+#include <stdlib.h>
#include <stdio.h>
+#include <errno.h>
#include "fdpass.h"
-#define RCVBUF 16*1024*1024
+unsigned int rcvbuf = 16*1024*1024;
int main(int argc, char *argv[]) {
int control_channel_fd, magic_socket;
sscanf(argv[2],"%d", &control_channel_fd);
- magic_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- setsockopt(magic_socket, SOL_SOCKET, SO_RCVBUF, RCVBUF, sizeof(unsigned int));
- send_fd(control_channel, magic_socket);
+ magic_socket = socket(AF_INET, SOCK_STREAM, 0);
+
+ if (magic_socket == -1) {
+ printf("Error creating socket: %d\n", errno);
+ exit(1);
+ }
+ if (setsockopt(magic_socket, SOL_SOCKET, SO_RCVBUF, &rcvbuf, sizeof(unsigned int))) {
+ printf("Error calling setsockopt: %d\n", errno);
+ exit(1);
+ }
+ send_fd(control_channel_fd, magic_socket);
}