diff options
author | Koen Kooi <koen@openembedded.org> | 2009-08-31 18:39:13 +0200 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2009-08-31 18:39:13 +0200 |
commit | ef79d5bc597f4b110bc36294020e1dd497a6813a (patch) | |
tree | 89914562dc7e4b6b1b634abf25c7ba063af81d87 /recipes/sscep/files/httphost.patch | |
parent | 0ef4a105d02563ebcfce9d141077fef495c90dd4 (diff) | |
parent | 72834ed878dae08dd62c68e14dcebfe3c9bad791 (diff) |
Merge branch 'org.openembedded.dev' of git@git.openembedded.org:openembedded into org.openembedded.dev
Diffstat (limited to 'recipes/sscep/files/httphost.patch')
-rw-r--r-- | recipes/sscep/files/httphost.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/recipes/sscep/files/httphost.patch b/recipes/sscep/files/httphost.patch new file mode 100644 index 0000000000..313df16309 --- /dev/null +++ b/recipes/sscep/files/httphost.patch @@ -0,0 +1,66 @@ +commit cb3827e31b14e4830bdfd309c12f5510e0402d8d +Author: michael <michael@ea9f5d8b-f83d-0410-bf23-ec2180cbb196> +Date: Mon Jun 25 21:52:51 2007 +0000 + + 20040325.1: add HTTP Host: header to work behind Hughes satellite autoproxy + + + git-svn-id: file:///usr/local/httpd/SourceForge/home/users/michael/svn/svnrepos/os/packages/sscep/trunk@37 ea9f5d8b-f83d-0410-bf23-ec2180cbb196 + +diff --git a/sscep.c b/sscep.c +index 6ec2a4d..6eefdc9 100644 +--- a/sscep.c ++++ b/sscep.c +@@ -16,6 +16,7 @@ main(int argc, char **argv) { + int c, host_port = 80, count = 1; + char *host_name, *p, *dir_name = NULL; + char http_string[16384]; ++ char http_host[256]; + struct http_reply reply; + unsigned int n; + unsigned char md[EVP_MAX_MD_SIZE]; +@@ -250,6 +251,9 @@ main(int argc, char **argv) { + if (p_flag) { + host_name = strdup(p_char); + dir_name = url_char; ++ ++ /* I won't bother with the Host: header for proxy mode. */ ++ http_host[0] = '\0'; + } + + /* Break down the URL */ +@@ -289,6 +293,12 @@ main(int argc, char **argv) { + host_port); + exit (SCEP_PKISTATUS_ERROR); + } ++ if (!p_flag) { ++ if (snprintf(http_host, sizeof(http_host), "Host: %s:%d\r\n", ++ host_name, host_port) >= sizeof(http_host)) { ++ http_host[0] = '\0'; ++ } ++ } + if (v_flag) { + fprintf(stdout, "%s: hostname: %s\n", pname, host_name); + fprintf(stdout, "%s: directory: %s\n", pname, dir_name); +@@ -349,8 +359,8 @@ main(int argc, char **argv) { + /* Forge the HTTP message */ + snprintf(http_string, sizeof(http_string), + "GET %s%s?operation=GetCACert&message=%s " +- "HTTP/1.0\r\n\r\n", p_flag ? "" : "/", dir_name, +- i_char); ++ "HTTP/1.0\r\n%s\r\n", p_flag ? "" : "/", ++ dir_name, i_char, http_host); + printf("%s: requesting CA certificate\n", pname); + if (d_flag) + fprintf(stdout, "%s: scep msg: %s", pname, +@@ -549,8 +559,8 @@ not_enroll: + snprintf(http_string, sizeof(http_string), + "GET %s%s?operation=" + "PKIOperation&message=" +- "%s HTTP/1.0\r\n\r\n", +- p_flag ? "" : "/", dir_name, p); ++ "%s HTTP/1.0\r\n%s\r\n", ++ p_flag ? "" : "/", dir_name, p, http_host); + + free(p); + p = NULL; |