bei mir haben alle Versionen seit 2.4.0 das geschilderte "Problem", irgendwie scheinen die eher für Fehler oder Ungenauigkeiten im Code anfällig zu sein - trotzdem müsste man es zum Laufen kriegen, sonst würden sie ja auch unter 2.4.0 nicht laufen.
- - - Aktualisiert - - -
PS,
hier übrigens meine Parserfunktionen, um username + pwd herauszufiltern:
Code://---------------------------------------------------------------------------- // String functions //---------------------------------------------------------------------------- int16_t strstrpos(char * haystack, char * needle) // find 1st occurance of substr in str { char *p = strstr(haystack, needle); if (p) return p - haystack; return -1; // Not found = -1. } //------------------------------------------------------- const int MAXLEN = 1024; const int TOKLEN = 64; //------------------------------------------------------- char * cstringarg( char* haystack, char* vname, char* sarg ) { int i=0, pos=-1; unsigned char ch=0xff; const char* kini = "&"; // start of varname: '&' const char* kin2 = "?"; // start of varname: '?' const char* kequ = "="; // end of varname, start of argument: '=' char needle[TOKLEN] = ""; // complete pattern: &varname=abc1234 strcpy(sarg,""); strcpy(needle, kini); strcat(needle, vname); strcat(needle, kequ); pos = strstrpos(haystack, needle); if(pos==-1) { needle[0]=kin2[0]; pos = strstrpos(haystack, needle); if(pos==-1) return sarg; } pos=pos+strlen(vname)+2; // start of value = kini+vname+kequ while( (ch!='&')&&(ch!='\0') ) { ch=haystack[pos+i]; if( (ch=='&')||(ch==';')||(ch==' ')||(ch=='\0') ||(ch=='\n') ||(i+pos>=strlen(haystack))||(i>TOKLEN-1) ) { sarg[i]='\0'; return sarg; } if( (ch!='&') ) { sarg[i]=ch; i++; } } return sarg; } // *SNIP* cstringarg(strinput, "uname", struname); // uname cstringarg(strinput, "upwd", strupwd); // upwd
sie funktionieren sehr gut, und sehr wschl liegt hier wirklich nicht das Problem - lasse mich aber gern vom Gegenteil überzeugen!







Zitieren
Lesezeichen