mirror of
git://erdgeist.org/opentracker
synced 2025-01-15 01:12:07 +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 );
|
struct http_data* h=io_getcookie( socket );
|
||||||
if( h ) {
|
if( h ) {
|
||||||
if( h->flag & STRUCT_HTTP_FLAG_IOB_USED )
|
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 )
|
if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED )
|
||||||
array_reset( &h->request );
|
array_reset( &h->data.request );
|
||||||
if( h->flag & STRUCT_HTTP_FLAG_WAITINGFORTASK )
|
if( h->flag & STRUCT_HTTP_FLAG_WAITINGFORTASK )
|
||||||
mutex_workqueue_canceltask( socket );
|
mutex_workqueue_canceltask( socket );
|
||||||
free( h );
|
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 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 ) )
|
if( memchr( static_inbuf, '\n', l ) )
|
||||||
return http_handle_request( clientsocket, static_inbuf, l );
|
return http_handle_request( clientsocket, static_inbuf, l );
|
||||||
h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED;
|
h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED;
|
||||||
array_catb( &h->request, static_inbuf, l );
|
array_catb( &h->data.request, static_inbuf, l );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
h->flag |= STRUCT_HTTP_FLAG_ARRAY_USED;
|
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 );
|
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 );
|
return http_issue_error( clientsocket, CODE_HTTPERROR_500 );
|
||||||
|
|
||||||
if( memchr( array_start( &h->request ), '\n', 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->request ), array_bytes( &h->request ) );
|
return http_handle_request( clientsocket, array_start( &h->data.request ), array_bytes( &h->data.request ) );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_write( const int64 clientsocket ) {
|
static void handle_write( const int64 clientsocket ) {
|
||||||
struct http_data* h=io_getcookie( 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 );
|
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 */
|
/* whoever sends data is not interested in its input-array */
|
||||||
if( h && ( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) ) {
|
if( h && ( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) ) {
|
||||||
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 );
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
iob_reset( &h->batch );
|
iob_reset( &h->data.batch );
|
||||||
memmove( outbuf, buffer + written_size, size - written_size );
|
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;
|
h->flag |= STRUCT_HTTP_FLAG_IOB_USED;
|
||||||
|
|
||||||
/* writeable short data sockets just have a tcp timeout */
|
/* 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 */
|
free it now */
|
||||||
if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) {
|
if( h->flag & STRUCT_HTTP_FLAG_ARRAY_USED ) {
|
||||||
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 */
|
/* 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
|
else
|
||||||
header_size = sprintf( header, "HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\nContent-Length: %zd\r\n\r\n", size );
|
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_reset( &h->data.batch );
|
||||||
iob_addbuf_free( &h->batch, header, header_size );
|
iob_addbuf_free( &h->data.batch, header, header_size );
|
||||||
|
|
||||||
/* Will move to ot_iovec.c */
|
/* Will move to ot_iovec.c */
|
||||||
for( i=0; i<iovec_entries; ++i )
|
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 );
|
free( iovector );
|
||||||
|
|
||||||
h->flag |= STRUCT_HTTP_FLAG_IOB_USED;
|
h->flag |= STRUCT_HTTP_FLAG_IOB_USED;
|
||||||
|
@ -18,7 +18,7 @@ struct http_data {
|
|||||||
union {
|
union {
|
||||||
array request;
|
array request;
|
||||||
io_batch batch;
|
io_batch batch;
|
||||||
};
|
} data;
|
||||||
char ip[4];
|
char ip[4];
|
||||||
STRUCT_HTTP_FLAG flag;
|
STRUCT_HTTP_FLAG flag;
|
||||||
};
|
};
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "trackerlogic.h"
|
#include "trackerlogic.h"
|
||||||
#include "ot_mutex.h"
|
#include "ot_mutex.h"
|
||||||
|
|
||||||
//#define MTX_DBG( STRING ) fprintf( stderr, STRING )
|
/* #define MTX_DBG( STRING ) fprintf( stderr, STRING ) */
|
||||||
#define MTX_DBG( STRING )
|
#define MTX_DBG( STRING )
|
||||||
|
|
||||||
/* Our global all torrents list */
|
/* 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 *counts[ NUM_BUFS ];
|
||||||
uint32_t slash24s[amount*2]; /* first dword amount, second dword subnet */
|
uint32_t slash24s[amount*2]; /* first dword amount, second dword subnet */
|
||||||
// int bucket;
|
|
||||||
size_t i, j, k, l;
|
size_t i, j, k, l;
|
||||||
char *r = reply;
|
char *r = reply;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user