… | |
… | |
72 | } |
72 | } |
73 | } |
73 | } |
74 | |
74 | |
75 | int val; |
75 | int val; |
76 | |
76 | |
77 | val = 0; |
|
|
78 | setsockopt (ns->fd, IPPROTO_TCP, TCP_CORK, &val, sizeof (val)); |
77 | val = 0; setsockopt (ns->fd, IPPROTO_TCP, TCP_CORK, &val, sizeof (val)); |
79 | val = 1; |
|
|
80 | setsockopt (ns->fd, IPPROTO_TCP, TCP_CORK, &val, sizeof (val)); |
78 | val = 1; setsockopt (ns->fd, IPPROTO_TCP, TCP_CORK, &val, sizeof (val)); |
81 | #endif |
79 | #endif |
82 | } |
80 | } |
83 | |
81 | |
84 | /*********************************************************************** |
82 | /*********************************************************************** |
85 | * |
83 | * |
86 | * SockList functions/utilities |
84 | * SockList functions/utilities |
87 | * |
85 | * |
88 | **********************************************************************/ |
86 | **********************************************************************/ |
89 | |
87 | |
90 | void |
88 | SockList &SockList::operator <<(const data8 &v) |
91 | SockList_Init (SockList * sl) |
|
|
92 | { |
89 | { |
93 | sl->len = 0; |
90 | *this << uint8 (v.len); |
94 | sl->buf = NULL; |
|
|
95 | } |
|
|
96 | |
91 | |
97 | void |
92 | memcpy (buf + len, v.data, v.len); |
98 | SockList_AddInt (SockList * sl, uint32 data) |
93 | len += v.len; |
99 | { |
|
|
100 | sl->buf[sl->len++] = (data >> 24) & 0xff; |
|
|
101 | sl->buf[sl->len++] = (data >> 16) & 0xff; |
|
|
102 | sl->buf[sl->len++] = (data >> 8) & 0xff; |
|
|
103 | sl->buf[sl->len++] = data & 0xff; |
|
|
104 | } |
|
|
105 | |
94 | |
106 | void |
95 | return *this; |
107 | SockList_AddInt64 (SockList * sl, uint64 data) |
96 | } |
108 | { |
|
|
109 | sl->buf[sl->len++] = (char) ((data >> 56) & 0xff); |
|
|
110 | sl->buf[sl->len++] = (char) ((data >> 48) & 0xff); |
|
|
111 | sl->buf[sl->len++] = (char) ((data >> 40) & 0xff); |
|
|
112 | sl->buf[sl->len++] = (char) ((data >> 32) & 0xff); |
|
|
113 | |
97 | |
114 | sl->buf[sl->len++] = (char) ((data >> 24) & 0xff); |
98 | SockList &SockList::operator <<(const data16 &v) |
115 | sl->buf[sl->len++] = (char) ((data >> 16) & 0xff); |
99 | { |
116 | sl->buf[sl->len++] = (char) ((data >> 8) & 0xff); |
100 | *this << uint16 (v.len); |
117 | sl->buf[sl->len++] = (char) (data & 0xff); |
101 | |
|
|
102 | memcpy (buf + len, v.data, v.len); |
|
|
103 | len += v.len; |
|
|
104 | |
|
|
105 | return *this; |
118 | } |
106 | } |
119 | |
107 | |
120 | /* Basically does the reverse of SockList_AddInt, but on |
108 | /* Basically does the reverse of SockList_AddInt, but on |
121 | * strings instead. Same for the GetShort, but for 16 bits. |
109 | * strings instead. Same for the GetShort, but for 16 bits. |
122 | */ |
110 | */ |
… | |
… | |
509 | cst_lst.obytes = 0; |
497 | cst_lst.obytes = 0; |
510 | cst_lst.max_conn = socket_info.nconns; |
498 | cst_lst.max_conn = socket_info.nconns; |
511 | cst_lst.time_start = now; |
499 | cst_lst.time_start = now; |
512 | } |
500 | } |
513 | #endif |
501 | #endif |
|
|
502 | |