Browse Source

Make opentracker ANSI C again.

dynamic-accesslists
erdgeist 16 years ago
parent
commit
8bdc0d73f6
  1. 20
      opentracker.c
  2. 14
      ot_http.c
  3. 2
      ot_http.h
  4. 2
      ot_mutex.c
  5. 1
      ot_stats.c

20
opentracker.c

@ -97,9 +97,9 @@ static void handle_dead( const int64 socket ) { @@ -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 ) { @@ -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

@ -53,7 +53,7 @@ static void http_senddata( const int64 client_socket, char *buffer, size_t size @@ -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 @@ -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 @@ -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 @@ -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;

2
ot_http.h

@ -18,7 +18,7 @@ struct http_data { @@ -18,7 +18,7 @@ struct http_data {
union {
array request;
io_batch batch;
};
} data;
char ip[4];
STRUCT_HTTP_FLAG flag;
};

2
ot_mutex.c

@ -19,7 +19,7 @@ @@ -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 */

1
ot_stats.c

@ -217,7 +217,6 @@ static size_t stats_slash24s_txt( char * reply, size_t amount, uint32_t thresh ) @@ -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…
Cancel
Save