[PATCH] splice-bench: set SO_REUSEADDR on server end
authorJens Axboe <axboe@suse.de>
Wed, 3 May 2006 08:48:37 +0000 (10:48 +0200)
committerJens Axboe <axboe@suse.de>
Wed, 3 May 2006 08:48:37 +0000 (10:48 +0200)
splice-bench.c

index 12660bf5aa8d9f90a56d2057614282a822006222..8f808a11aee262a04bd5bee8fc08e9230b32fcc0 100644 (file)
@@ -158,7 +158,7 @@ static int server(int offset)
        struct sockaddr_in saddr_in;
        struct sockaddr addr;
        unsigned int len;
        struct sockaddr_in saddr_in;
        struct sockaddr addr;
        unsigned int len;
-       int sk;
+       int sk, opt;
 
        bind_to_cpu(offset);
        nice(-20);
 
        bind_to_cpu(offset);
        nice(-20);
@@ -167,10 +167,14 @@ static int server(int offset)
        if (sk < 0)
                return error("socket");
 
        if (sk < 0)
                return error("socket");
 
+       opt = 1;
+       if (setsockopt(sk, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0)
+               return error("setsockopt");
+
        saddr_in.sin_addr.s_addr = htonl(INADDR_ANY);
        saddr_in.sin_port = htons(net_port + offset);
 
        saddr_in.sin_addr.s_addr = htonl(INADDR_ANY);
        saddr_in.sin_port = htons(net_port + offset);
 
-       if (bind(sk, (struct sockaddr*)&saddr_in, sizeof(saddr_in)) < 0)
+       if (bind(sk, (struct sockaddr *) &saddr_in, sizeof(saddr_in)) < 0)
                return error("bind");
 
        if (listen(sk, 1) < 0)
                return error("bind");
 
        if (listen(sk, 1) < 0)