pike.git / lib / modules / Protocols.pmod / HTTP.pmod / module.pmod

version» Context lines:

pike.git/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:38:   //! method array(string) post_url_nice(string url,mapping query_variables)   //! method array(string) post_url_nice(string url,mapping query_variables, mapping request_headers)   //! method string post_url_data(string url,mapping query_variables)   //! method string post_url_data(string url,mapping query_variables, mapping request_headers)   //! method object(Protocols.HTTP.Query) post_url(string url,mapping query_variables)   //! method object(Protocols.HTTP.Query) post_url(string url,mapping query_variables, mapping request_headers)   //! Similar to the <ref>get_url</ref> class of functions, except that the   //! query variables is sent as a post request instead of a get.   //!    - object get_url(string url,void|mapping query_variables, void|mapping request_headers) + object get_url(string url, +  void|mapping query_variables, +  void|mapping request_headers)   {    object con=master()->resolv("Protocols")["HTTP"]["Query"]();       string prot="http",host;    int port=80;    string query;    if(!request_headers)    request_headers = ([]);       sscanf(url,"%[^:/]://%[^:/]:%d/%s",prot,host,port,query) == 4 ||    (port=80,sscanf(url,"%[^:/]://%[^:/]/%s",prot,host,query)) == 3 ||    (prot="http",sscanf(url,"%[^:/]:%d/%s",host,port,query)) == 3 ||    (port=80,sscanf(url,"%[^:/]/%s",host,query)) == 2 ||    (host=url,query="");       if (prot!="http")    error("Protocols.HTTP can't handle %O or any other protocol than HTTP\n",    prot);    -  if (query_variables) +  if (query_variables && sizeof(query_variables))    {    if (search(query,"?")!=-1)    query+="&"+http_encode_query(query_variables);    else    query+="?"+http_encode_query(query_variables);    }       con->sync_request(host,port,    "GET /"+query+" HTTP/1.0", -  (["user-agent": -  "Mozilla/4.0 compatible (Pike HTTP client)"]) | request_headers); +  ([ +  "user-agent":"Mozilla/4.0 compatible (Pike HTTP client)", +  "host":host +  ]) | request_headers);       if (!con->ok) return 0;    return con;   }    - object put_url(string url, void|string file, void|mapping query_variables, + object put_url(string url, +  void|string file, +  void|mapping query_variables,    void|mapping request_headers)   {    object con=master()->resolv("Protocols")["HTTP"]["Query"]();       string prot="http",host;    int port=80;    string query;    if(!request_headers)    request_headers = ([]);       sscanf(url,"%[^:/]://%[^:/]:%d/%s",prot,host,port,query) == 4 ||    (port=80,sscanf(url,"%[^:/]://%[^:/]/%s",prot,host,query)) == 3 ||    (prot="http",sscanf(url,"%[^:/]:%d/%s",host,port,query)) == 3 ||    (port=80,sscanf(url,"%[^:/]/%s",host,query)) == 2 ||    (host=url,query="");       if (prot!="http")    error("Protocols.HTTP can't handle %O or any other protocol than HTTP\n",    prot);    -  if (query_variables) +  if (query_variables && sizeof(query_variables))    {    if (search(query,"?")!=-1)    query+="&"+http_encode_query(query_variables);    else    query+="?"+http_encode_query(query_variables);    }    -  con->sync_request(host,port, +  con->sync_request(host, port,    "PUT /"+query+" HTTP/1.0",    ([ -  "user-agent": -  "Mozilla/4.0 compatible (Pike HTTP client)" +  "user-agent":"Mozilla/4.0 compatible (Pike HTTP client)", +  "host":host    ]) | request_headers,    file);       if (!con->ok) return 0;    return con;   }    - object delete_url(string url, void|mapping query_variables, + object delete_url(string url, +  void|mapping query_variables,    void|mapping request_headers)   {    object con=master()->resolv("Protocols")["HTTP"]["Query"]();       string prot="http",host;    int port=80;    string query;    if(!request_headers)    request_headers = ([]);       sscanf(url,"%[^:/]://%[^:/]:%d/%s",prot,host,port,query) == 4 ||    (port=80,sscanf(url,"%[^:/]://%[^:/]/%s",prot,host,query)) == 3 ||    (prot="http",sscanf(url,"%[^:/]:%d/%s",host,port,query)) == 3 ||    (port=80,sscanf(url,"%[^:/]/%s",host,query)) == 2 ||    (host=url,query="");       if (prot!="http")    error("Protocols.HTTP can't handle %O or any other protocol than HTTP\n",    prot);    -  if (query_variables) +  if (query_variables && sizeof(query_variables))    {    if (search(query,"?")!=-1)    query+="&"+http_encode_query(query_variables);    else    query+="?"+http_encode_query(query_variables);    }       con->sync_request(host,port,    "DELETE /"+query+" HTTP/1.0", -  (["user-agent": -  "Mozilla/4.0 compatible (Pike HTTP client)"]) | +  ([ +  "user-agent":"Mozilla/4.0 compatible (Pike HTTP client)", +  "host":host +  ]) |    request_headers);       if (!con->ok) return 0;    return con;   }      array(string) get_url_nice(string url,void|mapping query_variables, void|mapping request_headers)   {    object c=get_url(url,query_variables, request_headers);    return c && ({c->headers["content-type"],c->data()});
pike.git/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:189:    (prot="http",sscanf(url,"%[^:/]:%d/%s",host,port,query)) == 3 ||    (port=80,sscanf(url,"%[^:/]/%s",host,query)) == 2 ||    (host=url,query="");       if (prot!="http")    error("Protocols.HTTP can't handle %O or any other protocol than HTTP\n",    prot);       con->sync_request(host,port,    "POST /"+query+" HTTP/1.0", -  (["user-agent": -  "Mozilla/4.0 compatible (Pike HTTP client)"]) | +  ([ +  "user-agent":"Mozilla/4.0 compatible (Pike HTTP client)", +  "host":host +  ]) |    request_headers |    (["content-type":    "application/x-www-form-urlencoded"]),    http_encode_query(query_variables));       if (!con->ok) return 0;    return con;   }    - array(string) post_url_nice(string url,mapping query_variables, void|mapping request_headers) + array(string) post_url_nice(string url, +  mapping query_variables, +  void|mapping request_headers)   {    object c=post_url(url,query_variables, request_headers);    return c && ({c->headers["content-type"],c->data()});   }    - string post_url_data(string url,mapping query_variables, void|mapping request_headers) + string post_url_data(string url, +  mapping query_variables, +  void|mapping request_headers)   {    object z=post_url(url,query_variables, request_headers);    return z && z->data();   }      //!   //! method string unentity(string s)   //! Helper function for replacing HTML entities   //! with the corresponding iso-8859-1 characters.   //! note: