Some fixed to astriumnet
- Recognize the </hash> closing tag - Convert , to . and vice versa
This commit is contained in:
32
astriumnet.c
32
astriumnet.c
@ -48,6 +48,28 @@ const char *AstriumWS(mxml_node_t* node, int where)
|
||||
return NULL;
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void ptToKomma(char *txt)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < strlen(txt); i++){
|
||||
if(txt[i] == '.'){
|
||||
txt[i] = ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
void kommaToPt(char *txt)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i = 0; i < strlen(txt); i++){
|
||||
if(txt[i] == ','){
|
||||
txt[i] = '.';
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------------------*/
|
||||
static void encodeXML(Ascon *a)
|
||||
{
|
||||
char *pPtr, *equal, *close;
|
||||
@ -71,6 +93,7 @@ static void encodeXML(Ascon *a)
|
||||
if(equal != NULL){
|
||||
*equal = '\0';
|
||||
equal++;
|
||||
ptToKomma(equal);
|
||||
mxmlElementSetAttr(param,token,equal);
|
||||
} else {
|
||||
mxmlElementSetAttr(param,token,NULL);
|
||||
@ -122,6 +145,7 @@ static int decodeXML(Ascon *a)
|
||||
DynStringConcat(a->rdBuffer,attr.name);
|
||||
if(attr.value != NULL){
|
||||
DynStringConcat(a->rdBuffer,"=");
|
||||
kommaToPt(attr.value);
|
||||
DynStringConcat(a->rdBuffer,attr.value);
|
||||
}
|
||||
DynStringConcat(a->rdBuffer,":");
|
||||
@ -169,13 +193,11 @@ static int doWaitHash(Ascon *a)
|
||||
if(ret == 1 && (int)chr != 0x16) {
|
||||
DynStringConcatChar(a->rdBuffer,chr);
|
||||
}
|
||||
if(GetDynStringLength(a->rdBuffer) >= 23) {
|
||||
if(strstr(GetCharArray(a->rdBuffer), "<Hash>") == NULL){
|
||||
AsconError(a,"Invalid response when trying to get hash",0);
|
||||
return 0;
|
||||
}
|
||||
if(strstr(GetCharArray(a->rdBuffer),"</Hash>") != NULL ) {
|
||||
pPtr = GetCharArray(a->rdBuffer);
|
||||
pPtr += 6;
|
||||
endptr = strchr(pPtr,(int)'<');
|
||||
*endptr = '\0';
|
||||
hash = strtoll(pPtr, &endptr,0);
|
||||
hash = calculateToken(priv->password,hash);
|
||||
DynStringCopy(priv->buffer,"<AuthToken>");
|
||||
|
Reference in New Issue
Block a user