diff --git a/internal/c/myip.cpp b/internal/c/myip.cpp index 445074e42..bfb8e21bd 100644 --- a/internal/c/myip.cpp +++ b/internal/c/myip.cpp @@ -29,40 +29,22 @@ _DELAY 0.05 ' 50ms delay (20 checks per second) GET #client, , a2$ a$ = a$ + a2$ - i = INSTR(a$, "Content-Length:") - IF i THEN - i2 = INSTR(i, a$, e$) - IF i2 THEN - l = VAL(MID$(a$, i + 15, i2 - i - 14)) - i3 = INSTR(i2, a$, e$ + e$) - IF i3 THEN - i3 = i3 + 4 'move i3 to start of data - IF (LEN(a$) - i3 + 1) = l THEN - CLOSE client ' CLOSE CLIENT - d$ = MID$(a$, i3, l) - - 'check IP format: - i = 0 'total dots - x$ = "" 'current number - FOR i2 = 1 TO LEN(d$) - IF ASC(d$, i2) = 46 THEN - IF LEN(x$) = 0 THEN EXIT FUNCTION - x$ = "" - i = i + 1 - IF i > 3 THEN EXIT FUNCTION - ELSEIF ASC(d$, i2) < 48 OR ASC(d$, i2) > 57 THEN - EXIT FUNCTION - ELSE - x$ = x$ + MID$(d$, i2, 1) - END IF - NEXT - - whatismyip$ = d$ - EXIT FUNCTION - END IF ' availabledata = l - END IF ' i3 - END IF ' i2 - END IF ' i + IF l = 0 THEN + i = INSTR(a$, e$ + e$) + IF i THEN + i2 = INSTR(i + 4, a$, e$) + IF i2 THEN + l = VAL("&H" + MID$(a$, i + 4, i2 - i - 2)) + a$ = MID$(a$, i + 4 + i2 - i - 2) + END IF ' i2 + END IF ' i + ELSE + IF LEN(a$) >= l THEN + whatismyip$ = LEFT$(a$, l) + CLOSE client + EXIT FUNCTION + END IF + END IF LOOP UNTIL TIMER > t! + 5 ' (in seconds) CLOSE client END FUNCTION @@ -77,8 +59,7 @@ qbs* WHATISMYIP(){ //changed name from FUNC_WHATISMYIP to WHATISMYIP uint8 *tmp_mem_static_pointer=mem_static_pointer; uint32 tmp_cmem_sp=cmem_sp; - - //data1.txt + // include "data1.txt" qbs *_FUNC_WHATISMYIP_STRING_WHATISMYIP=NULL; if (!_FUNC_WHATISMYIP_STRING_WHATISMYIP)_FUNC_WHATISMYIP_STRING_WHATISMYIP=qbs_new(0,0); qbs *_FUNC_WHATISMYIP_STRING_URL=NULL; @@ -87,77 +68,58 @@ qbs* WHATISMYIP(){ //changed name from FUNC_WHATISMYIP to WHATISMYIP if (!_FUNC_WHATISMYIP_STRING_URL2)_FUNC_WHATISMYIP_STRING_URL2=qbs_new(0,0); float *_FUNC_WHATISMYIP_SINGLE_X=NULL; if(_FUNC_WHATISMYIP_SINGLE_X==NULL){ - _FUNC_WHATISMYIP_SINGLE_X=(float*)mem_static_malloc(4); - *_FUNC_WHATISMYIP_SINGLE_X=0; + _FUNC_WHATISMYIP_SINGLE_X=(float*)mem_static_malloc(4); + *_FUNC_WHATISMYIP_SINGLE_X=0; } float *_FUNC_WHATISMYIP_SINGLE_CLIENT=NULL; if(_FUNC_WHATISMYIP_SINGLE_CLIENT==NULL){ - _FUNC_WHATISMYIP_SINGLE_CLIENT=(float*)mem_static_malloc(4); - *_FUNC_WHATISMYIP_SINGLE_CLIENT=0; + _FUNC_WHATISMYIP_SINGLE_CLIENT=(float*)mem_static_malloc(4); + *_FUNC_WHATISMYIP_SINGLE_CLIENT=0; } qbs *_FUNC_WHATISMYIP_STRING_E=NULL; if (!_FUNC_WHATISMYIP_STRING_E)_FUNC_WHATISMYIP_STRING_E=qbs_new(0,0); qbs *_FUNC_WHATISMYIP_STRING_URL3=NULL; if (!_FUNC_WHATISMYIP_STRING_URL3)_FUNC_WHATISMYIP_STRING_URL3=qbs_new(0,0); - byte_element_struct *byte_element_20=NULL; - if (!byte_element_20){ - if ((mem_static_pointer+=12)chr,_FUNC_WHATISMYIP_STRING_X->len,byte_element_21),0); + sub_put2(qbr(*_FUNC_WHATISMYIP_SINGLE_CLIENT),NULL,byte_element((uint64)_FUNC_WHATISMYIP_STRING_X->chr,_FUNC_WHATISMYIP_STRING_X->len,byte_element_3),0); qbs_cleanup(qbs_tmp_base,0); *_FUNC_WHATISMYIP_SINGLE_T=func_timer(NULL,0); do{ - sub__delay( 0.05E+0 ); - sub_get2(qbr(*_FUNC_WHATISMYIP_SINGLE_CLIENT),NULL,_FUNC_WHATISMYIP_STRING_A2,0); - qbs_cleanup(qbs_tmp_base,0); - qbs_set(_FUNC_WHATISMYIP_STRING_A,qbs_add(_FUNC_WHATISMYIP_STRING_A,_FUNC_WHATISMYIP_STRING_A2)); - qbs_cleanup(qbs_tmp_base,0); - *_FUNC_WHATISMYIP_SINGLE_I=func_instr(NULL,_FUNC_WHATISMYIP_STRING_A,qbs_new_txt_len("Content-Length:",15),0); - qbs_cleanup(qbs_tmp_base,0); - if ((*_FUNC_WHATISMYIP_SINGLE_I)||new_error){ - *_FUNC_WHATISMYIP_SINGLE_I2=func_instr(qbr(*_FUNC_WHATISMYIP_SINGLE_I),_FUNC_WHATISMYIP_STRING_A,_FUNC_WHATISMYIP_STRING_E,1); - qbs_cleanup(qbs_tmp_base,0); - if ((*_FUNC_WHATISMYIP_SINGLE_I2)||new_error){ - *_FUNC_WHATISMYIP_SINGLE_L=func_val(func_mid(_FUNC_WHATISMYIP_STRING_A,qbr(*_FUNC_WHATISMYIP_SINGLE_I+ 15 ),qbr(*_FUNC_WHATISMYIP_SINGLE_I2-*_FUNC_WHATISMYIP_SINGLE_I- 14 ),1)); - qbs_cleanup(qbs_tmp_base,0); - *_FUNC_WHATISMYIP_SINGLE_I3=func_instr(qbr(*_FUNC_WHATISMYIP_SINGLE_I2),_FUNC_WHATISMYIP_STRING_A,qbs_add(_FUNC_WHATISMYIP_STRING_E,_FUNC_WHATISMYIP_STRING_E),1); - qbs_cleanup(qbs_tmp_base,0); - if ((*_FUNC_WHATISMYIP_SINGLE_I3)||new_error){ - *_FUNC_WHATISMYIP_SINGLE_I3=*_FUNC_WHATISMYIP_SINGLE_I3+ 4 ; - if ((qbs_cleanup(qbs_tmp_base,-(((float)((_FUNC_WHATISMYIP_STRING_A->len-*_FUNC_WHATISMYIP_SINGLE_I3+ 1 )))==((float)(*_FUNC_WHATISMYIP_SINGLE_L)))))||new_error){ - sub_close(qbr(*_FUNC_WHATISMYIP_SINGLE_CLIENT),1); - qbs_set(_FUNC_WHATISMYIP_STRING_D,func_mid(_FUNC_WHATISMYIP_STRING_A,qbr(*_FUNC_WHATISMYIP_SINGLE_I3),qbr(*_FUNC_WHATISMYIP_SINGLE_L),1)); - qbs_cleanup(qbs_tmp_base,0); - *_FUNC_WHATISMYIP_SINGLE_I= 0 ; - qbs_set(_FUNC_WHATISMYIP_STRING_X,qbs_new_txt_len("",0)); - qbs_cleanup(qbs_tmp_base,0); - fornext_value25= 1 ; - fornext_finalvalue25=_FUNC_WHATISMYIP_STRING_D->len; - fornext_step25= 1 ; - if (fornext_step25<0) fornext_step_negative25=1; else fornext_step_negative25=0; - if (new_error) goto fornext_error25; - goto fornext_entrylabel25; - while(1){ - fornext_value25=fornext_step25+(*_FUNC_WHATISMYIP_SINGLE_I2); - fornext_entrylabel25: - *_FUNC_WHATISMYIP_SINGLE_I2=fornext_value25; - qbs_cleanup(qbs_tmp_base,0); - if (fornext_step_negative25){ - if (fornext_value25fornext_finalvalue25) break; - } - fornext_error25:; - if ((qbs_cleanup(qbs_tmp_base,-(qbs_asc(_FUNC_WHATISMYIP_STRING_D,qbr(*_FUNC_WHATISMYIP_SINGLE_I2))== 46 )))||new_error){ - if ((qbs_cleanup(qbs_tmp_base,-(_FUNC_WHATISMYIP_STRING_X->len== 0 )))||new_error){ - goto exit_subfunc; - } - qbs_set(_FUNC_WHATISMYIP_STRING_X,qbs_new_txt_len("",0)); - qbs_cleanup(qbs_tmp_base,0); - *_FUNC_WHATISMYIP_SINGLE_I=*_FUNC_WHATISMYIP_SINGLE_I+ 1 ; - if ((-(*_FUNC_WHATISMYIP_SINGLE_I> 3 ))||new_error){ - goto exit_subfunc; - } - }else{ - if (qbs_cleanup(qbs_tmp_base,(-(qbs_asc(_FUNC_WHATISMYIP_STRING_D,qbr(*_FUNC_WHATISMYIP_SINGLE_I2))< 48 ))|(-(qbs_asc(_FUNC_WHATISMYIP_STRING_D,qbr(*_FUNC_WHATISMYIP_SINGLE_I2))> 57 )))){ - goto exit_subfunc; - }else{ - qbs_set(_FUNC_WHATISMYIP_STRING_X,qbs_add(_FUNC_WHATISMYIP_STRING_X,func_mid(_FUNC_WHATISMYIP_STRING_D,qbr(*_FUNC_WHATISMYIP_SINGLE_I2), 1 ,1))); - qbs_cleanup(qbs_tmp_base,0); - } - } - fornext_continue_24:; - } - fornext_exit_24:; - qbs_set(_FUNC_WHATISMYIP_STRING_WHATISMYIP,_FUNC_WHATISMYIP_STRING_D); - qbs_cleanup(qbs_tmp_base,0); - goto exit_subfunc; - } - } - } - } - dl_continue_22:; + sub__delay( 0.05E+0 ); + sub_get2(qbr(*_FUNC_WHATISMYIP_SINGLE_CLIENT),NULL,_FUNC_WHATISMYIP_STRING_A2,0); + qbs_cleanup(qbs_tmp_base,0); + qbs_set(_FUNC_WHATISMYIP_STRING_A,qbs_add(_FUNC_WHATISMYIP_STRING_A,_FUNC_WHATISMYIP_STRING_A2)); + qbs_cleanup(qbs_tmp_base,0); + if ((-(*_FUNC_WHATISMYIP_SINGLE_L== 0 ))||new_error){ + *_FUNC_WHATISMYIP_SINGLE_I=func_instr(NULL,_FUNC_WHATISMYIP_STRING_A,qbs_add(_FUNC_WHATISMYIP_STRING_E,_FUNC_WHATISMYIP_STRING_E),0); + qbs_cleanup(qbs_tmp_base,0); + if ((*_FUNC_WHATISMYIP_SINGLE_I)||new_error){ + *_FUNC_WHATISMYIP_SINGLE_I2=func_instr(qbr(*_FUNC_WHATISMYIP_SINGLE_I+ 4 ),_FUNC_WHATISMYIP_STRING_A,_FUNC_WHATISMYIP_STRING_E,1); + qbs_cleanup(qbs_tmp_base,0); + if ((*_FUNC_WHATISMYIP_SINGLE_I2)||new_error){ + *_FUNC_WHATISMYIP_SINGLE_L=func_val(qbs_add(qbs_new_txt_len("&H",2),func_mid(_FUNC_WHATISMYIP_STRING_A,qbr(*_FUNC_WHATISMYIP_SINGLE_I+ 4 ),qbr(*_FUNC_WHATISMYIP_SINGLE_I2-*_FUNC_WHATISMYIP_SINGLE_I- 2 ),1))); + qbs_cleanup(qbs_tmp_base,0); + qbs_set(_FUNC_WHATISMYIP_STRING_A,func_mid(_FUNC_WHATISMYIP_STRING_A,qbr(*_FUNC_WHATISMYIP_SINGLE_I+ 4 +*_FUNC_WHATISMYIP_SINGLE_I2-*_FUNC_WHATISMYIP_SINGLE_I- 2 ),NULL,0)); + qbs_cleanup(qbs_tmp_base,0); + } + } + }else{ + if ((qbs_cleanup(qbs_tmp_base,-(_FUNC_WHATISMYIP_STRING_A->len>=*_FUNC_WHATISMYIP_SINGLE_L)))||new_error){ + qbs_set(_FUNC_WHATISMYIP_STRING_WHATISMYIP,qbs_left(_FUNC_WHATISMYIP_STRING_A,qbr(*_FUNC_WHATISMYIP_SINGLE_L))); + qbs_cleanup(qbs_tmp_base,0); + sub_close(qbr(*_FUNC_WHATISMYIP_SINGLE_CLIENT),1); + goto exit_subfunc; + } + } + dl_continue_4:; }while((!(-(((float)((func_timer(NULL,0))))>((float)((*_FUNC_WHATISMYIP_SINGLE_T+ 5 ))))))&&(!new_error)); - dl_exit_22:; + dl_exit_4:; sub_close(qbr(*_FUNC_WHATISMYIP_SINGLE_CLIENT),1); exit_subfunc:; free_mem_lock(sf_mem_lock); - - //"free1.txt" + // include "free1.txt" qbs_free(_FUNC_WHATISMYIP_STRING_URL); qbs_free(_FUNC_WHATISMYIP_STRING_URL2); qbs_free(_FUNC_WHATISMYIP_STRING_E); @@ -275,9 +193,8 @@ qbs* WHATISMYIP(){ //changed name from FUNC_WHATISMYIP to WHATISMYIP qbs_free(_FUNC_WHATISMYIP_STRING_X); qbs_free(_FUNC_WHATISMYIP_STRING_A2); qbs_free(_FUNC_WHATISMYIP_STRING_A); - qbs_free(_FUNC_WHATISMYIP_STRING_D); - - + // end of "free1.txt" + if ((tmp_mem_static_pointer>=mem_static)&&(tmp_mem_static_pointer<=mem_static_limit)) mem_static_pointer=tmp_mem_static_pointer; else mem_static_pointer=mem_static; cmem_sp=tmp_cmem_sp; qbs_maketmp(_FUNC_WHATISMYIP_STRING_WHATISMYIP);return _FUNC_WHATISMYIP_STRING_WHATISMYIP;