Commit 28f3072658bbb43b7ba72f8081491122e0827fb3

Authored by David RENÉ
1 parent 0cf37d9c

[~] refactor and improve the speed of the separate_uri_from_query_string() function

Showing 1 changed file with 26 additions and 16 deletions   Show diff stats
web/multihost_http_server.anubis
... ... @@ -1571,20 +1571,30 @@ define Result(Error,String)
1571 1571  
1572 1572  
1573 1573 define (String,String)
1574   - separate_uri_from_query_string
1575   - (
1576   - String uri_and_query_string,
1577   - Int n
1578   - ) =
1579   - if nth(n,uri_and_query_string) is
1580   - {
1581   - failure then (uri_and_query_string,""),
1582   - success(c) then
1583   - if c = '?'
1584   - then (substr(uri_and_query_string,0,n),
1585   - substr(uri_and_query_string,n+1,length(uri_and_query_string)-(n+1)))
1586   - else separate_uri_from_query_string(uri_and_query_string,n+1)
1587   - }.
  1574 + separate_uri_from_query_string
  1575 + (
  1576 + String uri_and_query_string,
  1577 + ) =
  1578 + if find_string(uri_and_query_string, "?", 0) is
  1579 + {
  1580 + failure then (uri_and_query_string,""),
  1581 + success(pos) then (substr(uri_and_query_string, 0, pos),
  1582 + substr(uri_and_query_string, pos+1, length(uri_and_query_string)-(pos+1)))
  1583 + }
  1584 +.
  1585 +
  1586 +// if nth(n, uri_and_query_string) is
  1587 +// {
  1588 +// failure then (uri_and_query_string,""),
  1589 +// success(c) then
  1590 +// if c = '?'
  1591 +// then (substr(uri_and_query_string,0,n),
  1592 +// substr(uri_and_query_string,n+1,length(uri_and_query_string)-(n+1)))
  1593 +// else separate_uri_from_query_string(uri_and_query_string,n+1)
  1594 +// }
  1595 +//.
  1596 +
  1597 +
1588 1598  
1589 1599  
1590 1600  
... ... @@ -1742,8 +1752,8 @@ public define Result(Error, HTTP_Request_Line)
1742 1752 error(msg) then error(msg),
1743 1753 ok(_) then
1744 1754  
1745   - if separate_uri_from_query_string(uri_and_query_string,0) is
1746   - (uri,query_string) then
  1755 + if separate_uri_from_query_string(uri_and_query_string) is
  1756 + (uri, query_string) then
1747 1757 if identify_get_or_post(method) is
1748 1758 {
1749 1759 error(msg) then error(msg),
... ...