summaryrefslogtreecommitdiff
path: root/trunk/ACE/apps/JAWS2/HTTPU/http_request.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/ACE/apps/JAWS2/HTTPU/http_request.cpp')
-rw-r--r--trunk/ACE/apps/JAWS2/HTTPU/http_request.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/trunk/ACE/apps/JAWS2/HTTPU/http_request.cpp b/trunk/ACE/apps/JAWS2/HTTPU/http_request.cpp
new file mode 100644
index 00000000000..d4f5eb4366b
--- /dev/null
+++ b/trunk/ACE/apps/JAWS2/HTTPU/http_request.cpp
@@ -0,0 +1,86 @@
+// $Id$
+
+#include "HTTPU/http_request.h"
+#include "HTTPU/parse_http_request.h"
+
+void
+HTTP_Request::parse_line (void)
+{
+ this->status_ = STATUS_OK;
+
+ this->request_.init (this->line ());
+ if (this->request_.error () != Parse_HTTP_Request::HTTPU_OK)
+ {
+ this->status_ = STATUS_INTERNAL_SERVER_ERROR;
+ return;
+ }
+ if (this->request_.major_version () == 0)
+ {
+ this->no_headers_ = 1;
+ return;
+ }
+
+ this->url_.init (this->request_.url ());
+ if (this->url_.error () != 0)
+ this->status_ = STATUS_INTERNAL_SERVER_ERROR;
+}
+
+int
+HTTP_Request::espouse_line (void)
+{
+ int count;
+
+ if (this->request_.major_version () == 0)
+ {
+ count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s /%s\r\n\r\n",
+ this->request_.method_str (),
+ this->url_.url_path ());
+
+ if (count < 0)
+ return -1;
+
+ this->mb_->wr_ptr (count);
+
+ return 1;
+ }
+
+ count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s /%s %s\r\n",
+ this->request_.method_str (),
+ this->url_.url_path (),
+ this->request_.version ());
+
+ if (count < 0)
+ return -1;
+
+ this->mb_->wr_ptr (count);
+
+ if (this->url_.host () != 0)
+ {
+ JAWS_Header_Data *hd = this->headers ()->find ("Host");
+ if (hd == 0)
+ {
+ count = ACE_OS::sprintf (this->mb_->wr_ptr (), "Host: %s\r\n",
+ this->url_.host ());
+
+ if (count < 0)
+ return -1;
+
+ this->mb_->wr_ptr (count);
+ }
+ }
+
+ return 0;
+}
+
+void
+HTTP_Request::dump (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "===== BEGIN entera_HTTP_Request::dump =====\n"));
+ HTTP_Base::dump ();
+ this->request_.dump ();
+ ACE_DEBUG ((LM_DEBUG, "===== END entera_HTTP_Request::dump =====\n"));
+}
+
+#if !defined (ACE_HAS_INLINED_OSCALLS)
+# include "HTTPU/http_request.inl"
+# endif /* ACE_HAS_INLINED_OSCALLS */