From 898206ac7a254325a53f1a4c418ce702755de040 Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Fri, 8 Dec 2006 20:28:17 +0000 Subject: Some syntax errors removed --- Makefile | 2 +- opentracker.c | 37 +++++++++++++++++++------------------ scan_urlencoded_query.c | 32 ++++++++++++-------------------- scan_urlencoded_query.h | 2 +- 4 files changed, 33 insertions(+), 40 deletions(-) diff --git a/Makefile b/Makefile index 22ddea9..b61849c 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CC?=gcc CFLAGS+=-I../libowfat -Wall -O2 -pipe LDFLAGS+=-L../libowfat/ -lowfat -s -SOURCES=opentracker.c trackerlogic.c +SOURCES=opentracker.c trackerlogic.c scan_urlencoded_query.c opentracker: $(SOURCES) $(CC) $(SOURCES) -o opentracker $(CFLAGS) $(LDFLAGS) diff --git a/opentracker.c b/opentracker.c index 4a421cc..c420d6f 100644 --- a/opentracker.c +++ b/opentracker.c @@ -14,6 +14,9 @@ #include #include +#include "trackerlogic.h" +#include "scan_urlencoded_query.h" + static void carp(const char* routine) { buffer_puts(buffer_2,routine); buffer_puts(buffer_2,": "); @@ -112,9 +115,7 @@ e400: } else { - char *d; - int64 fd; - struct stat s; + char *d, *data; // expect 'GET /uri?nnbjhg HTTP/1.*' c+=4; @@ -130,19 +131,18 @@ e400: switch( scan_urlencoded_query( &c, data, SCAN_PATH ) ) { case 6: /* scrape ? */ if (!byte_diff(c,6,"scrape")) - goto 404; + goto e404; break; case 9: if( !byte_diff(c,8,"announce")) - goto 404; + goto e404; else { // info_hash, left, port, numwant, compact struct ot_peer peer; - ot_hash hash; - byte_copy( peer.ip, h->ip, 4); + byte_copy( peer.ip, 4, h->ip ); peer.port = 6881; - while( NOCHAMSCANNEN ) { + while( 1 ) { data = c; switch( scan_urlencoded_query( &c, data, SCAN_SEARCHPATH_PARAM ) ) { case -1: /* error */ @@ -150,20 +150,21 @@ e400: goto e404; case 4: if(!byte_diff(c,4,"port")) - /* scan int */ + /* scan int */ c; else if(!byte_diff(c,4,"left")) - /* scan int */ + /* scan int */ c; break; case 7: if(!byte_diff(c,7,"numwant")) - /* scan int */ + /* scan int */ c; else if(!byte_diff(c,7,"compact")) - /* scan flag */ + /* scan flag */ c; break; case 9: /* info_hash */ - if(!byte_diff(c,9,"info_hash")) + if(!byte_diff(c,9,"info_hash")) c; /* scan 20 bytes */ break; + } } } break; @@ -176,13 +177,13 @@ e400: c+=fmt_str(c,"HTTP/1.1 Coming Up\r\nContent-Type: text/plain"); c+=fmt_str(c,"\r\nContent-Length: "); /* ANSWER SIZE*/ - c+=fmt_ulonglong(c,s.st_size); + c+=fmt_ulonglong(c, 100 ); c+=fmt_str(c,"\r\nLast-Modified: "); - /* MODIFY DATE */ - c+=fmt_httpdate(c,s.st_mtime); + /* MODIFY DATE + c+=fmt_httpdate(c,s.st_mtime); */ c+=fmt_str(c,"\r\nConnection: close\r\n\r\n"); iob_addbuf(&h->iob,h->hdrbuf,c - h->hdrbuf); - iob_addbuf(&h->iob,tracker_answer, tzracker_answer_size); + iob_addbuf(&h->iob,tracker_answer, tracker_answer_size); } e404: io_dontwantread(s); @@ -227,7 +228,7 @@ int main() if (h) { byte_zero(h,sizeof(struct http_data)); - byte_copy(h->ip,ip,sizeof(ip)); + byte_copy(h->ip,sizeof(ip),ip); io_setcookie(n,h); } else io_close(n); diff --git a/scan_urlencoded_query.c b/scan_urlencoded_query.c index 7aeabab..6ba7808 100644 --- a/scan_urlencoded_query.c +++ b/scan_urlencoded_query.c @@ -1,13 +1,5 @@ #include "scan.h" - -#define BREAK_AT_QUESTIONMARK (1<<0) -#define BREAK_AT_WHITESPACE (1<<1) -#define BREAK_AT_AMPERSAND (1<<2) -#define BREAK_AT_EQUALSIGN (1<<3) - -#define SCAN_PATH ( BREAK_AT_QUESTIONMARK | BREAK_AT_WHITESPACE ) -#define SCAN_SEARCHPATH_PARAM ( BREAK_AT_EQUALSIGN ) -#define SCAN_SEARCHPATH_VALUE ( BREAK_AT_AMPERSAND | BREAK_AT_WHITESPACE ) +#include "scan_urlencoded_query.h" // Idea is to do a in place replacement or guarantee at least // strlen( string ) bytes in deststring @@ -17,19 +9,19 @@ // we add '%' to the matrix to not stop at encoded chars. static const unsigned char reserved_matrix[] = { 0xA2, 0x63, 0xFF, 0x03, 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x47}; -inline int is_unreserved( unsigned char c ) const { +inline int is_unreserved( unsigned char c ) { if( ( c <= 32 ) || ( c >= 127 ) ) return 0; return 1&(reserved_matrix[(c-32)>>3]>>(c&7)); } size_t scan_urlencoded_query(char **string, char *deststring, int flags) { - register const unsigned char* s=*(const unsigned char*) string; - const unsigned char *d = deststring; + register const unsigned char* s=*(const unsigned char**) string; + unsigned char *d = (unsigned char*)deststring; register unsigned char b, c; while ( is_unreserved( c = *s++) ) { if (c=='%') { - if( ( c = scan_fromhex(*s++) ) < 0 ) return -1; - if( ( b = scan_fromhex(*s++) ) < 0 ) return -1; + if( ( c = scan_fromhex(*s++) ) == 0xff ) return -1; + if( ( b = scan_fromhex(*s++) ) == 0xff ) return -1; c=(c<<4)|b; } *d++ = c; @@ -37,21 +29,21 @@ size_t scan_urlencoded_query(char **string, char *deststring, int flags) { switch( c ) { case 0: case '\r': case '\n': case ' ': - if ( flags & BREAK_AT_WHITESPACE == 0 ) return -1; + if ( ( flags & BREAK_AT_WHITESPACE ) == 0 ) return -1; break; case '?': - if ( flags & BREAK_AT_QUESTIONMARK == 0 ) return -1; + if ( ( flags & BREAK_AT_QUESTIONMARK ) == 0 ) return -1; break; case '=': - if ( flags & BREAK_AT_EQUALSIGN == 0 ) return -1; + if ( ( flags & BREAK_AT_EQUALSIGN ) == 0 ) return -1; break; case '&': - if ( flags & BREAK_AT_AMPERSAND == 0 ) return -1; + if ( ( flags & BREAK_AT_AMPERSAND ) == 0 ) return -1; break; default: return -1; } - *string = s; - return d - deststring; + *string = (char *)s; + return d - (unsigned char*)deststring; } diff --git a/scan_urlencoded_query.h b/scan_urlencoded_query.h index 379bc32..03ed730 100644 --- a/scan_urlencoded_query.h +++ b/scan_urlencoded_query.h @@ -1,4 +1,4 @@ -#ifdef __SCAN_URLENCODED_QUERY_H__ +#ifndef __SCAN_URLENCODED_QUERY_H__ #define __SCAN_URLENCODED_QUERY_H__ #define BREAK_AT_QUESTIONMARK (1<<0) -- cgit v1.2.3