|
|
@ -19,6 +19,8 @@
|
|
|
|
#include "trackerlogic.h"
|
|
|
|
#include "trackerlogic.h"
|
|
|
|
#include "scan_urlencoded_query.h"
|
|
|
|
#include "scan_urlencoded_query.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static unsigned int overall_connections = 0;
|
|
|
|
|
|
|
|
|
|
|
|
static void carp(const char* routine) {
|
|
|
|
static void carp(const char* routine) {
|
|
|
|
buffer_puts(buffer_2,routine);
|
|
|
|
buffer_puts(buffer_2,routine);
|
|
|
|
buffer_puts(buffer_2,": ");
|
|
|
|
buffer_puts(buffer_2,": ");
|
|
|
@ -279,7 +281,13 @@ e500:
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default: /* neither scrape nor announce */
|
|
|
|
case 11:
|
|
|
|
|
|
|
|
if( byte_diff(data,11,",mrtg_scrape"))
|
|
|
|
|
|
|
|
goto e404;
|
|
|
|
|
|
|
|
reply = malloc( 128 );
|
|
|
|
|
|
|
|
reply_size = sprintf( reply, "%d\n%d\nUp: 23 years.\nPertuned by german engineers.", overall_connections, overall_connections );
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default: /* neither *scrape nor announce */
|
|
|
|
e404:
|
|
|
|
e404:
|
|
|
|
httperror(h,"404 Not Found","No such file or directory.");
|
|
|
|
httperror(h,"404 Not Found","No such file or directory.");
|
|
|
|
goto bailout;
|
|
|
|
goto bailout;
|
|
|
@ -293,7 +301,7 @@ e404:
|
|
|
|
c+=fmt_httpdate(c,time(0));
|
|
|
|
c+=fmt_httpdate(c,time(0));
|
|
|
|
c+=fmt_str(c,"\r\nConnection: close\r\n\r\n");
|
|
|
|
c+=fmt_str(c,"\r\nConnection: close\r\n\r\n");
|
|
|
|
iob_addbuf(&h->iob,h->hdrbuf,c - h->hdrbuf);
|
|
|
|
iob_addbuf(&h->iob,h->hdrbuf,c - h->hdrbuf);
|
|
|
|
if( reply && reply_size ) iob_addbuf(&h->iob,reply, reply_size );
|
|
|
|
if( reply && reply_size ) iob_addbuf_free(&h->iob,reply, reply_size );
|
|
|
|
|
|
|
|
|
|
|
|
bailout:
|
|
|
|
bailout:
|
|
|
|
io_dontwantread(s);
|
|
|
|
io_dontwantread(s);
|
|
|
@ -351,6 +359,7 @@ int main()
|
|
|
|
byte_zero(h,sizeof(struct http_data));
|
|
|
|
byte_zero(h,sizeof(struct http_data));
|
|
|
|
h->ip=ip;
|
|
|
|
h->ip=ip;
|
|
|
|
io_setcookie(n,h);
|
|
|
|
io_setcookie(n,h);
|
|
|
|
|
|
|
|
++overall_connections;
|
|
|
|
} else
|
|
|
|
} else
|
|
|
|
io_close(n);
|
|
|
|
io_close(n);
|
|
|
|
} else
|
|
|
|
} else
|
|
|
|