mirror of
git://erdgeist.org/opentracker
synced 2025-01-13 16:30:06 +00:00
Make opentracker ANSI C again.
This commit is contained in:
parent
2df09905f5
commit
8bdc0d73f6
@ -97,9 +97,9 @@ static void handle_dead( const int64 socket ) {
|
||||
struct http_data* h=io_getcookie( socket );
|
||||
if( h ) {
|
||||
if( h->flag & STRUCT_HTTP_FLAG_IOB_USED )
|
||||
iob_reset( &h->batch );
|
||||
iob_reset( &h->data.batch );
|
||||
if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED )
|
||||
array_reset( &h->request );
|
||||
array_reset( &h->data.request );
|
||||
if( h->flag & STRUCT_HTTP_FLAG_WAITINGFORTASK )
|
||||
mutex_workqueue_canceltask( socket );
|
||||
free( h );
|
||||
@ -117,32 +117,32 @@ static ssize_t handle_read( const int64 clientsocket ) {
|
||||
}
|
||||
|
||||
/* If we get the whole request in one packet, handle it without copying */
|
||||
if( !array_start( &h->request ) ) {
|
||||
if( !array_start( &h->data.request ) ) {
|
||||
if( memchr( static_inbuf, '\n', l ) )
|
||||
return http_handle_request( clientsocket, static_inbuf, l );
|
||||
h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED;
|
||||
array_catb( &h->request, static_inbuf, l );
|
||||
array_catb( &h->data.request, static_inbuf, l );
|
||||
return 0;
|
||||
}
|
||||
|
||||
h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED;
|
||||
array_catb( &h->request, static_inbuf, l );
|
||||
array_catb( &h->data.request, static_inbuf, l );
|
||||
|
||||
if( array_failed( &h->request ) )
|
||||
if( array_failed( &h->data.request ) )
|
||||
return http_issue_error( clientsocket, CODE_HTTPERROR_500 );
|
||||
|
||||
if( array_bytes( &h->request ) > 8192 )
|
||||
if( array_bytes( &h->data.request ) > 8192 )
|
||||
return http_issue_error( clientsocket, CODE_HTTPERROR_500 );
|
||||
|
||||
if( memchr( array_start( &h->request ), '\n', array_bytes( &h->request ) ) )
|
||||
return http_handle_request( clientsocket, array_start( &h->request ), array_bytes( &h->request ) );
|
||||
if( memchr( array_start( &h->data.request ), '\n', array_bytes( &h->data.request ) ) )
|
||||
return http_handle_request( clientsocket, array_start( &h->data.request ), array_bytes( &h->data.request ) );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void handle_write( const int64 clientsocket ) {
|
||||
struct http_data* h=io_getcookie( clientsocket );
|
||||
if( !h || ( iob_send( clientsocket, &h->batch ) <= 0 ) )
|
||||
if( !h || ( iob_send( clientsocket, &h->data.batch ) <= 0 ) )
|
||||
handle_dead( clientsocket );
|
||||
}
|
||||
|
||||
|
14
ot_http.c
14
ot_http.c
@ -53,7 +53,7 @@ static void http_senddata( const int64 client_socket, char *buffer, size_t size
|
||||
/* whoever sends data is not interested in its input-array */
|
||||
if( h && ( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) ) {
|
||||
h->flag &= ~STRUCT_HTTP_FLAG_ARRAY_USED;
|
||||
array_reset( &h->request );
|
||||
array_reset( &h->data.request );
|
||||
}
|
||||
|
||||
written_size = write( client_socket, buffer, size );
|
||||
@ -69,9 +69,9 @@ static void http_senddata( const int64 client_socket, char *buffer, size_t size
|
||||
return;
|
||||
}
|
||||
|
||||
iob_reset( &h->batch );
|
||||
iob_reset( &h->data.batch );
|
||||
memmove( outbuf, buffer + written_size, size - written_size );
|
||||
iob_addbuf_free( &h->batch, outbuf, size - written_size );
|
||||
iob_addbuf_free( &h->data.batch, outbuf, size - written_size );
|
||||
h->flag |= STRUCT_HTTP_FLAG_IOB_USED;
|
||||
|
||||
/* 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
|
||||
free it now */
|
||||
if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) {
|
||||
h->flag &= ~STRUCT_HTTP_FLAG_ARRAY_USED;
|
||||
array_reset( &h->request );
|
||||
array_reset( &h->data.request );
|
||||
}
|
||||
|
||||
/* 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
|
||||
else
|
||||
header_size = sprintf( header, "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\nContent-Length: %zd\r\n\r\n", size );
|
||||
|
||||
iob_reset( &h->batch );
|
||||
iob_addbuf_free( &h->batch, header, header_size );
|
||||
iob_reset( &h->data.batch );
|
||||
iob_addbuf_free( &h->data.batch, header, header_size );
|
||||
|
||||
/* Will move to ot_iovec.c */
|
||||
for( i=0; i<iovec_entries; ++i )
|
||||
iob_addbuf_munmap( &h->batch, iovector[i].iov_base, iovector[i].iov_len );
|
||||
iob_addbuf_munmap( &h->data.batch, iovector[i].iov_base, iovector[i].iov_len );
|
||||
free( iovector );
|
||||
|
||||
h->flag |= STRUCT_HTTP_FLAG_IOB_USED;
|
||||
|
@ -18,7 +18,7 @@ struct http_data {
|
||||
union {
|
||||
array request;
|
||||
io_batch batch;
|
||||
};
|
||||
} data;
|
||||
char ip[4];
|
||||
STRUCT_HTTP_FLAG flag;
|
||||
};
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "trackerlogic.h"
|
||||
#include "ot_mutex.h"
|
||||
|
||||
//#define MTX_DBG( STRING ) fprintf( stderr, STRING )
|
||||
/* #define MTX_DBG( STRING ) fprintf( stderr, STRING ) */
|
||||
#define MTX_DBG( STRING )
|
||||
|
||||
/* Our global all torrents list */
|
||||
|
@ -217,7 +217,6 @@ static size_t stats_slash24s_txt( char * reply, size_t amount, uint32_t thresh )
|
||||
|
||||
uint32_t *counts[ NUM_BUFS ];
|
||||
uint32_t slash24s[amount*2]; /* first dword amount, second dword subnet */
|
||||
// int bucket;
|
||||
size_t i, j, k, l;
|
||||
char *r = reply;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user