diff options
-rw-r--r-- | opentracker.c | 20 | ||||
-rw-r--r-- | ot_http.c | 14 | ||||
-rw-r--r-- | ot_http.h | 2 | ||||
-rw-r--r-- | ot_mutex.c | 2 | ||||
-rw-r--r-- | ot_stats.c | 1 |
5 files changed, 19 insertions, 20 deletions
diff --git a/opentracker.c b/opentracker.c index 993877a..bce5be0 100644 --- a/opentracker.c +++ b/opentracker.c | |||
@@ -97,9 +97,9 @@ static void handle_dead( const int64 socket ) { | |||
97 | struct http_data* h=io_getcookie( socket ); | 97 | struct http_data* h=io_getcookie( socket ); |
98 | if( h ) { | 98 | if( h ) { |
99 | if( h->flag & STRUCT_HTTP_FLAG_IOB_USED ) | 99 | if( h->flag & STRUCT_HTTP_FLAG_IOB_USED ) |
100 | iob_reset( &h->batch ); | 100 | iob_reset( &h->data.batch ); |
101 | if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) | 101 | if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) |
102 | array_reset( &h->request ); | 102 | array_reset( &h->data.request ); |
103 | if( h->flag & STRUCT_HTTP_FLAG_WAITINGFORTASK ) | 103 | if( h->flag & STRUCT_HTTP_FLAG_WAITINGFORTASK ) |
104 | mutex_workqueue_canceltask( socket ); | 104 | mutex_workqueue_canceltask( socket ); |
105 | free( h ); | 105 | free( h ); |
@@ -117,32 +117,32 @@ static ssize_t handle_read( const int64 clientsocket ) { | |||
117 | } | 117 | } |
118 | 118 | ||
119 | /* If we get the whole request in one packet, handle it without copying */ | 119 | /* If we get the whole request in one packet, handle it without copying */ |
120 | if( !array_start( &h->request ) ) { | 120 | if( !array_start( &h->data.request ) ) { |
121 | if( memchr( static_inbuf, '\n', l ) ) | 121 | if( memchr( static_inbuf, '\n', l ) ) |
122 | return http_handle_request( clientsocket, static_inbuf, l ); | 122 | return http_handle_request( clientsocket, static_inbuf, l ); |
123 | h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED; | 123 | h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED; |
124 | array_catb( &h->request, static_inbuf, l ); | 124 | array_catb( &h->data.request, static_inbuf, l ); |
125 | return 0; | 125 | return 0; |
126 | } | 126 | } |
127 | 127 | ||
128 | h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED; | 128 | h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED; |
129 | array_catb( &h->request, static_inbuf, l ); | 129 | array_catb( &h->data.request, static_inbuf, l ); |
130 | 130 | ||
131 | if( array_failed( &h->request ) ) | 131 | if( array_failed( &h->data.request ) ) |
132 | return http_issue_error( clientsocket, CODE_HTTPERROR_500 ); | 132 | return http_issue_error( clientsocket, CODE_HTTPERROR_500 ); |
133 | 133 | ||
134 | if( array_bytes( &h->request ) > 8192 ) | 134 | if( array_bytes( &h->data.request ) > 8192 ) |
135 | return http_issue_error( clientsocket, CODE_HTTPERROR_500 ); | 135 | return http_issue_error( clientsocket, CODE_HTTPERROR_500 ); |
136 | 136 | ||
137 | if( memchr( array_start( &h->request ), '\n', array_bytes( &h->request ) ) ) | 137 | if( memchr( array_start( &h->data.request ), '\n', array_bytes( &h->data.request ) ) ) |
138 | return http_handle_request( clientsocket, array_start( &h->request ), array_bytes( &h->request ) ); | 138 | return http_handle_request( clientsocket, array_start( &h->data.request ), array_bytes( &h->data.request ) ); |
139 | 139 | ||
140 | return 0; | 140 | return 0; |
141 | } | 141 | } |
142 | 142 | ||
143 | static void handle_write( const int64 clientsocket ) { | 143 | static void handle_write( const int64 clientsocket ) { |
144 | struct http_data* h=io_getcookie( clientsocket ); | 144 | struct http_data* h=io_getcookie( clientsocket ); |
145 | if( !h || ( iob_send( clientsocket, &h->batch ) <= 0 ) ) | 145 | if( !h || ( iob_send( clientsocket, &h->data.batch ) <= 0 ) ) |
146 | handle_dead( clientsocket ); | 146 | handle_dead( clientsocket ); |
147 | } | 147 | } |
148 | 148 | ||
@@ -53,7 +53,7 @@ static void http_senddata( const int64 client_socket, char *buffer, size_t size | |||
53 | /* whoever sends data is not interested in its input-array */ | 53 | /* whoever sends data is not interested in its input-array */ |
54 | if( h && ( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) ) { | 54 | if( h && ( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) ) { |
55 | h->flag &= ~STRUCT_HTTP_FLAG_ARRAY_USED; | 55 | h->flag &= ~STRUCT_HTTP_FLAG_ARRAY_USED; |
56 | array_reset( &h->request ); | 56 | array_reset( &h->data.request ); |
57 | } | 57 | } |
58 | 58 | ||
59 | written_size = write( client_socket, buffer, size ); | 59 | written_size = write( client_socket, buffer, size ); |
@@ -69,9 +69,9 @@ static void http_senddata( const int64 client_socket, char *buffer, size_t size | |||
69 | return; | 69 | return; |
70 | } | 70 | } |
71 | 71 | ||
72 | iob_reset( &h->batch ); | 72 | iob_reset( &h->data.batch ); |
73 | memmove( outbuf, buffer + written_size, size - written_size ); | 73 | memmove( outbuf, buffer + written_size, size - written_size ); |
74 | iob_addbuf_free( &h->batch, outbuf, size - written_size ); | 74 | iob_addbuf_free( &h->data.batch, outbuf, size - written_size ); |
75 | h->flag |= STRUCT_HTTP_FLAG_IOB_USED; | 75 | h->flag |= STRUCT_HTTP_FLAG_IOB_USED; |
76 | 76 | ||
77 | /* writeable short data sockets just have a tcp timeout */ | 77 | /* writeable short data sockets just have a tcp timeout */ |
@@ -124,7 +124,7 @@ ssize_t http_sendiovecdata( const int64 client_socket, int iovec_entries, struct | |||
124 | free it now */ | 124 | free it now */ |
125 | if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) { | 125 | if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) { |
126 | h->flag &= ~STRUCT_HTTP_FLAG_ARRAY_USED; | 126 | h->flag &= ~STRUCT_HTTP_FLAG_ARRAY_USED; |
127 | array_reset( &h->request ); | 127 | array_reset( &h->data.request ); |
128 | } | 128 | } |
129 | 129 | ||
130 | /* If we came here, wait for the answer is over */ | 130 | /* If we came here, wait for the answer is over */ |
@@ -149,12 +149,12 @@ ssize_t http_sendiovecdata( const int64 client_socket, int iovec_entries, struct | |||
149 | else | 149 | else |
150 | header_size = sprintf( header, "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\nContent-Length: %zd\r\n\r\n", size ); | 150 | header_size = sprintf( header, "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\nContent-Length: %zd\r\n\r\n", size ); |
151 | 151 | ||
152 | iob_reset( &h->batch ); | 152 | iob_reset( &h->data.batch ); |
153 | iob_addbuf_free( &h->batch, header, header_size ); | 153 | iob_addbuf_free( &h->data.batch, header, header_size ); |
154 | 154 | ||
155 | /* Will move to ot_iovec.c */ | 155 | /* Will move to ot_iovec.c */ |
156 | for( i=0; i<iovec_entries; ++i ) | 156 | for( i=0; i<iovec_entries; ++i ) |
157 | iob_addbuf_munmap( &h->batch, iovector[i].iov_base, iovector[i].iov_len ); | 157 | iob_addbuf_munmap( &h->data.batch, iovector[i].iov_base, iovector[i].iov_len ); |
158 | free( iovector ); | 158 | free( iovector ); |
159 | 159 | ||
160 | h->flag |= STRUCT_HTTP_FLAG_IOB_USED; | 160 | h->flag |= STRUCT_HTTP_FLAG_IOB_USED; |
@@ -18,7 +18,7 @@ struct http_data { | |||
18 | union { | 18 | union { |
19 | array request; | 19 | array request; |
20 | io_batch batch; | 20 | io_batch batch; |
21 | }; | 21 | } data; |
22 | char ip[4]; | 22 | char ip[4]; |
23 | STRUCT_HTTP_FLAG flag; | 23 | STRUCT_HTTP_FLAG flag; |
24 | }; | 24 | }; |
@@ -19,7 +19,7 @@ | |||
19 | #include "trackerlogic.h" | 19 | #include "trackerlogic.h" |
20 | #include "ot_mutex.h" | 20 | #include "ot_mutex.h" |
21 | 21 | ||
22 | //#define MTX_DBG( STRING ) fprintf( stderr, STRING ) | 22 | /* #define MTX_DBG( STRING ) fprintf( stderr, STRING ) */ |
23 | #define MTX_DBG( STRING ) | 23 | #define MTX_DBG( STRING ) |
24 | 24 | ||
25 | /* Our global all torrents list */ | 25 | /* Our global all torrents list */ |
@@ -217,7 +217,6 @@ static size_t stats_slash24s_txt( char * reply, size_t amount, uint32_t thresh ) | |||
217 | 217 | ||
218 | uint32_t *counts[ NUM_BUFS ]; | 218 | uint32_t *counts[ NUM_BUFS ]; |
219 | uint32_t slash24s[amount*2]; /* first dword amount, second dword subnet */ | 219 | uint32_t slash24s[amount*2]; /* first dword amount, second dword subnet */ |
220 | // int bucket; | ||
221 | size_t i, j, k, l; | 220 | size_t i, j, k, l; |
222 | char *r = reply; | 221 | char *r = reply; |
223 | 222 | ||