=================================================================== RCS file: /home/cvs/OpenXM/src/asir-port/cgi/webasir2.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM/src/asir-port/cgi/webasir2.c 2014/08/30 12:25:56 1.1 +++ OpenXM/src/asir-port/cgi/webasir2.c 2014/08/30 22:47:20 1.2 @@ -1,9 +1,10 @@ -/* $OpenXM$ +/* $OpenXM: OpenXM/src/asir-port/cgi/webasir2.c,v 1.1 2014/08/30 12:25:56 takayama Exp $ */ /* (httpd-asir2.sm1) run webasir2 */ #include +#include #include #include #include @@ -12,6 +13,7 @@ #include #define SIZE 0x10000 +char *byteArrayToUrlEncoding(char *s,int size); int Debug=1; int main(int argc,char *argv[]) { @@ -24,10 +26,17 @@ int main(int argc,char *argv[]) { int i; char key[SIZE]; char comm[SIZE]; + char *asircomm; int quit; quit = 0; + asircomm="3-2;"; for (i=1; itmp-webasir.txt"); @@ -80,7 +89,7 @@ int main(int argc,char *argv[]) { write(dataPort,comm,strlen(comm)); fflush(NULL); }else{ - sprintf(comm,"GET /?%s=10-21;\n\n",key); + sprintf(comm,"GET /?%s=%s;\n\n",key,byteArrayToUrlEncoding(asircomm,strlen(asircomm))); write(dataPort,comm,strlen(comm)); fflush(NULL); } @@ -91,3 +100,46 @@ int main(int argc,char *argv[]) { printf("%s\n",comm); } +/* from kan96xx/plugin/oxcgi.c */ +/* . - _ A-Z a-z 0-9 + space --> + +*/ +static int isUrlEncoding3(char s) { + if ((s == '.') || (s == '-') || (s == '_')) return(0); + if ((s >= 'A') && (s <= 'Z')) return(0); + if ((s >= 'a') && (s <= 'z')) return(0); + if ((s >= '0') && (s <= '9')) return(0); + if (s == ' ') return(0); + return(1); +} + +char *byteArrayToUrlEncoding(char *s,int size) { + int n,i,j; + char *r; + n = 0; + /* get Size */ + for (i=0; i