Rev 4848 | Rev 4996 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4848 | Rev 4983 | ||
---|---|---|---|
Line 1386... | Line 1386... | ||
1386 | endl |
1386 | endl |
Line 1387... | Line 1387... | ||
1387 | 1387 | ||
Line 1388... | Line 1388... | ||
1388 | DEBUGF 1, "parsing URL: %s\n", [URL] |
1388 | DEBUGF 1, "parsing URL: %s\n", [URL] |
1389 | 1389 | ||
1390 | ; remove any leading protocol text |
1390 | ; remove any leading protocol text |
1391 | mov esi, [URL] |
1391 | mov edi, [URL] |
1392 | mov ecx, URLMAXLEN |
1392 | mov ecx, URLMAXLEN |
1393 | mov ax, '//' |
1393 | mov ax, '//' |
1394 | .loop1: |
1394 | .loop1: |
1395 | cmp byte[esi], 0 ; end of URL? |
1395 | cmp byte[edi], 0 ; end of URL? |
1396 | je .url_ok ; yep, so not found |
1396 | je .url_ok ; yep, so not found |
1397 | cmp [esi], ax |
1397 | cmp [edi], ax |
1398 | je .skip_proto |
1398 | je .skip_proto |
1399 | inc esi |
1399 | inc edi |
1400 | dec ecx |
1400 | dec ecx |
Line 1401... | Line 1401... | ||
1401 | jnz .loop1 |
1401 | jnz .loop1 |
1402 | jmp .invalid |
1402 | jmp .invalid |
1403 | 1403 | ||
1404 | .skip_proto: |
1404 | .skip_proto: |
1405 | inc esi ; skip the two '/' |
- | |
Line 1406... | Line 1405... | ||
1406 | inc esi |
1405 | inc edi ; skip the two '/' |
1407 | mov [URL], esi ; update pointer so it skips protocol |
1406 | inc edi |
1408 | jmp .loop1 ; we still need to find the length of the URL |
1407 | mov [URL], edi ; update pointer so it skips protocol |
- | 1408 | ||
Line -... | Line 1409... | ||
- | 1409 | ; Find the trailing 0 byte |
|
- | 1410 | xor al, al |
|
- | 1411 | repne scasb |
|
Line 1409... | Line 1412... | ||
1409 | 1412 | jne .invalid ; ecx reached 0 before we reached end of string |
|
1410 | .url_ok: |
1413 | |
1411 | sub esi, [URL] ; calculate total length of URL |
1414 | .url_ok: |
1412 | mov [urlsize], esi |
1415 | sub edi, [URL] ; calculate total length of URL |
1413 | 1416 | mov [urlsize], edi |
|
1414 | 1417 | ||
1415 | ; now look for page delimiter - it's a '/' character |
1418 | ; now look for page delimiter - it's a '/' character |