@@ -17,62 +17,66 @@ static struct socket *listen_socket;
17
17
static struct http_server_param param ;
18
18
static struct task_struct * http_server ;
19
19
20
+ static inline int setsockopt (struct socket * sock ,
21
+ int level ,
22
+ int optname ,
23
+ int optval )
24
+ {
25
+ int opt = optval ;
26
+ return kernel_setsockopt (sock , level , optname , (char * ) & opt , sizeof (opt ));
27
+ }
28
+
20
29
static int open_listen_socket (ushort port , ushort backlog , struct socket * * res )
21
30
{
22
31
struct socket * sock ;
23
- int err , opt ;
24
32
struct sockaddr_in s ;
25
33
26
- err = sock_create (PF_INET , SOCK_STREAM , IPPROTO_TCP , & sock );
34
+ int err = sock_create (PF_INET , SOCK_STREAM , IPPROTO_TCP , & sock );
27
35
if (err < 0 ) {
28
36
printk (KERN_ERR MODULE_NAME ": sock_create() failure, err=%d\n" , err );
29
37
return err ;
30
38
}
31
- opt = 1 ;
32
- err = kernel_setsockopt (sock , SOL_SOCKET , SO_REUSEADDR , (char * ) & opt ,
33
- sizeof (opt ));
39
+
40
+ err = setsockopt (sock , SOL_SOCKET , SO_REUSEADDR , 1 );
34
41
if (err < 0 ) {
35
42
printk (KERN_ERR MODULE_NAME ": kernel_setsockopt() failure, err=%d\n" ,
36
43
err );
37
44
sock_release (sock );
38
45
return err ;
39
46
}
40
- opt = 1 ;
41
- err = kernel_setsockopt (sock , SOL_TCP , TCP_NODELAY , (char * ) & opt ,
42
- sizeof (opt ));
47
+
48
+ err = setsockopt (sock , SOL_TCP , TCP_NODELAY , 1 );
43
49
if (err < 0 ) {
44
50
printk (KERN_ERR MODULE_NAME ": kernel_setsockopt() failure, err=%d\n" ,
45
51
err );
46
52
sock_release (sock );
47
53
return err ;
48
54
}
49
- opt = 0 ;
50
- err =
51
- kernel_setsockopt (sock , SOL_TCP , TCP_CORK , (char * ) & opt , sizeof (opt ));
55
+
56
+ err = setsockopt (sock , SOL_TCP , TCP_CORK , 0 );
52
57
if (err < 0 ) {
53
58
printk (KERN_ERR MODULE_NAME ": kernel_setsockopt() failure, err=%d\n" ,
54
59
err );
55
60
sock_release (sock );
56
61
return err ;
57
62
}
58
- opt = 1024 * 1024 ;
59
- err = kernel_setsockopt (sock , SOL_SOCKET , SO_RCVBUF , (char * ) & opt ,
60
- sizeof (opt ));
63
+
64
+ err = setsockopt (sock , SOL_SOCKET , SO_RCVBUF , 1024 * 1024 );
61
65
if (err < 0 ) {
62
66
printk (KERN_ERR MODULE_NAME ": kernel_setsockopt() failure, err=%d\n" ,
63
67
err );
64
68
sock_release (sock );
65
69
return err ;
66
70
}
67
- opt = 1024 * 1024 ;
68
- err = kernel_setsockopt (sock , SOL_SOCKET , SO_SNDBUF , (char * ) & opt ,
69
- sizeof (opt ));
71
+
72
+ err = setsockopt (sock , SOL_SOCKET , SO_SNDBUF , 1024 * 1024 );
70
73
if (err < 0 ) {
71
74
printk (KERN_ERR MODULE_NAME ": kernel_setsockopt() failure, err=%d\n" ,
72
75
err );
73
76
sock_release (sock );
74
77
return err ;
75
78
}
79
+
76
80
memset (& s , 0 , sizeof (s ));
77
81
s .sin_family = AF_INET ;
78
82
s .sin_addr .s_addr = htonl (INADDR_ANY );
@@ -83,6 +87,7 @@ static int open_listen_socket(ushort port, ushort backlog, struct socket **res)
83
87
sock_release (sock );
84
88
return err ;
85
89
}
90
+
86
91
err = kernel_listen (sock , backlog );
87
92
if (err < 0 ) {
88
93
printk (KERN_ERR MODULE_NAME ": kernel_listen() failure, err=%d\n" , err );
0 commit comments