From 82acf45b46bbdb448a2d135fa7c7cfd5f9c7fafa Mon Sep 17 00:00:00 2001 From: b Date: Mon, 30 Dec 2013 19:20:20 +0000 Subject: [PATCH] Everything is ready! git-svn-id: svn://botcastle1b/npb@19 0d794883-4e4e-4f65-aa7a-0e7f5947bab5 --- npb.htm | 2 +- npbd | Bin 25739 -> 27570 bytes npbd.cpp | 81 +++++++++++++++++++++++++++++++++++++++---------------- 3 files changed, 59 insertions(+), 24 deletions(-) diff --git a/npb.htm b/npb.htm index 38eab71..b137293 100644 --- a/npb.htm +++ b/npb.htm @@ -7,7 +7,7 @@

It's NewpixbOTTification time!

- NewpixbOTTify by URL (not ready!)
+ NewpixbOTTify by URL
URL: diff --git a/npbd b/npbd index acaa15dc3a8ad8f720c0861090e3bbcc8e6ae730..a25865a71467959749d529e9756dee480e3dc873 100755 GIT binary patch literal 27570 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 literal 25739 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 #include +#include #include #include +#include #define WGET_PATH "/usr/bin/wget" #define NPB_PATH "./npb" +#define RM_PATH "/bin/rm" int main (int argc, char *argv[]); +void mustard(int mustard); + +FILE *pix; +unsigned char buf[1024]; +char url[1024]; +char path[256]; +//char cmd[1024]; +s_cgi *cgi; +int t; +pid_t sub; +struct stat st; +unsigned long p; +unsigned short q; + int main (int argc, char *argv[]) { - FILE *pix; - char url[1024]; - char path[256]; - //char cmd[1024]; - s_cgi *cgi; - int t; - pid_t sub; cgi=cgiInit(); sprintf(url,"%s",cgiGetValue(cgi,"inpix")); @@ -38,31 +48,56 @@ int main (int argc, char *argv[]) if(sub==0) { t=execl(WGET_PATH,WGET_PATH,"-q","-O",path,url,(char *)0); - return t; + exit(t); } waitpid(sub,&t,0); - if(t)return t; + if(t)mustard(t); sub=fork(); if(sub==0) { t=execl(NPB_PATH,NPB_PATH,path,path,"q",(char *)0); - return t; + exit(t); } waitpid(sub,&t,0); + if(t)mustard(t); - printf("Content-type: text/html\n\n"); - printf("It's NewpixbOTTification time!"); - printf("

It's NewpixbOTTification time!

"); - printf("%s
",path); - printf("%s
",url); - printf("%d
",t); - printf("%lu
",(unsigned long)sub); - printf("\n"); - + pix=fopen(path,"rb"); + if(pix==NULL) + mustard(123); + fstat(fileno(pix),&st); + p=st.st_size/1024; + q=st.st_size%1024; - - //npbpix=fopen("/var/tmp/test","wb"); - //fclose(npbpix); - return 0; + printf("Content-Length: %lu\n",(unsigned long)(st.st_size)); + printf("Content-type: image/png\n\n"); + for(unsigned long i=0;i