1
0
mirror of git://erdgeist.org/opentracker synced 2025-01-12 16:00:06 +00:00

-m64 is not usually a correct compile option

This commit is contained in:
erdgeist 2007-01-20 01:50:28 +00:00
parent 07a604e3d6
commit 3d796d93f0
4 changed files with 40 additions and 7 deletions

View File

@ -2,7 +2,7 @@ CC?=gcc
FEATURES=#-D_DEBUG_FDS -DWANT_IP_FROM_QUERY_STRING -DWANT_BLACKLIST -DWANT_CLOSED_TRACKER
#DEBUG_OPTS=-g -ggdb -pg # -fprofile-arcs -ftest-coverage
DEBUG_OPTS=-s -Os
CFLAGS+=-I../libowfat -Wall -pipe -m64 # -pedantic -ansi
CFLAGS+=-I../libowfat -Wall -pipe # -pedantic -ansi
LDFLAGS+=-L../libowfat/ -lowfat -lm
HEADERS=trackerlogic.h scan_urlencoded_query.h

4
README
View File

@ -26,3 +26,7 @@ sysctl kern.ipc.somaxconn=1024
sysctl kern.ipc.nmbclusters=32768
sysctl net.inet.tcp.msl=10000
sysctl kern.maxfiles=10240
License information:
Although the libowfat library is under GPL, Felix von Leitner aggreed that the compiled binary may be distributed under the same beer ware license as the source code for opentracker. However, we like to hear from happy customers.

View File

@ -5,6 +5,7 @@
#include "socket.h"
#include "io.h"
#include "iob.h"
#include "buffer.h"
#include "array.h"
#include "byte.h"
@ -52,7 +53,10 @@ static void panic(const char* routine) {
}
struct http_data {
array r;
union {
array r;
io_batch batch;
};
unsigned char ip[4];
};
@ -81,12 +85,24 @@ void senddata(int64 s, struct http_data* h, char *buffer, size_t size ) {
free(h); io_close( s );
} else {
/* here we would take a copy of the buffer and remember it */
fprintf( stderr, "Should have handled this.\n" );
char * outbuf = malloc( size - written_size );
tai6464 t;
if( !outbuf ) {
#ifdef _DEBUG_FDS
if( !fd_debug_space[s] ) fprintf( stderr, "close on non-open fd\n" );
fd_debug_space[s] = 0;
if( !fd_debug_space[s] ) fprintf( stderr, "close on non-open fd\n" );
fd_debug_space[s] = 0;
#endif
free(h); io_close( s );
free(h); io_close( s );
return;
}
iob_reset( &h->batch );
memmove( outbuf, buffer + written_size, size - written_size );
iob_addbuf_free( &h->batch, outbuf, size - written_size );
// writeable sockets just have a tcp timeout
taia_uint(&t,0); io_timeout( s, t );
}
}
@ -437,6 +453,16 @@ void handle_read( int64 clientsocket ) {
httpresponse(clientsocket,h);
}
void handle_write( int64 clientsocket ) {
struct http_data* h=io_getcookie(clientsocket);
if( !h ) return;
if( iob_send( clientsocket, &h->batch ) <= 0 ) {
iob_reset( &h->batch );
io_close( clientsocket );
free( h );
}
}
void handle_accept( int64 serversocket ) {
struct http_data* h;
unsigned char ip[4];
@ -510,6 +536,9 @@ void server_mainloop( int64 serversocket ) {
handle_read( i );
}
while( ( i = io_canwrite() ) != -1 )
handle_write( i );
taia_now(&t);
if( taia_less( &next_timeout_check, &t ) ) {
handle_timeouted( );

View File

@ -6,7 +6,7 @@ ip=10.1.1.$(( $RANDOM & 0xff ))&port=$(( $RANDOM & 0xff )) HTTP/1.0\n"
# echo -e $request_string
# echo
echo -e $request_string | nc 127.0.0.1 6969 >/dev/null
echo -e $request_string | nc 127.0.0.1 6969 >/dev/null &
# echo
done