diff options
Diffstat (limited to 'apps/JAWS/server')
32 files changed, 0 insertions, 6606 deletions
diff --git a/apps/JAWS/server/HTTP_Config.cpp b/apps/JAWS/server/HTTP_Config.cpp deleted file mode 100644 index 62e496bbd3e..00000000000 --- a/apps/JAWS/server/HTTP_Config.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// HTTP_Config.cpp -// $Id$ - -#include "ace/OS.h" -#include "HTTP_Config.h" - -// static HTTP_Config_Info config_info; - -HTTP_Config_Info *HTTP_Config::instance_ = 0; - -HTTP_Config_Info * -HTTP_Config::instance (void) -{ - if (HTTP_Config::instance_ == 0) - { - HTTP_Config::instance_ = new HTTP_Config_Info; - - HTTP_Config::instance_->document_root (0); - HTTP_Config::instance_->cgi_path (0); - HTTP_Config::instance_->user_dir (0); - HTTP_Config::instance_->dir_index (0); - HTTP_Config::instance_->proxy_flag (0); - } - - return HTTP_Config::instance_; -} - -HTTP_Config_Info::HTTP_Config_Info (void) - : document_root_ (0), - cgi_path_ (0), - user_dir_ (0), - dir_index_ (0), - proxy_flag_ (0) -{ -} - -HTTP_Config_Info::~HTTP_Config_Info (void) -{ -} - -const char * -HTTP_Config_Info::document_root (void) const -{ - return this->document_root_; -} - -const char * -HTTP_Config_Info::cgi_path (void) const -{ - return this->cgi_path_; -} - -const char * -HTTP_Config_Info::user_dir (void) const -{ - return this->user_dir_; -} - -const char * -HTTP_Config_Info::dir_index (void) const -{ - return this->dir_index_; -} - -int -HTTP_Config_Info::proxy_flag (void) const -{ - return this->proxy_flag_; -} - -char * -HTTP_Config_Info::document_root (char *dr_string) -{ - if (dr_string) - this->document_root_ = dr_string; - else - { - this->document_root_ = ACE_OS::getenv ("JAWS_DOCUMENT_ROOT"); - if (!this->document_root_) - this->document_root_ = "."; - } - - return this->document_root_; -} - -char * -HTTP_Config_Info::cgi_path (char *cp_string) -{ - if (cp_string) - this->cgi_path_ = cp_string; - else - { - this->cgi_path_ = ACE_OS::getenv ("JAWS_CGI_PATH"); - - if (!this->cgi_path_) - this->cgi_path_ = "cgi-bin"; - } - - return this->cgi_path_; -} - -char * -HTTP_Config_Info::user_dir (char *ud_string) -{ - if (ud_string) - this->user_dir_ = ud_string; - else - { - this->user_dir_ = ACE_OS::getenv ("JAWS_USER_DIR"); - if (!this->user_dir_) - this->user_dir_ = ".www"; - } - - return this->user_dir_; -} - -char * -HTTP_Config_Info::dir_index (char *di_string) -{ - if (di_string) - this->dir_index_ = di_string; - else - { - this->dir_index_ = ACE_OS::getenv ("JAWS_DIR_INDEX"); - if (!this->dir_index_) - this->dir_index_ = "index.html"; - } - - return this->dir_index_; -} - -int -HTTP_Config_Info::proxy_flag (int pf) -{ - this->proxy_flag_ = pf; - return this->proxy_flag_; -} diff --git a/apps/JAWS/server/HTTP_Config.h b/apps/JAWS/server/HTTP_Config.h deleted file mode 100644 index fc8adacb0a1..00000000000 --- a/apps/JAWS/server/HTTP_Config.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// HTTP_Config.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -// = Forward declaration. -class HTTP_Config_Info; - -class HTTP_Config - // = TITLE - // Stores server configuration information. - // Someday, this will be hip and cool and be able to parse - // NCSA httpd style config files like Apache does. For now, - // I'm just going to hack in environment variable stuff. - // - // Designed around Singleton pattern. -{ -public: - static HTTP_Config_Info *instance (void); - // Access the Singleton. - -private: - static HTTP_Config_Info *instance_; - // Store the Singleton. -}; - -class HTTP_Config_Info - // = TITLE - // This is where the information is really stored. -{ -friend class HTTP_Config; -public: - HTTP_Config_Info (void); - ~HTTP_Config_Info (void); - - // Accessors to the information - - const char *document_root (void) const; - // Where the root of the document tree begins. This prevents - // clients from being able to examine your entire filesystem. - - const char *cgi_path (void) const; - // A search path for CGI files. - - const char *user_dir (void) const; - // The directory which is appended to a home user directory, e.g., - // ".www-docs" or "public_html". - - const char *dir_index (void) const; - // What is the default index file for a directory, e.g., - // "index.html". - - int proxy_flag (void) const; - // Will the server support proxy requests? - -private: - // = Accesors that can set the data - - char *document_root (char *dr_string); - char *cgi_path (char *cp_string); - char *user_dir (char *ud_string); - char *dir_index (char *di_string); - - int proxy_flag (int pf); - -private: - // = Data members - - char *document_root_; - // The directory root from which documents will be fetched - - char *cgi_path_; - // The directories from which to expect CGI scripts - - char *user_dir_; - // Name of the sub-directory where user Web pages are - - char *dir_index_; - // Name of the Web page to present in place of a directory listing - - int proxy_flag_; - // Should we support proxy requests? Ignored for now. -}; diff --git a/apps/JAWS/server/HTTP_Handler.cpp b/apps/JAWS/server/HTTP_Handler.cpp deleted file mode 100644 index 8714105ffd4..00000000000 --- a/apps/JAWS/server/HTTP_Handler.cpp +++ /dev/null @@ -1,287 +0,0 @@ -// $Id$ - -// HTTP_Service.cpp -- simple implementation of the HTTP protocol - -#include "ace/Message_Block.h" -#include "ace/Filecache.h" - -#include "HTTP_Handler.h" -#include "HTTP_Helpers.h" -#include "IO.h" - -HTTP_Handler::HTTP_Handler (JAWS_IO &io, - HTTP_Handler_Factory &factory) - : factory_ (factory), - request_data_ (0), - handle_ (ACE_INVALID_HANDLE), - response_ (io, request_), - io_ (io) -{ - this->io_.handler (this); -} - -HTTP_Handler::~HTTP_Handler (void) -{ - this->request_data_->release (); - this->request_data_ = 0; -} - -void -HTTP_Handler::open (ACE_HANDLE handle, - ACE_Message_Block &initial_data) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) New connection \n")); - - int sockbufsize = HTTP_Handler::MAX_SOCKBUFSIZE; - int result = ACE_OS::setsockopt (handle, - SOL_SOCKET, - SO_RCVBUF, - (char *) &sockbufsize, - sizeof sockbufsize); - - if (result == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "SO_RCVBUF")); - - sockbufsize = HTTP_Handler::MAX_SOCKBUFSIZE; - - result = ACE_OS::setsockopt (handle, - SOL_SOCKET, - SO_SNDBUF, - (char *) &sockbufsize, - sizeof sockbufsize); - if (result == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "SO_SNDBUF")); - - this->handle_ = handle; - this->io_.handle (this->handle_); - - this->request_data_ = initial_data.duplicate (); - this->read_complete (initial_data); -} - -void -HTTP_Handler::read_complete (ACE_Message_Block &message_block) -{ - // This is actually a callback entry point. The JAWS_IO framework - // calls into this method after some data has been read in. - - switch (this->request_.parse_request (message_block)) - { - case 0: - do - { - int next_read_size - = HTTP_Handler::MAX_REQUEST_SIZE - message_block.length (); - - if (next_read_size == 0) - { - this->request_too_long (); - return; - } - - this->io_.read (message_block, next_read_size); - } - while (0); - break; - - default: - // this->request_.respond (); - this->response_.process_request (); - } -} - -void -HTTP_Handler::receive_file_complete (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) %s received successfully\n", - request_.uri ())); - - char buffer[BUFSIZ]; - int buflen = - ACE_OS::sprintf (buffer, - "%s %d %s\r\n", - this->request_.version (), - HTTP_Status_Code::STATUS_OK, - "Successful"); - - this->io_.send_confirmation_message (buffer, buflen); -} - -void -HTTP_Handler::receive_file_error (int result) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) %s error in receiving file\n", - request_.uri ())); - - char buffer[BUFSIZ]; - - int status_code; - switch (result) - { - case ACE_Filecache_Handle::ACCESS_FAILED: - case ACE_Filecache_Handle::WRITE_FAILED: - case ACE_Filecache_Handle::OPEN_FAILED: - status_code = HTTP_Status_Code::STATUS_NOT_FOUND; - break; - case ACE_Filecache_Handle::COPY_FAILED: - case ACE_Filecache_Handle::STAT_FAILED: - case ACE_Filecache_Handle::MEMMAP_FAILED: - status_code = HTTP_Status_Code::STATUS_FORBIDDEN; - break; - default: - status_code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR; - break; - } - int buflen = - ACE_OS::sprintf (buffer, - "%s %d %s", - this->request_.version (), - status_code, - "Failed"); - - this->io_.send_confirmation_message (buffer, buflen); -} - -void -HTTP_Handler::confirmation_message_complete (void) -{ - this->done (); -} - -void -HTTP_Handler::error_message_complete (void) -{ - this->done (); -} - -void -HTTP_Handler::transmit_file_complete (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) %s transmitted successfully\n", - request_.uri ())); - - this->done (); -} - -void -HTTP_Handler::transmit_file_error (int result) -{ - ACE_DEBUG ((LM_DEBUG, - " (%t) %s error in transmitting file\n", - request_.uri ())); - - int status_code; - - switch (result) - { - case ACE_Filecache_Handle::ACCESS_FAILED: - case ACE_Filecache_Handle::WRITE_FAILED: - case ACE_Filecache_Handle::OPEN_FAILED: - status_code = HTTP_Status_Code::STATUS_NOT_FOUND; - break; - case ACE_Filecache_Handle::COPY_FAILED: - case ACE_Filecache_Handle::STAT_FAILED: - case ACE_Filecache_Handle::MEMMAP_FAILED: - status_code = HTTP_Status_Code::STATUS_FORBIDDEN; - break; - default: - status_code = HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR; - break; - } - - this->response_.error_response (status_code, "error in transmitting file"); -} - -void -HTTP_Handler::read_error (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) error in reading request\n")); - this->done (); -} - -void -HTTP_Handler::write_error (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) %s error in writing response\n", - request_.uri ())); - - this->done (); -} - -void -HTTP_Handler::timeout (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) %s error in reading request\n", - request_.uri ())); - - this->response_. - error_response (HTTP_Status_Code::STATUS_INTERNAL_SERVER_ERROR, - "error in reading request"); -} - -void -HTTP_Handler::request_too_long (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) request too long\n")); - this->response_. - error_response (HTTP_Status_Code::STATUS_BAD_REQUEST, - "request too long"); -} - -void -HTTP_Handler::done (void) -{ - this->factory_.destroy_http_handler (*this, this->io_); -} - -HTTP_Handler_Factory::~HTTP_Handler_Factory (void) -{ -} - -HTTP_Handler * -Synch_HTTP_Handler_Factory::create_http_handler (void) -{ - JAWS_Synch_IO *io; - ACE_NEW_RETURN (io, JAWS_Synch_IO, 0); - HTTP_Handler *handler; - ACE_NEW_RETURN (handler, HTTP_Handler (*io, *this), 0); - - return handler; -} - -void -Synch_HTTP_Handler_Factory::destroy_http_handler (HTTP_Handler &handler, - JAWS_IO &io) -{ - delete &handler; - delete &io; -} - -// This only works on Win32 -#if defined (ACE_WIN32) -void -Asynch_HTTP_Handler_Factory::open (ACE_HANDLE handle, - ACE_Message_Block &mb) -{ - JAWS_Asynch_IO *io; - ACE_NEW (io, JAWS_Asynch_IO); - HTTP_Handler *handler; - ACE_NEW (handler, HTTP_Handler (*io, *this)); - handler->open (handle, mb); -} - -void -Asynch_HTTP_Handler_Factory::destroy_http_handler (HTTP_Handler &handler, - JAWS_IO &io) -{ - delete &handler; - delete &io; - delete this; -} - -HTTP_Handler * -Asynch_HTTP_Handler_Factory::create_http_handler (void) -{ - return 0; -} -#endif /* ACE_WIN32 */ diff --git a/apps/JAWS/server/HTTP_Handler.h b/apps/JAWS/server/HTTP_Handler.h deleted file mode 100644 index 0865ee326ae..00000000000 --- a/apps/JAWS/server/HTTP_Handler.h +++ /dev/null @@ -1,191 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// HTTP_Handler.h -// -// = AUTHOR -// James Hu and Irfan Pyarali -// -// ============================================================================ - -#if !defined (HTTP_HANDLER_H) -#define HTTP_HANDLER_H - -// = Forward declarations -class Message_Block; -class HTTP_Handler_Factory; - -#include "ace/Asynch_IO.h" -#include "HTTP_Request.h" -#include "HTTP_Response.h" -#include "IO.h" - -class HTTP_Handler : protected JAWS_IO_Handler - // = TITLE - // - // This class is used to implement the HTTP protocol - // - // = DESCRIPTION - // - // The HTTP_Handler class is a state based implementation of the - // HTTP protocol. Therefore, it can be used synchronously and - // asynchronously. It uses an abstract IO class to move between - // different HTTP protocol states. It is up to the IO class to - // decide on synchronous or asynchronous I/O. -{ - // Friend I/O classes. Can call protected methods. - friend class JAWS_Synch_IO; - friend class JAWS_Asynch_IO; - - // Factories - friend class Asynch_HTTP_Handler_Factory; - friend class Synch_HTTP_Handler_Factory; - -public: - virtual void open (ACE_HANDLE handle, - ACE_Message_Block &initial_data); - // The handler is initialized with a connection <handle> of a new - // client and any <initial_data> that came across. The - // <initial_data> block will be of MAX_REQUEST_SIZE and the number - // of bytes in <initial_data> can be found from - // <initial_data>.length () - -protected: - HTTP_Handler (JAWS_IO &io, - HTTP_Handler_Factory &factory); - // The constructor is passed the factory that created <this> and the - // IO mechanism that the handler should use. - - virtual ~HTTP_Handler (void); - // Destructor - - virtual void timeout (void); - // This method is called by the framework when there is a timeout. - - virtual void done (void); - // This is the termination state of the handler. After successful or - // unsuccessful completions, the handler will end up in this state - // (method). - - virtual void request_too_long (void); - // Request too long. - - HTTP_Handler_Factory &factory_; - // Reference to the creating factory. - -protected: - // = Completion methods inherited from <JAWS_IO_Handler>. - - virtual void read_complete (ACE_Message_Block &data); - virtual void read_error (void); - virtual void transmit_file_complete (void); - virtual void transmit_file_error (int result); - virtual void receive_file_complete (void); - virtual void receive_file_error (int result); - virtual void write_error (void); - virtual void confirmation_message_complete (void); - virtual void error_message_complete (void); - -public: - enum - { - MAX_SOCKBUFSIZE = 64 * 1024, - MAX_REQUEST_SIZE = 8192, - METHODSIZ = 10, - VERSIONSIZ = 10 - }; - -private: - ACE_Message_Block *request_data_; - // This points to the request sent by the client - - ACE_HANDLE handle_; - // I/O handle to the client - - HTTP_Request request_; - HTTP_Response response_; - - JAWS_IO &io_; - // IO class used by the handler -}; - -class HTTP_Handler_Factory - // = TITLE - // - // This class is used to create new HTTP handlers - // - // = DESCRIPTION - // - // This is an abstract factory for creating new HTTP handlers. -{ -public: - virtual ~HTTP_Handler_Factory (void); - // Destructor - - virtual HTTP_Handler *create_http_handler (void) = 0; - // This creates a new HTTP_Handler - - virtual void destroy_http_handler (HTTP_Handler &handler, - JAWS_IO &io) = 0; - // The HTTP handler will call this method from HTTP_Handler::done to - // tell the factory to reap up the handler as it is now done with - // the protocol -}; - -class Synch_HTTP_Handler_Factory : public HTTP_Handler_Factory - // = TITLE - // - // This class is used to create new HTTP handlers that will use - // Synch IO - // - // = DESCRIPTION -{ -public: - HTTP_Handler *create_http_handler (void); - // This creates a new HTTP_Handler - - void destroy_http_handler (HTTP_Handler &handler, - JAWS_IO &io); - // The HTTP handler will call this method from HTTP_Handler::done to - // tell the factory to reap up the handler as it is now done with - // the protocol -}; - -#if defined (ACE_WIN32) -class Asynch_HTTP_Handler_Factory : public HTTP_Handler_Factory, public ACE_Service_Handler - // = TITLE - // This class is used to create new HTTP handlers that will use - // Asynchronous IO. This only works on Win32. - // - // = DESCRIPTION -{ -public: - void destroy_http_handler (HTTP_Handler &handler, - JAWS_IO &io); - // The HTTP handler will call this method from HTTP_Handler::done to - // tell the factory to reap up the handler as it is now done with - // the protocol - - virtual void open (ACE_HANDLE handle, - ACE_Message_Block &message_block); - // <open> is called by <ACE_Asynch_Acceptor> to initialize a new - // instance of ACE_Service_Handler that has been created after the a - // new connection is accepted. - // - // This will act as a creation point for new handlers. - -private: - HTTP_Handler *create_http_handler (void); - // This method is private as users are not allowed to create new - // handlers. New handlers can only be created by the framework when - // new client connections arrive. -}; -#endif /* ACE_WIN32 */ -#endif /* HTTP_HANDLER_H */ diff --git a/apps/JAWS/server/HTTP_Helpers.cpp b/apps/JAWS/server/HTTP_Helpers.cpp deleted file mode 100644 index 8386921f98b..00000000000 --- a/apps/JAWS/server/HTTP_Helpers.cpp +++ /dev/null @@ -1,429 +0,0 @@ -// $Id$ - -// HTTP_Helpers.cpp -- Helper utilities for both server and client - -#include "HTTP_Helpers.h" - -// = Static initialization. -const char *const -HTTP_Helper::months_[12]= -{ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; - -char const *HTTP_Helper::alphabet_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -char * HTTP_Helper::date_string_ = 0; -ACE_SYNCH_MUTEX HTTP_Helper::mutex_; - -ACE_SYNCH_MUTEX HTTP_Status_Code::lock_; -int HTTP_Status_Code::instance_ = 0; -const char *HTTP_Status_Code::Reason[HTTP_Status_Code::MAX_STATUS_CODE + 1]; - -time_t -HTTP_Helper::HTTP_mktime (const char *httpdate) -{ - char *buf; - - ACE_NEW_RETURN (buf, char[ACE_OS::strlen (httpdate) + 1], (time_t) -1); - - // Make spaces in the date be semi-colons so we can parse robustly - // with sscanf. - - const char *ptr1 = httpdate; - char *ptr2 = buf; - - do - { - if (*ptr1 == ' ') - *ptr2++ = ';'; - else - *ptr2++ = *ptr1; - } - while (*ptr1++ != '\0'); - - // In HTTP/1.0, there are three versions of an HTTP_date. - - // rfc1123-date = wkday "," SP dd month yyyy SP hh:mm:ss SP "GMT" - // rfc850-date = weekday "," SP dd-month-yy SP hh:mm:ss SP "GMT" - // asctime-date = wkday SP month dd SP hh:mm:ss SP yyyy - - const char *rfc1123_date = "%3s,;%2d;%3s;%4d;%2d:%2d:%2d;GMT"; - const char *rfc850_date = "%s,;%2d-%3s-%2d;%2d:%2d:%2d;GMT"; - const char *asctime_date = "%3s;%3s;%2d;%2d:%2d:%2d;%4d"; - - // Should also support other versions (such as from NNTP and SMTP) - // for robustness, but it should be clear how to extend this. - - struct tm tms; - char month[4]; - char weekday[10]; - - if (::sscanf(buf, rfc1123_date, - weekday, - &tms.tm_mday, - month, - &tms.tm_year, - &tms.tm_hour, - &tms.tm_min, - &tms.tm_sec) == 7) - ; - else if (::sscanf(buf, rfc850_date, - weekday, - &tms.tm_mday, month, &tms.tm_year, - &tms.tm_hour, &tms.tm_min, &tms.tm_sec) == 7) - { - weekday[3] = '\0'; - } - else if (::sscanf(buf, asctime_date, - weekday, - month, &tms.tm_mday, - &tms.tm_hour, &tms.tm_min, &tms.tm_sec, - &tms.tm_year) == 7) - ; - - delete buf; - - tms.tm_year = HTTP_Helper::fixyear (tms.tm_year); - tms.tm_mon = HTTP_Helper::HTTP_month (month); - - if (tms.tm_mon == -1) - return (time_t) -1; - - // mktime is a Standard C function. - { - -#if !defined (ACE_HAS_REENTRANT_LIBC) - ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> g (HTTP_Helper::mutex_)); -#endif /* NOT ACE_HAS_REENTRANT_LIBC */ - - return ACE_OS::mktime (&tms); - } -} - -const char * -HTTP_Helper::HTTP_date (void) -{ - if (HTTP_Helper::date_string_ == 0) - { - ACE_MT (ACE_Guard<ACE_SYNCH_MUTEX> m (HTTP_Helper::mutex_)); - - time_t tloc; - struct tm tms; - - if (HTTP_Helper::date_string_ == 0) - { - // 40 bytes is all I need. - HTTP_Helper::date_string_ = new char[40]; - - if (ACE_OS::time (&tloc) != (time_t) -1 - && ACE_OS::gmtime_r (&tloc, &tms) != NULL) - ACE_OS::strftime (HTTP_Helper::date_string_, 40, - "%a, %d %b %Y %T GMT", &tms); - else - { - delete [] HTTP_Helper::date_string_; - HTTP_Helper::date_string_ = 0; - } - } - } - - return HTTP_Helper::date_string_; -} - -const char * -HTTP_Helper::HTTP_date (char *s) -{ - time_t tloc; - struct tm tms; - char * date_string = s; - - if (ACE_OS::time (&tloc) != (time_t) -1 - && ACE_OS::gmtime_r (&tloc, &tms) != NULL) - ACE_OS::strftime (date_string, 40, "%a, %d %b %Y %T GMT", &tms); - else - date_string = 0; - - return date_string; -} - -int -HTTP_Helper::HTTP_month (const char *month) -{ - for (size_t i = 0; i < 12; i++) - if (ACE_OS::strcmp(month, HTTP_Helper::months_[i]) == 0) - return i; - - return -1; -} - -const char * -HTTP_Helper::HTTP_month (int month) -{ - if (month < 0 || month >= 12) - return 0; - - return HTTP_Helper::months_[month]; -} - -// Fix the path if it needs fixing/is fixable. - -char * -HTTP_Helper::HTTP_decode_string (char *path) -{ - // replace the percentcodes with the actual character - int i, j; - char percentcode[3]; - - for (i = j = 0; path[i] != '\0'; i++, j++) - { - if (path[i] == '%') - { - percentcode[0] = path[++i]; - percentcode[1] = path[++i]; - percentcode[2] = '\0'; - path[j] = (char) ACE_OS::strtol (percentcode, (char **) 0, 16); - } - else - path[j] = path[i]; - } - - path[j] = path[i]; - - return path; -} - -char * -HTTP_Helper::HTTP_decode_base64 (char *data) -{ - char inalphabet[256], decoder[256]; - - ACE_OS::memset (inalphabet, 0, sizeof (inalphabet)); - ACE_OS::memset (decoder, 0, sizeof (decoder)); - - for (int i = ACE_OS::strlen (HTTP_Helper::alphabet_) - 1; - i >= 0; - i--) - { - inalphabet[(unsigned int) HTTP_Helper::alphabet_[i]] = 1; - decoder[(unsigned int) HTTP_Helper::alphabet_[i]] = i; - } - - char *indata = data; - char *outdata = data; - - int bits = 0; - int c; - int char_count = 0; - int errors = 0; - - while ((c = *indata++) != '\0') - { - if (c == '=') - break; - if (c > 255 || ! inalphabet[c]) - continue; - bits += decoder[c]; - char_count++; - if (char_count == 4) - { - *outdata++ = (bits >> 16); - *outdata++ = ((bits >> 8) & 0xff); - *outdata++ = (bits & 0xff); - bits = 0; - char_count = 0; - } - else - bits <<= 6; - } - - if (c == '\0') - { - if (char_count) - { - ACE_DEBUG ((LM_DEBUG, - "base64 encoding incomplete: at least %d bits truncated\n", - ((4 - char_count) * 6))); - errors++; - } - } - else - { - // c == '=' - switch (char_count) - { - case 1: - ACE_DEBUG ((LM_DEBUG, - "base64 encoding incomplete: at least 2 bits missing\n")); - errors++; - break; - case 2: - *outdata++ = (bits >> 10); - break; - case 3: - *outdata++ = (bits >> 16); - *outdata++ = ((bits >> 8) & 0xff); - break; - } - } - *outdata = '\0'; - return errors ? 0 : data; -} - -char * -HTTP_Helper::HTTP_encode_base64 (char *data) -{ - char buf[BUFSIZ]; - int c; - int error; - int char_count = 0; - int bits = 0; - error = 0; - char *indata = data; - char *outdata = buf; - const unsigned char ASCII_MAX = ~0; - - while ((c = *indata++) != '\0') - { - if (c > (int)ASCII_MAX) - { - ACE_DEBUG ((LM_DEBUG, "encountered char > 255 (decimal %d)\n", c)); - error++; - break; - } - bits += c; - char_count++; - - if (char_count == 3) - { - *outdata++ = HTTP_Helper::alphabet_[bits >> 18]; - *outdata++ = HTTP_Helper::alphabet_[(bits >> 12) & 0x3f]; - *outdata++ = HTTP_Helper::alphabet_[(bits >> 6) & 0x3f]; - *outdata++ = HTTP_Helper::alphabet_[bits & 0x3f]; - bits = 0; - char_count = 0; - } - else - bits <<= 8; - } - - if (!error) - { - if (char_count != 0) - { - bits <<= 16 - (8 * char_count); - *outdata++ = HTTP_Helper::alphabet_[bits >> 18]; - *outdata++ = HTTP_Helper::alphabet_[(bits >> 12) & 0x3f]; - - if (char_count == 1) - { - *outdata++ = '='; - *outdata++ = '='; - } - else - { - *outdata++ = HTTP_Helper::alphabet_[(bits >> 6) & 0x3f]; - *outdata++ = '='; - } - } - *outdata = '\0'; - ACE_OS::strcpy (data, buf); - } - - return (error ? 0 : data); -} - -int -HTTP_Helper::fixyear (int year) -{ - // Fix the year 2000 problem - - if (year > 1000) - year -= 1900; - else if (year < 100) - { - struct tm tms; - time_t tloc; - - if (ACE_OS::time (&tloc) != (time_t) -1) - { - ACE_OS::gmtime_r (&tloc, &tms); - - if (tms.tm_year % 100 == year) - year = tms.tm_year; - - // The last two cases check boundary conditions, in case the - // year just changed at the moment we checked to see if we - // need to fix it. - if ((year+1) % 100 == tms.tm_year % 100) - year = tms.tm_year - 1; - - if (year == (tms.tm_year + 1) % 100) - year = tms.tm_year + 1; - - // What to do if none of the above? - } - } - - return year; -} - -const char ** -HTTP_Status_Code::instance (void) -{ - if (HTTP_Status_Code::instance_ == 0) - { - ACE_Guard<ACE_SYNCH_MUTEX> g (lock_); - - if (HTTP_Status_Code::instance_ == 0) - { - for (size_t i = 0; - i < HTTP_Status_Code::MAX_STATUS_CODE + 1; - i++) - { - switch (i) - { - case STATUS_OK: - HTTP_Status_Code::Reason[i] = "OK"; break; - case STATUS_CREATED: - HTTP_Status_Code::Reason[i] = "Created"; break; - case STATUS_ACCEPTED: - HTTP_Status_Code::Reason[i] = "Accepted"; break; - case STATUS_NO_CONTENT: - HTTP_Status_Code::Reason[i] = "No Content"; break; - case STATUS_MOVED_PERMANENTLY: - HTTP_Status_Code::Reason[i] = "Moved Permanently"; break; - case STATUS_MOVED_TEMPORARILY: - HTTP_Status_Code::Reason[i] = "Moved Temporarily"; break; - case STATUS_NOT_MODIFIED: - HTTP_Status_Code::Reason[i] = "Not Modified"; break; - case STATUS_BAD_REQUEST: - HTTP_Status_Code::Reason[i] = "Bad Request"; break; - case STATUS_UNAUTHORIZED: - HTTP_Status_Code::Reason[i] = "Unauthorized"; break; - case STATUS_FORBIDDEN: - HTTP_Status_Code::Reason[i] = "Forbidden"; break; - case STATUS_NOT_FOUND: - HTTP_Status_Code::Reason[i] = "Not Found"; break; - case STATUS_INTERNAL_SERVER_ERROR: - HTTP_Status_Code::Reason[i] = "Internal Server Error"; break; - case STATUS_NOT_IMPLEMENTED: - HTTP_Status_Code::Reason[i] = "Not Implemented"; break; - case STATUS_BAD_GATEWAY: - HTTP_Status_Code::Reason[i] = "Bad Gateway"; break; - case STATUS_SERVICE_UNAVAILABLE: - HTTP_Status_Code::Reason[i] = "Service Unavailable"; break; - default: - HTTP_Status_Code::Reason[i] = "Unknown"; - } - } - - HTTP_Status_Code::instance_ = 1; - } - - // GUARD released - } - - return HTTP_Status_Code::Reason; -} diff --git a/apps/JAWS/server/HTTP_Helpers.h b/apps/JAWS/server/HTTP_Helpers.h deleted file mode 100644 index b22533d62b0..00000000000 --- a/apps/JAWS/server/HTTP_Helpers.h +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// apps -// -// = FILENAME -// HTTP_Helpers.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -#if !defined (HTTP_HELPERS_H) -#define HTTP_HELPERS_H - -#include "ace/Synch.h" - -class HTTP_Helper -// Static functions to enhance the lives of HTTP programmers everywhere. -{ -public: - - // Convert and HTTP-date into a time_t - static time_t HTTP_mktime (const char *httpdate); - - // Create today's date - static const char *HTTP_date (void); - static const char *HTTP_date (char *s); - - // Month conversions (ascii <--> numeric) - static int HTTP_month (const char *month); - static const char *HTTP_month (int month); - - static char *HTTP_decode_string (char *path); - - // Encode/Decode base64 stuff (weak security model) - static char *HTTP_decode_base64 (char *data); - static char *HTTP_encode_base64 (char *data); - -private: - - static int fixyear (int year); - -private: - static const char *const months_[12]; - static char const *alphabet_; - - static char *date_string_; - static ACE_SYNCH_MUTEX mutex_; - // Use this sometimes (e.g. HTTP_date) -}; - -// Design around the Singleton pattern - -class HTTP_Status_Code - // = TITLE - // Go from numeric status codes to descriptive strings. - // - // = DESCRIPTION - // Design around the Singleton pattern -{ -public: - static const char **instance (void); - // Singleton access point. - - enum STATUS_CODE - { - STATUS_OK = 200, - STATUS_CREATED = 201, - STATUS_ACCEPTED = 202, - STATUS_NO_CONTENT = 204, - STATUS_MOVED_PERMANENTLY = 301, - STATUS_MOVED_TEMPORARILY = 302, - STATUS_NOT_MODIFIED = 304, - STATUS_BAD_REQUEST = 400, - STATUS_UNAUTHORIZED = 401, - STATUS_FORBIDDEN = 403, - STATUS_NOT_FOUND = 404, - STATUS_INTERNAL_SERVER_ERROR = 500, - STATUS_NOT_IMPLEMENTED = 501, - STATUS_BAD_GATEWAY = 502, - STATUS_SERVICE_UNAVAILABLE = 503, - STATUS_INSUFFICIENT_DATA = 399 - }; - - enum - { - MAX_STATUS_CODE = 599 - }; - -private: - // Singleton pattern is afoot here. - static const char *Reason[MAX_STATUS_CODE + 1]; - static int instance_; - static ACE_SYNCH_MUTEX lock_; -}; - -#endif /* HTTP_HELPERS_H */ - diff --git a/apps/JAWS/server/HTTP_Request.cpp b/apps/JAWS/server/HTTP_Request.cpp deleted file mode 100644 index 59d9b46b96e..00000000000 --- a/apps/JAWS/server/HTTP_Request.cpp +++ /dev/null @@ -1,658 +0,0 @@ -// $Id$ - -#include "ace/Message_Block.h" -#include "HTTP_Request.h" -#include "HTTP_Helpers.h" -#include "HTTP_Config.h" - -const char *const -HTTP_Request::static_header_strings_[HTTP_Request::NUM_HEADER_STRINGS] = -{ - "Date", - "Pragma", - "Authorization", - "From", - "If-Modified-Since", - "Referrer", - "User-Agent", - "Allow", - "Content-Encoding", - "Content-Length", - "Content-Type", - "Expires", - "Last-Modified" -}; - -const char *const -HTTP_Request::static_method_strings_[HTTP_Request::NUM_METHOD_STRINGS] = -{ - "GET", - "HEAD", - "POST", - "PUT" -}; - -// For reasons of efficiency, this class expects buffer to be -// null-terminated, and buflen does NOT include the \0. - -HTTP_Request::HTTP_Request (void) - : got_request_line_ (0), - method_ (0), - uri_ (0), - version_ (0), - path_ (0), - cgi_ (0), - cgi_env_ (0), - cgi_args_ (0), - query_string_ (0), - path_info_ (0), - header_strings_ (HTTP_Request::static_header_strings_), - method_strings_ (HTTP_Request::static_method_strings_) -{ - - for (size_t i = 0; - i < HTTP_Request::NUM_HEADER_STRINGS; - i++) - this->headers_.recognize (this->header_strings_[i]); -} - -HTTP_Request::~HTTP_Request (void) -{ - ACE_OS::free (this->method_); - ACE_OS::free (this->uri_); - ACE_OS::free (this->version_); - ACE_OS::free (this->path_); - ACE_OS::free (this->query_string_); - ACE_OS::free (this->path_info_); - - delete [] this->cgi_env_; -} - -int -HTTP_Request::parse_request (ACE_Message_Block &mb) -{ - mb.wr_ptr ()[0] = '\0'; - - // Note that RFC 822 does not mention the maximum length of a header - // line. So in theory, there is no maximum length. - - // In Apache, they assume that each header line should not exceed - // 8K. - - int result = this->headers_.complete_header_line (mb.rd_ptr ()); - - if (result != 0) - { - if (!this->got_request_line ()) - { - this->parse_request_line (mb.rd_ptr ()); - while (this->headers_.complete_header_line (mb.rd_ptr ()) > 0) - this->headers_.parse_header_line (mb.rd_ptr ()); - } - else if (result > 0) - do - this->headers_.parse_header_line (mb.rd_ptr ()); - while (this->headers_.complete_header_line (mb.rd_ptr ()) > 0); - } - - mb.wr_ptr (strlen(mb.rd_ptr ()) - mb.length ()); - - if (this->headers_.end_of_headers () - || (this->got_request_line () && this->version () == 0)) - return this->init (mb.rd_ptr (), mb.length ()); - else - return 0; -} - -void -HTTP_Request::parse_request_line (char *const request_line) -{ - char *ptr = request_line; - char *buf = request_line; - int offset = 1; - - this->status_ = HTTP_Status_Code::STATUS_OK; - - ptr = ACE_OS::strchr (request_line, '\n'); - - if (ptr > request_line && ptr[-1] == '\r') - ptr--, offset++; - - if (ptr == request_line) - { - this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST; - return; - } - - *ptr = '\0'; - ptr += offset; - - char *lasts; // for strtok_r - - // Get the request type. - this->got_request_line_ = 1; - - if (this->method (ACE_OS::strtok_r (buf, " \t", &lasts)) - && this->uri (ACE_OS::strtok_r (NULL, " \t", &lasts))) - { - this->type (this->method ()); - - if (this->version (ACE_OS::strtok_r (NULL, " \t", &lasts)) == 0 - && this->type () != HTTP_Request::GET) - this->status_ = HTTP_Status_Code::STATUS_NOT_IMPLEMENTED; - - if (this->path (this->uri ()) == 0) - this->status_ = HTTP_Status_Code::STATUS_NOT_FOUND; - } - - ACE_DEBUG ((LM_DEBUG, " (%t) request %s %s %s parsed\n", - (this->method () ? this->method () : "-"), - (this->uri () ? this->uri () : "="), - (this->version () ? this->version () : "HTTP/0.9"))); - - ACE_OS::memmove (buf, ptr, ACE_OS::strlen (ptr)+1); -} - -int -HTTP_Request::init (char *const buffer, - int buflen) -{ - // Initialize these every time. - content_length_ = -1; - - // Extract the data pointer. - data_ = buffer; - datalen_ = 0; - - // Set the datalen - if (data_ != NULL) - datalen_ = buflen; - else - datalen_ = 0; - - ACE_DEBUG ((LM_DEBUG, " (%t) init has initialized\n")); - - return 1; -} - -const char * -HTTP_Request::method (void) const -{ - return this->method_; -} - -const char * -HTTP_Request::uri (void) const -{ - return this->uri_; -} - -const char * -HTTP_Request::version (void) const -{ - return this->version_; -} - -const char * -HTTP_Request::path (void) const -{ - return this->path_; -} - -int -HTTP_Request::cgi (void) const -{ - return this->cgi_; -} - -const char ** -HTTP_Request::cgi_env (void) const -{ - return (const char **)this->cgi_env_; -} - -const char * -HTTP_Request::cgi_args (void) const -{ - return this->cgi_args_; -} - -const char * -HTTP_Request::query_string (void) const -{ - return this->query_string_; -} - -const char * -HTTP_Request::path_info (void) const -{ - return this->path_info_; -} - -int HTTP_Request::got_request_line (void) const -{ - return this->got_request_line_; -} - -int -HTTP_Request::type (void) const -{ - return type_; -} - -const Headers & -HTTP_Request::headers (void) const -{ - return this->headers_; -} - -const char * -HTTP_Request::header_strings (int index) const -{ - const char *hs = 0; - - if (0 <= index && index < NUM_HEADER_STRINGS) - hs = this->header_strings_[index]; - - return hs; -} - -const char * -HTTP_Request::header_values (int index) const -{ - const char *hs = 0; - const char *hv = 0; - - if (0 <= index && index < NUM_HEADER_STRINGS) - { - hs = this->header_strings_[index]; - hv = this->headers_[hs].value (); - } - - return hv; -} - -char * -HTTP_Request::data (void) -{ - return data_; -} - -int -HTTP_Request::data_length (void) -{ - return datalen_; -} - -int -HTTP_Request::content_length (void) -{ - if (this->content_length_ == -1) - { - const char * clv = this->headers_["Content-length"].value (); - this->content_length_ = (clv ? ACE_OS::atoi (clv) : 0); - } - - return this->content_length_; -} - -int -HTTP_Request::status (void) -{ - return this->status_; -} - -const char * -HTTP_Request::status_string (void) -{ - return HTTP_Status_Code::instance ()[this->status_]; -} - -void -HTTP_Request::dump (void) -{ - ACE_DEBUG ((LM_DEBUG, "%s command.\n" - "filename is %s," - " length of the file is %d," - " data string is %s," - " datalen is %d," - " status is %d, which is %s\n\n", - this->method () ? this->method () : "EMPTY", - this->uri () ? this->uri () : "EMPTY", - this->content_length (), - this->data () ? this->data () : "EMPTY", - this->data_length (), - this->status (), - this->status_string ())); -} - -const char * -HTTP_Request::method (const char *method_string) -{ - if (this->method_) - ACE_OS::free (this->method_); - - if (method_string == 0) - { - this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST; - this->method_ = 0; - } - else - this->method_ = ACE_OS::strdup (method_string); - - return this->method_; -} - -const char * -HTTP_Request::uri (char *uri_string) -{ - if (this->uri_) - ACE_OS::free (this->uri_); - - if (uri_string == 0) - { - this->status_ = HTTP_Status_Code::STATUS_BAD_REQUEST; - this->uri_ = 0; - } - else - { - this->uri_ = ACE_OS::strdup (uri_string); - this->cgi (this->uri_); - HTTP_Helper::HTTP_decode_string (this->uri_); - } - - return this->uri_; -} - -const char * -HTTP_Request::version (const char *version_string) -{ - if (this->version_) - ACE_OS::free (this->version_); - - if (version_string) - this->version_ = ACE_OS::strdup (version_string); - else - this->version_ = 0; - - return this->version_; -} - -int -HTTP_Request::type (const char *type_string) -{ - this->type_ = HTTP_Request::NO_TYPE; - - if (type_string == 0) - return this->type_; - - for (size_t i = 0; - i < HTTP_Request::NUM_METHOD_STRINGS; - i++) - - if (ACE_OS::strcmp (type_string, this->method_strings_[i]) == 0) - { - this->type_ = i; - break; - } - - if (this->type_ == HTTP_Request::NO_TYPE) - this->status_ = HTTP_Status_Code::STATUS_NOT_IMPLEMENTED; - - return this->type_; -} - -int -HTTP_Request::cgi (char *uri_string) -{ - this->cgi_ = 0; - this->cgi_env_ = 0; - this->cgi_args_ = 0; - - ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi (%s)\n", uri_string)); - - if (uri_string == 0 || ACE_OS::strlen (uri_string) == 0) - return 0; - - // There are 2 cases where a file could be a CGI script - // - // (1) the file has a CGI extension. - // (2) the file resides in a CGI bin directory. - - char *extra_path_info = 0; - if (this->cgi_in_path (uri_string, extra_path_info) - || this->cgi_in_extension (uri_string, extra_path_info)) - { - cgi_args_and_env (extra_path_info); - - if (extra_path_info) - { - this->path_info_ = ACE_OS::strdup (extra_path_info); - HTTP_Helper::HTTP_decode_string (this->path_info_); - *extra_path_info = '\0'; - } - } - - return this->cgi_; -} - -int -HTTP_Request::cgi_in_path (char *uri_string, char *&extra_path_info) -{ - char *cgi_path; - - ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi_in_path (%s)\n", - uri_string)); - - if (HTTP_Config::instance ()->cgi_path ()) - cgi_path = ACE_OS::strdup (HTTP_Config::instance ()->cgi_path ()); - else - cgi_path = ACE_OS::strdup (""); - - // error checking considered helpful! - if (cgi_path == 0) - return 0; - - char *lasts; - char *cgi_path_next = ACE_OS::strtok_r (cgi_path, ":", &lasts); - - if (cgi_path_next) - do - { - int len = ACE_OS::strlen (cgi_path_next); - - // match path to cgi path - int in_cgi_path = 0; - - if (*cgi_path_next == '/') - { - // cgi path next points to an ``absolute'' path - extra_path_info = uri_string; - in_cgi_path = - (ACE_OS::strncmp (extra_path_info, cgi_path_next, len) == 0); - } - else - { - // cgi path next points to a ``relative'' path - extra_path_info = ACE_OS::strstr (uri_string, cgi_path_next); - in_cgi_path = (extra_path_info != 0); - } - - if (in_cgi_path) - { - if (extra_path_info[len] == '/') - { - this->cgi_ = 1; - extra_path_info += len; - - // move past the executable name - do - extra_path_info++; - while (*extra_path_info != '/' - && *extra_path_info != '?' - && *extra_path_info != '\0'); - - if (*extra_path_info == '\0') - extra_path_info = 0; - - break; - } - } - extra_path_info = 0; - - cgi_path_next = ACE_OS::strtok_r (NULL, ":", &lasts); - } - while (cgi_path_next); - - ACE_OS::free (cgi_path); - - return this->cgi_; -} - -int -HTTP_Request::cgi_in_extension (char *uri_string, char *&extra_path_info) -{ - extra_path_info = ACE_OS::strstr (uri_string, ".cgi"); - - ACE_DEBUG ((LM_DEBUG, " (%t) HTTP_Request::cgi_in_extension (%s)\n", - uri_string)); - - while (extra_path_info != 0) - { - extra_path_info += 4; - // skip past ``.cgi'' - - switch (*extra_path_info) - { - case '\0': - extra_path_info = 0; - break; - case '/': - case '?': - break; - default: - extra_path_info = ACE_OS::strstr (extra_path_info, ".cgi"); - continue; - } - this->cgi_ = 1; - break; - } - - return this->cgi_; -} - -void -HTTP_Request::cgi_args_and_env (char *&extra_path_info) -{ - char *cgi_question = 0; - - if (extra_path_info) - cgi_question = ACE_OS::strchr (extra_path_info, '?'); - - if (extra_path_info == cgi_question) - extra_path_info = 0; - - if (cgi_question) - { - *cgi_question++ = '\0'; - - if (*cgi_question != '\0') - { - // We need the ``original'' QUERY_STRING for the - // environment. We will substitute '+'s for spaces in the - // other copy. - - this->query_string_ = ACE_OS::strdup (cgi_question); - - char *ptr = cgi_question; - int count = 0; - do - if (*ptr == '+') - *ptr = ' '; - else if (*ptr == '&' || *ptr == '=') - count++; - while (*++ptr); - - count++; - - if (ACE_OS::strchr (cgi_question, '=')) - { - ACE_NEW (this->cgi_env_, char *[count+1]); - - int i = 0; - ptr = cgi_question; - do - { - this->cgi_env_ [i++] = ptr; - - while (*ptr++) - if (*ptr == '&' || *ptr == '=') - *ptr = '\0'; - - HTTP_Helper::HTTP_decode_string (this->cgi_env_[i-1]); - } - while (i < count); - - this->cgi_env_[count] = 0; - } - else - { - this->cgi_args_ = cgi_question; - HTTP_Helper::HTTP_decode_string (cgi_question); - } - } - } -} - -const char * -HTTP_Request::path (const char *uri_string) -{ - char const *file_name = uri_string; - char buf[MAXPATHLEN + 1]; - buf[0] = '\0'; - - if (file_name == 0) return 0; - - if (*file_name == '/') - { - file_name++; - if (*file_name == '~') - { - char *ptr = buf; - - while (*++file_name && *file_name != '/') - *ptr++ = *file_name; - - *ptr = '\0'; - - if (ptr == buf) - ACE_OS::strcpy (buf, ACE_OS::getenv ("HOME")); - else - { -#if !defined (ACE_WIN32) && !defined (VXWORKS) - char pw_buf[BUFSIZ]; - struct passwd pw_struct; - if (ACE_OS::getpwnam_r (buf, &pw_struct, pw_buf, sizeof (pw_buf)) - == 0) - return 0; - ACE_OS::strcpy (buf, pw_struct.pw_dir); -#endif /* NOT ACE_WIN32 AND NOT VXWORKS */ - } - - ACE_OS::strcat (buf, "/"); - ACE_OS::strcat (buf, HTTP_Config::instance ()->user_dir ()); - ACE_OS::strcat (buf, file_name); - } - else - { - // With a starting '/' but no '~' - ACE_OS::strcat (buf, HTTP_Config::instance ()->document_root ()); - ACE_OS::strcat (buf, file_name - 1); - } - } - - if (*buf != '\0') - this->path_ = ACE_OS::strdup (buf); - - return this->path_; -} diff --git a/apps/JAWS/server/HTTP_Request.h b/apps/JAWS/server/HTTP_Request.h deleted file mode 100644 index 907926e70a4..00000000000 --- a/apps/JAWS/server/HTTP_Request.h +++ /dev/null @@ -1,195 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// HTTP_Request.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -#if !defined (HTTP_REQUEST_H) -#define HTTP_REQUEST_H - -class ACE_Message_Block; - -#include "ace/OS.h" -#include "Parse_Headers.h" - -class HTTP_Request - // = TITLE - // This parses the client request of an HTTP transaction. - // - // = DESCRIPTION -{ -public: - HTTP_Request (void); - // Default construction. - - ~HTTP_Request (void); - // Destructor. - - int parse_request (ACE_Message_Block &mb); - // parse an incoming request - - void parse_request_line (char *const request_line); - // the first line of a request is the request line, which is of the - // form: METHOD URI VERSION. - - int init (char *const buffer, - int buflen); - // Initialize the request object. This will parse the buffer and - // prepare for the accessors. - -public: - // = The Accessors. - - const char *method (void) const; - // HTTP request method - - const char *uri (void) const; - // HTTP request uri - - const char *version (void) const; - // HTTP request version - - const char *path (void) const; - // The HTTP request uri translated into a server filename path - - int cgi (void) const; - // TRUE of the request is a cgi request - - const char *cgi_args (void) const; - // The arguments to the cgi request - - const char **cgi_env (void) const; - // The environment variables passed to the CGI request - - const char *query_string (void) const; - // The cgi request query string - - const char *path_info (void) const; - // The cgi request path information - - int type (void) const; - // The type of the HTTP request - - const Headers &headers (void) const; - // The headers that were parsed from the request - - const char *header_strings (int index) const; - // Header strings stored - - const char *header_values (int index) const; - // Values associated with the header strings - - char *data (void); - // The buffer into which request data is read - - int data_length (void); - // The length of the request data - - int content_length (void); - // The length of incoming content if any - - int status (void); - // Current status of the incoming request - - const char *status_string (void); - // A string describing the state of the incoming request - - void dump (void); - // Dump the state of the request. - - enum - { - NO_TYPE = -1, - GET = 0, - HEAD, - POST, - PUT, - NUM_METHOD_STRINGS - }; - // Values for request type - - enum - { - DATE = 0, - PRAGMA, - AUTHORIZATION, - FROM, - IF_MODIFIED_SINCE, - REFERRER, - USER_AGENT, - ALLOW, - CONTENT_ENCODING, - CONTENT_LENGTH, - CONTENT_TYPE, - EXPIRES, - LAST_MODIFIED, - NUM_HEADER_STRINGS - }; - // Header strings - -private: - // = Private Accessors which can set values - const char *method (const char *method_string); - const char *uri (char *uri_string); - const char *version (const char *version_string); - const char *path (const char *uri_string); - - int cgi (char *uri_string); - // determine if the given URI is a CGI program. - - int cgi_in_path (char *uri_string, char *&extra_path_info); - // determine if the given URI resides in a cgi-bin directory - - int cgi_in_extension (char *uri_string, char *&extra_path_info); - // determine if the given URI contains a cgi extension - - void cgi_args_and_env (char *&extra_path_info); - // set the arguments and environment for the cgi program - - int type (const char *type_string); - -private: - int got_request_line (void) const; - -private: - int got_request_line_; - Headers headers_; - - char *method_; - char *uri_; - char *version_; - char *path_; - - int cgi_; - char **cgi_env_; - char *cgi_args_; - - char *query_string_; - char *path_info_; - - const char * const *const header_strings_; - static const char *const static_header_strings_[NUM_HEADER_STRINGS]; - - const char * const *const method_strings_; - static const char *const static_method_strings_[NUM_METHOD_STRINGS]; - - char *data_; - int datalen_; - int content_length_; - char *filename_; - int status_; - int type_; -}; - -#endif /* HTTP_REQUEST_H */ diff --git a/apps/JAWS/server/HTTP_Response.cpp b/apps/JAWS/server/HTTP_Response.cpp deleted file mode 100644 index b5f9b02fe83..00000000000 --- a/apps/JAWS/server/HTTP_Response.cpp +++ /dev/null @@ -1,360 +0,0 @@ -// $Id$ - -#include "ace/Process.h" -#include "ace/Mem_Map.h" - -#include "HTTP_Response.h" -#include "HTTP_Request.h" -#include "HTTP_Helpers.h" -#include "HTTP_Config.h" -#include "IO.h" - -static char * const EMPTY_HEADER = (char *)""; - -HTTP_Response::HTTP_Response (JAWS_IO &io, HTTP_Request &request) - : io_(io), request_(request) -{ -} - -HTTP_Response::HTTP_Response (HTTP_Request &request, JAWS_IO &io) - : io_(io), request_(request) -{ -} - -HTTP_Response::~HTTP_Response (void) -{ -#if defined (ACE_JAWS_BASELINE) - if (this->HTTP_HEADER != EMPTY_HEADER) - delete [] this->HTTP_HEADER; - // The [] is important. Without it, there was a huge memory leak! -#endif /* ACE_JAWS_BASELINE */ -} - -void -HTTP_Response::process_request(HTTP_Response &response) -{ - response.process_request(); -} - -void -HTTP_Response::process_request (void) -{ - ACE_DEBUG ((LM_DEBUG, " (%t) processing request: %s\n", - this->request_.status_string ())); - - switch (this->request_.status ()) - { - case HTTP_Status_Code::STATUS_OK : - - if (this->request_.cgi ()) - { - this->cgi_response (); - } - else - { - this->normal_response (); - } - - break; - - default: - this->error_response (this->request_.status (), - this->request_.status_string ()); - } -} - -void -HTTP_Response::error_response (int status_code, const char *log_message) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) [%s %s %s] %s\n", - this->request_.method () ? this->request_.method () : "-", - this->request_.uri () ? this->request_.uri () : "-", - this->request_.version() ? this->request_.version () : "-", - log_message ? log_message : "-")); - - static char const error_header1[] = - "%s %d %s\r\n" - "Server: JAWS/1.0prebeta\r\n" - "Content-type: text/html\r\n" - "Content-length: %d\r\n" - "\r\n" - "%s" - ; - - static char const error_header2[] = - "%s %d %s\r\n" - "Server: JAWS/1.0prebeta\r\n" - "WWW-Authenticate: Basic realm=\"JAWS_authorization\"\r\n" - "Content-type: text/html\r\n" - "Content-length: %d\r\n" - "\r\n" - "%s" - ; - - static char const error_message[] = - "<html>\n" - "<head><title>Server error message</title></head>\n" - "<body>\n" - "<h1>Error %d: %s</h1>\n" - "The request could not be completed because:\n %s\n" - "</body>\n" - "</html>\n" - ; - - - char *buf; - char buf1[4 * BUFSIZ]; - char buf2[BUFSIZ]; - - int length; - const char *error_header = error_header1; - - if (status_code == HTTP_Status_Code::STATUS_UNAUTHORIZED) - error_header = error_header2; - - length = - ACE_OS::sprintf (buf2, error_message, - status_code, HTTP_Status_Code::instance ()[status_code], - log_message); - - if (this->request_.version () == 0 - || ACE_OS::strcmp ("HTTP/0.9", this->request_.version ()) == 0) - buf = buf2; - else - { - length = - ACE_OS::sprintf (buf1, error_header, - this->request_.version(), status_code, - HTTP_Status_Code::instance ()[status_code], - length, - buf2); - buf = buf1; - } - - this->io_.send_error_message (buf, length); -} - -void -HTTP_Response::normal_response (void) -{ - const char *hv = 0;; - - ACE_DEBUG ((LM_DEBUG, " (%t) %s request for %s [%s], version %s\n", - request_.method (), request_.uri (), request_.path (), - (request_.version () ? request_.version () : "HTTP/0.9"))); - - switch (this->request_.type ()) - { - case HTTP_Request::GET : - - this->build_headers (); - this->io_.transmit_file (this->request_.path (), - this->HTTP_HEADER, - this->HTTP_HEADER_LENGTH, - this->HTTP_TRAILER, - this->HTTP_TRAILER_LENGTH); - break; - - case HTTP_Request::HEAD : - this->build_headers (); - this->io_.send_confirmation_message (this->HTTP_HEADER, - this->HTTP_HEADER_LENGTH); - break; - - case HTTP_Request::POST : - // What to do here? - // Standard says this is implementation dependent. - // Examples: annotations, page updates, etc. - // This may be a good place to stick CORBA stuff, - // and mobile code. - this->error_response (HTTP_Status_Code::STATUS_NOT_IMPLEMENTED, - "Requested method is not implemented."); - break; - - case HTTP_Request::PUT : - // Only commit to this if we can authenticate it - - // if there is no Authentication: header on the incoming request, - // deny it - hv = this->request_.headers ()["Authorization"].value (); - if (hv == 0 || *hv == '\0') - this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED, - "Unauthorized to use PUT method"); - else if (ACE_OS::strncmp (hv, "Basic ", 6) != 0) - // ``6'' is the length of the string "Basic " - this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED, - "Unknown authroization method"); - else - { - ACE_Mem_Map mmapfile; - const char *hvv = hv + 6; - // Skip past the string "Basic " - char *buf = new char [ACE_OS::strlen (hv)]; - char *auth - = HTTP_Helper::HTTP_decode_base64 (ACE_OS::strcpy (buf, hvv)); - - if (mmapfile.map ("jaws.auth") != -1 - && auth != 0 - && ACE_OS::strstr((const char *) mmapfile.addr (), auth) != 0) - this->io_.receive_file (this->request_.path (), - this->request_.data (), - this->request_.data_length (), - this->request_.content_length ()); - else - this->error_response (HTTP_Status_Code::STATUS_UNAUTHORIZED, - "Invalid authorization attempt"); - delete buf; - } - break; - - default : - this->error_response (HTTP_Status_Code::STATUS_NOT_IMPLEMENTED, - "Requested method is not implemented."); - } -} - - -void -HTTP_Response::cgi_response (void) -{ - ACE_Process_Options cgi_options; - - if (this->request_.cgi_args ()) - cgi_options.command_line ("%s %s", - this->request_.path (), - this->request_.cgi_args ()); - else - cgi_options.command_line ("%s", this->request_.path ()); - - // Build environment variables - cgi_options.setenv ("SERVER_SOFTWARE", "%s", "JAWS/1.0"); - cgi_options.setenv ("SERVER_NAME", "%s", "localhost"); - cgi_options.setenv ("GATEWAY_INTERFACE", "%s", "CGI/1.1"); - - cgi_options.setenv ("SERVER_PROTOCOL", "%s", - this->request_.version () - ? this->request_.version () - : "HTTP/0.9"); - cgi_options.setenv ("SERVER_PORT", "%d", 5432); - - cgi_options.setenv ("REQUEST_METHOD", "%s", this->request_.method ()); - - if (this->request_.path_info ()) - { - cgi_options.setenv ("PATH_INFO", "%s", - this->request_.path_info ()); - cgi_options.setenv ("PATH_TRANSLATED", - "%s/%s", - HTTP_Config::instance ()->document_root (), - this->request_.path_info ()); - } - - cgi_options.setenv ("SCRIPT_NAME", - "%s", - this->request_.uri ()); - - if (this->request_.query_string ()) - cgi_options.setenv ("QUERY_STRING", - "%s", - this->request_.query_string ()); - - if (this->request_.cgi_env ()) - for (size_t i = 0; this->request_.cgi_env ()[i]; i += 2) - cgi_options.setenv (this->request_.cgi_env ()[i], - "%s", - this->request_.cgi_env ()[i+1]); - - char buf[BUFSIZ]; - char *p, *q; - ACE_OS::strcpy (buf, "HTTP_"); - p = q = buf + ACE_OS::strlen (buf); - - for (size_t i = 0; i < HTTP_Request::NUM_HEADER_STRINGS; i++) - { - int j = 0; - - for (char c; (c = this->request_.header_strings (i)[j++]) != '\0'; ) - if (isalpha (c)) - *q++ = toupper (c); - else if (c == '-') - *q++ = '_'; - else - *q++ = c; - - *q = '\0'; - - const char *hv = this->request_.header_values (i); - - if (hv && *hv) - cgi_options.setenv (buf, "%s", hv); - q = p; - } - - cgi_options.set_handles (this->io_.handle (), - this->io_.handle (), - this->io_.handle ()); - - this->build_headers (); - this->io_.send_confirmation_message (this->HTTP_HEADER, - this->HTTP_HEADER_LENGTH); - // ACE::send (this->io_.handle (), - // this->HTTP_HEADER, this->HTTP_HEADER_LENGTH); - - // Exec the CGI program. - ACE_Process cgi_process; - cgi_process.spawn (cgi_options); - // cgi_process.wait (); -} - -void -HTTP_Response::build_headers (void) -{ - // At this point, we should really determine the type of request - // this is, and build the appropriate header. - - // Let's assume this is HTML for now. Unless the request is CGI, - // then do not include content-* headers. - - if (this->request_.version () == 0 - || ACE_OS::strcmp ("HTTP/0.9", this->request_.version ()) == 0) - { - HTTP_HEADER = (char *) EMPTY_HEADER; - HTTP_HEADER_LENGTH = 0; - } - else - { -#if defined (ACE_JAWS_BASELINE) - HTTP_HEADER = new char[BUFSIZ * 4]; - - // We assume that at this point everything is OK - HTTP_HEADER_LENGTH = - ACE_OS::sprintf (HTTP_HEADER, "%s", "HTTP/1.0 200 OK\r\n"); - - char date_ptr [40]; - // 40 bytes is the maximum length needed to store the date - - if (HTTP_Helper::HTTP_date (date_ptr) != 0) - HTTP_HEADER_LENGTH += - ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH, - "Date: %s\r\n", date_ptr); - - if (! this->request_.cgi ()) - HTTP_HEADER_LENGTH += - ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH, - "Content-type: %s\r\n\r\n", - "text/html"); -#else - if (! this->request_.cgi ()) - HTTP_HEADER = "HTTP/1.0 200 OK\r\n" - "Content-type: text/html\r\n\r\n"; - else - HTTP_HEADER = "HTTP/1.0 200 OK\r\n"; - - HTTP_HEADER_LENGTH = ACE_OS::strlen (HTTP_HEADER); - -#endif /* ACE_JAWS_BASELINE */ - } - - HTTP_TRAILER = ""; - HTTP_TRAILER_LENGTH = 0; -} diff --git a/apps/JAWS/server/HTTP_Response.h b/apps/JAWS/server/HTTP_Response.h deleted file mode 100644 index 0ddbf7268d1..00000000000 --- a/apps/JAWS/server/HTTP_Response.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// HTTP_Response.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -#if !defined (HTTP_RESPONSE_H) -#define HTTP_RESPONSE_H - -class JAWS_IO; -class HTTP_Request; - -class HTTP_Response - // = TITLE - // Abstraction for HTTP responses. - // - // = DESCRIPTION - // Provides an encapsulation of responses to HTTP requests. - // For instance, given an HTTP GET request, it will produce - // header and body suitable for returning to the client who made - // the request. -{ -public: - HTTP_Response (JAWS_IO &io, - HTTP_Request &request); - HTTP_Response (HTTP_Request &request, JAWS_IO &io); - ~HTTP_Response (void); - - void process_request (void); - // This is called by the handler to initiate a response. - - void error_response (int status, - const char *log_message); - // This returns an error response for cases where there is a problem - // with the request, logging the log_message. - -private: - - void normal_response (void); - // Called by process_request when the request is a normal request. - - void cgi_response (void); - // Called by process_request when the request is a cgi request. - -private: - - static void process_request (HTTP_Response &response); - // static version of process_request, just in case. - - void build_headers (void); - // creates the appropriate header information for responses. - -private: - JAWS_IO &io_; - HTTP_Request &request_; - // The IO and Request objects associated with this re - - char *HTTP_HEADER; - char *HTTP_TRAILER; - int HTTP_HEADER_LENGTH; - int HTTP_TRAILER_LENGTH; - // HTTP Headers and trailers. -}; - -#endif /* HTTP_RESPONSE_H */ diff --git a/apps/JAWS/server/HTTP_Server.cpp b/apps/JAWS/server/HTTP_Server.cpp deleted file mode 100644 index 50a2f9936b0..00000000000 --- a/apps/JAWS/server/HTTP_Server.cpp +++ /dev/null @@ -1,392 +0,0 @@ -// $Id$ - -#include "ace/Get_Opt.h" -#include "ace/Asynch_Acceptor.h" -#include "ace/LOCK_SOCK_Acceptor.h" -#include "ace/Proactor.h" - -#include "IO.h" -#include "HTTP_Server.h" - -// class is overkill -class JAWS -{ -public: - enum - { - POOL = 0, - PER_REQUEST = 1 - }; - - enum - { - SYNCH = 0, - ASYNCH = 2 - }; -}; - -void -HTTP_Server::parse_args (int argc, - char *argv[]) -{ - int c; - int thr_strategy = 0; - int io_strategy = 0; - const char *prog = argc > 0 ? argv[0] : "HTTP_Server"; - - // Set some defaults - this->port_ = 0; - this->threads_ = 0; - this->backlog_ = 0; - this->throttle_ = 0; - - ACE_Get_Opt get_opt (argc, argv, "p:n:t:i:b:"); - - while ((c = get_opt ()) != -1) - switch (c) - { - case 'p': - this->port_ = ACE_OS::atoi (get_opt.optarg); - break; - case 'n': - this->threads_ = ACE_OS::atoi (get_opt.optarg); - break; - case 't': - // POOL -> thread pool - // PER_REQUEST -> thread per request - // THROTTLE -> thread per request with throttling - if (ACE_OS::strcmp (get_opt.optarg, "POOL") == 0) - thr_strategy = JAWS::POOL; - else if (ACE_OS::strcmp (get_opt.optarg, "PER_REQUEST") == 0) - { - thr_strategy = JAWS::PER_REQUEST; - this->throttle_ = 0; - } - else if (ACE_OS::strcmp (get_opt.optarg, "THROTTLE") == 0) - { - thr_strategy = JAWS::PER_REQUEST; - this->throttle_ = 1; - } - break; - case 'f': - if (ACE_OS::strcmp (get_opt.optarg, "THR_BOUND") == 0) - { - // What happened here? - } - else if (ACE_OS::strcmp (get_opt.optarg, "THR_DAEMON") == 0) - { - } - else if (ACE_OS::strcmp (get_opt.optarg, "THR_DETACHED") == 0) - { - } - case 'i': - // SYNCH -> synchronous I/O - // ASYNCH -> asynchronous I/O - if (ACE_OS::strcmp (get_opt.optarg, "SYNCH") == 0) - io_strategy = JAWS::SYNCH; - else if (ACE_OS::strcmp (get_opt.optarg, "ASYNCH") == 0) - io_strategy = JAWS::ASYNCH; - break; - case 'b': - this->backlog_ = ACE_OS::atoi (get_opt.optarg); - break; - default: - break; - } - - // No magic numbers. - if (this->port_ <= 0) - this->port_ = 5432; - if (this->threads_ <= 0) - this->threads_ = 5; - // Don't use number of threads as default - if (this->backlog_ <= 0) - this->backlog_ = this->threads_; - - this->strategy_ = thr_strategy | io_strategy; - - ACE_UNUSED_ARG (prog); - ACE_DEBUG ((LM_DEBUG, - "in HTTP_Server::init, %s port = %d, number of threads = %d\n", - prog, this->port_, this->threads_)); -} - -int -HTTP_Server::init (int argc, char *argv[]) - // Document this function -{ - // Ignore signals generated when a connection is broken unexpectedly. - ACE_Sig_Action sig (ACE_SignalHandler (SIG_IGN), SIGPIPE); - ACE_UNUSED_ARG (sig); - - // Parse arguments which sets the initial state. - this->parse_args (argc, argv); - - // Choose what concurrency strategy to run. - switch (this->strategy_) - { - case (JAWS::POOL | JAWS::ASYNCH) : - return this->asynch_thread_pool (); - - case (JAWS::PER_REQUEST | JAWS::SYNCH) : - return this->thread_per_request (); - - case (JAWS::POOL | JAWS::SYNCH) : - default: - return this->synch_thread_pool (); - } - - ACE_NOTREACHED (return 0); -} - -int -HTTP_Server::fini (void) -{ - this->tm_.close (); - return 0; -} - - -int -HTTP_Server::synch_thread_pool (void) -{ - // Main thread opens the acceptor - if (this->acceptor_.open (ACE_INET_Addr (this->port_), 1, - PF_INET, this->backlog_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::open"), -1); - - // Create a pool of threads to handle incoming connections. - Synch_Thread_Pool_Task t (this->acceptor_, this->tm_, this->threads_); - - this->tm_.wait (); - return 0; -} - -Synch_Thread_Pool_Task::Synch_Thread_Pool_Task (HTTP_Acceptor &acceptor, - ACE_Thread_Manager &tm, - int threads) - : ACE_Task<ACE_NULL_SYNCH> (&tm), - acceptor_ (acceptor) -{ - if (this->activate (THR_DETACHED | THR_NEW_LWP, threads) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "Synch_Thread_Pool_Task::open")); -} - -int -Synch_Thread_Pool_Task::svc (void) -{ - // Creates a factory of HTTP_Handlers binding to synchronous I/O strategy - Synch_HTTP_Handler_Factory factory; - - for (;;) - { - ACE_SOCK_Stream stream; - - // Lock in this accept. When it returns, we have a connection. - if (this->acceptor_.accept (stream) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::accept"), -1); - - ACE_Message_Block *mb; - ACE_NEW_RETURN (mb, - ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1), - -1); - - // Create an HTTP Handler to handle this request - HTTP_Handler *handler = factory.create_http_handler (); - handler->open (stream.get_handle (), *mb); - // Handler is destroyed when the I/O puts the Handler into the - // done state. - - mb->release (); - ACE_DEBUG ((LM_DEBUG, - " (%t) in Synch_Thread_Pool_Task::svc, recycling\n")); - } - - ACE_NOTREACHED(return 0); -} - -int -HTTP_Server::thread_per_request (void) -{ - int grp_id = -1; - - // thread per request - // Main thread opens the acceptor - if (this->acceptor_.open (ACE_INET_Addr (this->port_), 1, - PF_INET, this->backlog_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::open"), -1); - - ACE_SOCK_Stream stream; - - // When we are throttling, this is the amount of time to wait before - // checking for runnability again. - const ACE_Time_Value wait_time (0, 10); - - for (;;) - { - if (this->acceptor_.accept (stream) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "HTTP_Acceptor::accept"), -1); - - Thread_Per_Request_Task *t; - // Pass grp_id as a constructor param instead of into open. - ACE_NEW_RETURN (t, Thread_Per_Request_Task (stream.get_handle (), - this->tm_, - grp_id), - -1); - - - if (t->open () != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", "Thread_Per_Request_Task::open"), - -1); - - // Throttling is not allowing too many threads to run away. - // Should really use some sort of condition variable here. - if (!this->throttle_) - continue; - - // This works because each task has only one thread. - while (this->tm_.num_tasks_in_group (grp_id) > this->threads_) - this->tm_.wait (&wait_time); - } - - ACE_NOTREACHED(return 0); -} - -Thread_Per_Request_Task::Thread_Per_Request_Task (ACE_HANDLE handle, - ACE_Thread_Manager &tm, - int &grp_id) - : ACE_Task<ACE_NULL_SYNCH> (&tm), - handle_ (handle), - grp_id_ (grp_id) -{ -} - - -// HEY! Add a method to the thread_manager to return total number of -// threads managed in all the tasks. - -int -Thread_Per_Request_Task::open (void *) -{ - int status = -1; - - if (this->grp_id_ == -1) - status = this->grp_id_ = this->activate (THR_DETACHED | THR_NEW_LWP); - else - status = this->activate (THR_DETACHED | THR_NEW_LWP, - 1, 0, -1, this->grp_id_, 0); - - if (status == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Thread_Per_Request_Task::open"), - -1); - return 0; -} - -int -Thread_Per_Request_Task::svc (void) -{ - ACE_Message_Block *mb; - ACE_NEW_RETURN (mb, ACE_Message_Block (HTTP_Handler::MAX_REQUEST_SIZE + 1), - -1); - Synch_HTTP_Handler_Factory factory; - HTTP_Handler *handler = factory.create_http_handler (); - handler->open (this->handle_, *mb); - mb->release (); - return 0; -} - -int -Thread_Per_Request_Task::close (u_long) -{ - ACE_DEBUG ((LM_DEBUG, - " (%t) Thread_Per_Request_Task::svc, dying\n")); - delete this; - return 0; -} - -// Understanding the code below requires understanding of the -// WindowsNT asynchronous completion notification mechanism and the -// Proactor Pattern. - -// (1) The application submits an asynchronous I/O request to the -// operating system and a special handle with it (Asynchronous -// Completion Token). -// (2) The operating system commits to performing the I/O request, -// while application does its own thing. -// (3) Operating system finishes the I/O request and places ACT onto -// the I/O Completion Port, which is a queue of finished -// asynchronous requests. -// (4) The application eventually checks to see if the I/O request -// is done by checking the I/O Completion Port, and retrieves the -// ACT. - -int -HTTP_Server::asynch_thread_pool (void) -{ -// This only works on Win32 -#if defined (ACE_WIN32) - // Create the appropriate acceptor for this concurrency strategy and - // an appropriate handler for this I/O strategy - ACE_Asynch_Acceptor<Asynch_HTTP_Handler_Factory> acceptor; - - // Tell the acceptor to listen on this->port_, which makes an - // asynchronous I/O request to the OS. - if (acceptor.open (ACE_INET_Addr (this->port_), - HTTP_Handler::MAX_REQUEST_SIZE + 1) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", - "ACE_Asynch_Acceptor::open"), -1); - - // Create the thread pool. - // Register threads with the proactor and thread manager. - Asynch_Thread_Pool_Task t (*ACE_Proactor::instance (), - this->tm_); - - // The proactor threads are waiting on the I/O Completion Port. - - // Wait for the threads to finish. - return this->tm_.wait (); -#endif /* ACE_WIN32 */ - return -1; -} - -// This only works on Win32 -#if defined (ACE_WIN32) - -Asynch_Thread_Pool_Task::Asynch_Thread_Pool_Task (ACE_Proactor &proactor, - ACE_Thread_Manager &tm) - : ACE_Task<ACE_NULL_SYNCH> (&tm), - proactor_ (proactor) -{ - if (this->activate () == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "Asynch_Thread_Pool_Task::open")); -} - -int -Asynch_Thread_Pool_Task::svc (void) -{ - for (;;) - if (this->proactor_.handle_events () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Proactor::handle_events"), - -1); - - return 0; -} - -#endif /* ACE_WIN32 */ - -// Define the factory function. -ACE_SVC_FACTORY_DEFINE (HTTP_Server) - -// Define the object that describes the service. -ACE_STATIC_SVC_DEFINE (HTTP_Server, "HTTP_Server", ACE_SVC_OBJ_T, - &ACE_SVC_NAME (HTTP_Server), - ACE_Service_Type::DELETE_THIS - | ACE_Service_Type::DELETE_OBJ, 0) - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/apps/JAWS/server/HTTP_Server.h b/apps/JAWS/server/HTTP_Server.h deleted file mode 100644 index d682ffbc88f..00000000000 --- a/apps/JAWS/server/HTTP_Server.h +++ /dev/null @@ -1,136 +0,0 @@ -// -*- C++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// HTTP_Server.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -#if !defined (HTTP_SERVER_H) -#define HTTP_SERVER_H - -#include "ace/Service_Object.h" -#include "ace/Thread_Manager.h" -#include "ace/Acceptor.h" -#include "ace/LOCK_SOCK_Acceptor.h" -#include "ace/Task_T.h" -#include "ace/Asynch_IO.h" -#include "HTTP_Handler.h" - -// Forward declaration. -class ACE_Proactor; - -#if defined (ACE_HAS_THREAD_SAFE_ACCEPT) -typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX> HTTP_SOCK_Acceptor; -#else -typedef ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX> HTTP_SOCK_Acceptor; -#endif /* ACE_HAS_THREAD_SAFE_ACCEPT */ - -typedef HTTP_SOCK_Acceptor HTTP_Acceptor; - -class HTTP_Server : public ACE_Service_Object - // = TITLE - // This server is used to create HTTP Handlers for the Web - // server - // - // = DESCRIPTION -{ -public: - virtual int init (int argc, char *argv[]); - // Initialization - - virtual int fini (void); - // Exit hooks - -protected: - virtual int thread_per_request (void); - // Thread Per Request implementation - - virtual int asynch_thread_pool (void); - // Asynch Thread Pool implementation - - virtual int synch_thread_pool (void); - // Synch Thread Pool implementation - -private: - // James, comment these data members. - void parse_args (int argc, char **argv); - int port_; - int threads_; - int strategy_; - int backlog_; - int throttle_; - ACE_Thread_Manager tm_; - HTTP_Acceptor acceptor_; -}; - -class Synch_Thread_Pool_Task : public ACE_Task<ACE_NULL_SYNCH> - // = TITLE - // Used to implement Synch Thread Pool - // - // = DESCRIPTION - // Describe this and the others below. -{ -public: - Synch_Thread_Pool_Task (HTTP_Acceptor &acceptor, - ACE_Thread_Manager &tm, - int threads); - virtual int svc (void); - -private: - HTTP_Acceptor &acceptor_; -}; - -class Thread_Per_Request_Task : public ACE_Task<ACE_NULL_SYNCH> - // = TITLE - // Used to implement Thread Per Request. - // - // = DESCRIPTION - // Spawns a new thread for every new incoming connection. The - // handle below is the socket stream of the incoming connection. -{ -public: - Thread_Per_Request_Task (ACE_HANDLE handle, - ACE_Thread_Manager &tm, - int &grp_id); - virtual int open (void *args = 0); - virtual int close (u_long); - virtual int svc (void); - -private: - ACE_HANDLE handle_; - int &grp_id_; -}; - -// This only works on Win32 -#if defined (ACE_WIN32) -class Asynch_Thread_Pool_Task : public ACE_Task<ACE_NULL_SYNCH> - // = TITLE - // Used to implement Asynch Thread Pool - // - // = DESCRIPTION - // The proactor below utilizes WaitForMultipleObjects. -{ -public: - Asynch_Thread_Pool_Task (ACE_Proactor &proactor, - ACE_Thread_Manager &tm); - virtual int svc (void); - -private: - ACE_Proactor &proactor_; -}; -#endif /* ACE_WIN32 */ - -ACE_STATIC_SVC_DECLARE (HTTP_Server) - -#endif /* HTTP_SERVER_H */ - - diff --git a/apps/JAWS/server/IO.cpp b/apps/JAWS/server/IO.cpp deleted file mode 100644 index c746b5507fb..00000000000 --- a/apps/JAWS/server/IO.cpp +++ /dev/null @@ -1,411 +0,0 @@ -// $Id$ - -#include "IO.h" -#include "HTTP_Helpers.h" -#include "ace/Message_Block.h" -#include "ace/SOCK_Stream.h" -#include "ace/Filecache.h" - -JAWS_IO::JAWS_IO (void) - : handle_ (ACE_INVALID_HANDLE), - handler_ (0) -{ -} - -JAWS_IO::~JAWS_IO (void) -{ -} - -ACE_HANDLE -JAWS_IO::handle (void) -{ - return this->handle_; -} - -void -JAWS_IO::handle (ACE_HANDLE handle) -{ - this->handle_ = handle; -} - -void -JAWS_IO::handler (JAWS_IO_Handler *handler) -{ - this->handler_ = handler; -} - -JAWS_Synch_IO::JAWS_Synch_IO (void) -{ -} - -JAWS_Synch_IO::~JAWS_Synch_IO (void) -{ - ACE_OS::closesocket (this->handle_); -} - -void -JAWS_Synch_IO::read (ACE_Message_Block &mb, - int size) -{ - ACE_SOCK_Stream stream; - stream.set_handle (this->handle_); - int result = stream.recv (mb.wr_ptr (), size); - - if (result <= 0) - this->handler_->read_error (); - else - { - mb.wr_ptr (result); - this->handler_->read_complete (mb); - } -} - -void -JAWS_Synch_IO::receive_file (const char *filename, - void *initial_data, - int initial_data_length, - int entire_length) -{ - ACE_Filecache_Handle handle (filename, entire_length); - - int result = handle.error (); - - if (result == ACE_Filecache_Handle::SUCCESS) - { - ACE_SOCK_Stream stream; - stream.set_handle (this->handle_); - - int bytes_to_memcpy = ACE_MIN (entire_length, initial_data_length); - ACE_OS::memcpy (handle.address (), initial_data, bytes_to_memcpy); - - int bytes_to_read = entire_length - bytes_to_memcpy; - - int bytes = stream.recv_n ((char *) handle.address () + initial_data_length, - bytes_to_read); - if (bytes == bytes_to_read) - this->handler_->receive_file_complete (); - else - result = -1; - } - - if (result != ACE_Filecache_Handle::SUCCESS) - this->handler_->receive_file_error (result); -} - -void -JAWS_Synch_IO::transmit_file (const char *filename, - const char *header, - int header_size, - const char *trailer, - int trailer_size) -{ - ACE_Filecache_Handle handle (filename); - - int result = handle.error (); - - if (result == ACE_Filecache_Handle::SUCCESS) - { -#if defined (ACE_JAWS_BASELINE) - ACE_SOCK_Stream stream; - stream.set_handle (this->handle_); - - if ((stream.send_n (header, header_size) == header_size) - && ((u_long) stream.send_n (handle.address (), handle.size ()) - == handle.size ()) - && (stream.send_n (trailer, trailer_size) == trailer_size)) - this->handler_->transmit_file_complete (); - else - result = -1; -#else - // Attempting to use writev - // Is this faster? - struct iovec iov[3]; - int iovcnt = 0; - if (header_size > 0) - { - iov[iovcnt].iov_base = (char *) header; - iov[iovcnt].iov_len = header_size; - iovcnt++; - } - if (handle.size () > 0) - { - iov[iovcnt].iov_base = (char *) handle.address (); - iov[iovcnt].iov_len = handle.size (); - iovcnt++; - } - if (trailer_size > 0) - { - iov[iovcnt].iov_base = (char *) trailer; - iov[iovcnt].iov_len = trailer_size; - iovcnt++; - } - if (ACE_OS::writev (this->handle_, iov, iovcnt) < 0) - result = -1; - else - this->handler_->transmit_file_complete (); -#endif /* ACE_JAWS_BASELINE */ - } - - if (result != ACE_Filecache_Handle::SUCCESS) - this->handler_->transmit_file_error (result); -} - -void -JAWS_Synch_IO::send_confirmation_message (const char *buffer, - int length) -{ - this->send_message (buffer, length); - this->handler_->confirmation_message_complete (); -} - -void -JAWS_Synch_IO::send_error_message (const char *buffer, - int length) -{ - this->send_message (buffer, length); - this->handler_->error_message_complete (); -} - -void -JAWS_Synch_IO::send_message (const char *buffer, - int length) -{ - ACE_SOCK_Stream stream; - stream.set_handle (this->handle_); - stream.send_n (buffer, length); -} - -// This only works on Win32 -#if defined (ACE_WIN32) - -JAWS_Asynch_IO::JAWS_Asynch_IO (void) -{ -} - -JAWS_Asynch_IO::~JAWS_Asynch_IO (void) -{ - ACE_OS::closesocket (this->handle_); -} - -void -JAWS_Asynch_IO::read (ACE_Message_Block& mb, - int size) -{ - ACE_Asynch_Read_Stream ar; - - if (ar.open (*this, this->handle_) == -1 - || ar.read (mb, size) == -1) - this->handler_->read_error (); -} - -// This method will be called when an asynchronous read completes on a -// stream. - -void -JAWS_Asynch_IO::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result) -{ - // This callback is for this->receive_file() - if (result.act () != 0) - { - int code = 0; - if (result.success () && result.bytes_transferred () != 0) - { - if (result.message_block ().length () == result.message_block ().size ()) - code = ACE_Filecache_Handle::SUCCESS; - else - { - ACE_Asynch_Read_Stream ar; - if (ar.open (*this, this->handle_) == -1 - || ar.read (result.message_block (), - result.message_block ().size () - result.message_block ().length (), - result.act ()) == -1) - code = -1; - else - return; - } - } - else - code = -1; - - if (code == ACE_Filecache_Handle::SUCCESS) - this->handler_->receive_file_complete (); - else - this->handler_->receive_file_error (code); - - delete &result.message_block (); - delete (ACE_Filecache_Handle *) result.act (); - } - else - { - // This callback is for this->read() - if (result.success () - && result.bytes_transferred () != 0) - this->handler_->read_complete (result.message_block ()); - else - this->handler_->read_error (); - } -} - -void -JAWS_Asynch_IO::receive_file (const char *filename, - void *initial_data, - int initial_data_length, - int entire_length) -{ - ACE_Message_Block *mb = 0; - ACE_Filecache_Handle *handle; - - ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, NOMAP)); - - int result = handle->error (); - - if (result == ACE_Filecache_Handle::SUCCESS) - { - ACE_OS::memcpy (handle->address (), - initial_data, - initial_data_length); - - int bytes_to_read = entire_length - initial_data_length; - - ACE_NEW (mb, ACE_Message_Block ((char *)handle->address () - + initial_data_length, bytes_to_read)); - - if (mb == 0) - { - errno = ENOMEM; - result = -1; - } - else - { - ACE_Asynch_Read_Stream ar; - - if (ar.open (*this, this->handle_) == -1 - || ar.read (*mb, mb->size () - mb->length (), handle) == -1) - result = -1; - } - } - - if (result != ACE_Filecache_Handle::SUCCESS) - { - this->handler_->receive_file_error (result); - delete mb; - delete handle; - } -} - -void -JAWS_Asynch_IO::transmit_file (const char *filename, - const char *header, - int header_size, - const char *trailer, - int trailer_size) -{ - ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0; - ACE_Filecache_Handle *handle = new ACE_Filecache_Handle (filename, NOMAP); - - int result = handle->error (); - - if (result == ACE_Filecache_Handle::SUCCESS) - { - ACE_Message_Block header_mb (header, header_size); - ACE_Message_Block trailer_mb (trailer, trailer_size); - - header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer - (&header_mb, header_size, &trailer_mb, trailer_size); - - ACE_Asynch_Transmit_File tf; - - if (tf.open (*this, this->handle_) == -1 - || tf.transmit_file (handle->handle (), // file handle - header_and_trailer, // header and trailer data - 0, // bytes_to_write - 0, // offset - 0, // offset_high - 0, // bytes_per_send - 0, // flags - handle // act - ) == -1) - result = -1; - } - - if (result != ACE_Filecache_Handle::SUCCESS) - { - this->handler_->transmit_file_error (result); - delete header_and_trailer; - delete handle; - } -} - - -// This method will be called when an asynchronous transmit file completes. -void -JAWS_Asynch_IO::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result) -{ - if (result.success ()) - this->handler_->transmit_file_complete (); - else - this->handler_->transmit_file_error (-1); - - delete result.header_and_trailer (); - delete (ACE_Filecache_Handle *) result.act (); -} - -void -JAWS_Asynch_IO::send_confirmation_message (const char *buffer, - int length) -{ - this->send_message (buffer, length, CONFORMATION); -} - -void -JAWS_Asynch_IO::send_error_message (const char *buffer, - int length) -{ - this->send_message (buffer, length, ERROR_MESSAGE); -} - -void -JAWS_Asynch_IO::send_message (const char *buffer, - int length, - int act) -{ - ACE_Message_Block *mb; - ACE_NEW (mb, ACE_Message_Block (buffer, length)); - - if (mb == 0) - { - this->handler_->error_message_complete (); - return; - } - - ACE_Asynch_Write_Stream aw; - if (aw.open (*this, this->handle_) == -1 - || aw.write (*mb, length, (void *) act) == -1) - { - mb->release (); - - if (act == CONFORMATION) - this->handler_->confirmation_message_complete (); - else - this->handler_->error_message_complete (); - } -} - -void -JAWS_Asynch_IO::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result) -{ - result.message_block ().release (); - - if (result.act () == (void *) CONFORMATION) - this->handler_->confirmation_message_complete (); - else - this->handler_->error_message_complete (); -} - -#endif /* ACE_WIN32 */ - -// #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -// template class ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX>; -// #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -// #pragma instantiate ACE_Singleton<JAWS_VFS, ACE_SYNCH_MUTEX> -// #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/apps/JAWS/server/IO.h b/apps/JAWS/server/IO.h deleted file mode 100644 index 5f14a1ed965..00000000000 --- a/apps/JAWS/server/IO.h +++ /dev/null @@ -1,218 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// IO.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -#if !defined (JAWS_IO_H) -#define JAWS_IO_H - -class ACE_Message_Block; -class JAWS_IO_Handler; - -#include "ace/ACE.h" -#include "ace/Asynch_IO.h" - -class JAWS_IO - // = TITLE - // - // This class defines the abstract interface for an I/O class in - // the context of Web-likes servers - // - // = DESCRIPTION - // - // An I/O class should have the following interface. Derived - // classes will define the exactly how the I/O will take place - // (Asynchronous, Synchronous, Reactive) -{ -public: - JAWS_IO (void); - virtual ~JAWS_IO (void); - void handler (JAWS_IO_Handler *handler); - void handle (ACE_HANDLE h); - ACE_HANDLE handle (void); - - // James, please add documentation here. - - virtual void read (ACE_Message_Block& mb, int size) = 0; - // read from the handle size bytes into the message block. - - virtual void transmit_file (const char *filename, - const char *header, - int header_size, - const char *trailer, - int trailer_size) = 0; - // send header, filename, trailer to the handle. - - virtual void receive_file (const char *filename, - void *initial_data, - int initial_data_length, - int entire_length) = 0; - // read data from the handle and store in filename. - - virtual void send_confirmation_message (const char *buffer, int length) = 0; - // send a confirmation message to the handle. - - virtual void send_error_message (const char *buffer, int length) = 0; - // send an error message to the handle. - -protected: - ACE_HANDLE handle_; - JAWS_IO_Handler *handler_; -}; - -class JAWS_IO_Handler - // = TITLE - // - // This class defines the abstract interface for an I/O handler class in - // the context of Web-likes servers - // - // = DESCRIPTION -{ -public: - virtual void read_complete (ACE_Message_Block &data) = 0; - // This method is called by the IO class when new client data shows - // up. - - virtual void read_error (void) = 0; - // This method is called by the IO class when there was an error in - // reading new data from the client. - - virtual void transmit_file_complete (void) = 0; - // This method is called by the IO class when the requested file has - // been successfully transmitted to the client. - - virtual void transmit_file_error (int result) = 0; - // This method is called by the IO class when there was an error in - // transmitting the requested file to the client. - - virtual void receive_file_complete (void) = 0; - // This method is called by the IO class when the requested file has - // been successfully received from the client. - - virtual void receive_file_error (int result) = 0; - // This method is called by the IO class when there was an error in - // receiving the requested file from the client. - - virtual void write_error (void) = 0; - // This method is called by the IO class when there was an error in - // writing data to the client. - - virtual void confirmation_message_complete (void) = 0; - // This method is called by the IO class when the confirmation - // message has been delivered to the client. - - virtual void error_message_complete (void) = 0; - // This method is called by the IO class when the error message has - // been delivered to the client. - -}; - -class JAWS_Synch_IO : public JAWS_IO - // = TITLE - // - // This class defines the interface for a Synchronous I/O class. - // - // = DESCRIPTION -{ -public: - JAWS_Synch_IO (void); - - ~JAWS_Synch_IO (void); - - void read (ACE_Message_Block& mb, int size); - - void transmit_file (const char *filename, - const char *header, - int header_size, - const char *trailer, - int trailer_size); - - void receive_file (const char *filename, - void *initial_data, - int initial_data_length, - int entire_length); - - void send_confirmation_message (const char *buffer, - int length); - - void send_error_message (const char *buffer, - int length); - -protected: - virtual void send_message (const char *buffer, - int length); -}; - -// This only works on Win32 -#if defined (ACE_WIN32) - -class JAWS_Asynch_IO : public JAWS_IO, public ACE_Handler - // = TITLE - // - // This class defines the interface for a Asynchronous I/O class. - // - // = DESCRIPTION -{ -public: - JAWS_Asynch_IO (void); - - ~JAWS_Asynch_IO (void); - - void read (ACE_Message_Block& mb, int size); - - void transmit_file (const char *filename, - const char *header, - int header_size, - const char *trailer, - int trailer_size); - - void receive_file (const char *filename, - void *initial_data, - int initial_data_length, - int entire_length); - - void send_confirmation_message (const char *buffer, - int length); - - void send_error_message (const char *buffer, - int length); - -protected: - enum Message_Types - { - CONFORMATION, - ERROR_MESSAGE - }; - - virtual void send_message (const char *buffer, - int length, - int act); - - virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result); - // This method will be called when an asynchronous read completes on - // a stream. - - virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result); - // This method will be called when an asynchronous write completes - // on a stream. - - virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result); - // This method will be called when an asynchronous transmit file - // completes. -}; - -#endif /* ACE_WIN32 */ -#endif /* JAWS_IO_H */ - diff --git a/apps/JAWS/server/JAWS_Concurrency.cpp b/apps/JAWS/server/JAWS_Concurrency.cpp deleted file mode 100644 index 3622f1b664f..00000000000 --- a/apps/JAWS/server/JAWS_Concurrency.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -#include "JAWS_Concurrency.h" - -JAWS_Concurrency_Base::JAWS_Concurrency_Base (void) -{ -} - -int -JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv) -{ - return this->putq (mb, tv); -} - -int -JAWS_Concurrency_Base::svc (void) -{ - int result = 0; - - for (;;) - { - ACE_Message_Block *mb; - - // At this point we could set a timeout value so that the - // threading strategy can delete a thread if there is nothing to - // do. Carefully think how to implement it so you don't leave - // yourself with 0 threads. - - result = this->getq (mb); - if (result == -1 || mb == 0) - break; - - this->put_next (mb); - } - return 0; -} - -JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void) -{ -} - -JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void) -{ -} - -JAWS_Dispatcher::JAWS_Dispatcher (JAWS_Dispatch_Policy *policy) - : policy_(policy) -{ -} - -JAWS_Thread_Pool_Task::JAWS_Thread_Pool_Task (long flags, - int nthreads, - int maxthreads) - : nthreads_ (nthreads), - maxthreads_ (maxthreads) -{ - if (this->activate (flags, nthreads) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate")); -} - -JAWS_Thread_Per_Task::JAWS_Thread_Per_Task (long flags, int maxthreads) - : flags_ (flags), - maxthreads_ (maxthreads) -{ -} - -int -JAWS_Thread_Per_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv) -{ - const int force_active = 1; - const int nthreads = 1; - - if (this->activate (this->flags_, nthreads, force_active) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"), - -1); - - this->putq (mb, tv); - - return 0; -} diff --git a/apps/JAWS/server/JAWS_Concurrency.h b/apps/JAWS/server/JAWS_Concurrency.h deleted file mode 100644 index b6f9efe6fbb..00000000000 --- a/apps/JAWS/server/JAWS_Concurrency.h +++ /dev/null @@ -1,96 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -#if !defined (JAWS_CONCURRENCY_H) -#define JAWS_CONCURRENCY_H - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "IO.h" - -class JAWS_Concurrency_Base : public ACE_Task<ACE_SYNCH> - // = TITLE - // Base class for different concurrency models - // - // = DESCRIPTION - // Provides a default implementaion of the virtual put() method - // which calls putq(), but can be overloaded to do something - // synchronously, such as call put_next(). - -{ -public: - JAWS_Concurrency_Base (void); - virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0); - virtual int svc (void); -}; - -class JAWS_Dispatch_Policy - // = TITLE - // Policy mechanism for choosing different concurrency models. - // - // = DESCRIPTION - // Given some (unspecified) state, decides what the concurrency - // model should be. (For now, we always return the same model.) -{ -public: - JAWS_Dispatch_Policy (void); - virtual ~JAWS_Dispatch_Policy (void); - virtual JAWS_Concurrency_Base * update (void *state = 0) = 0; -}; - -class JAWS_Dispatcher - // = TITLE - // The class that is responsible to delivering events to the - // appropriate concurrency mechanism. - // - // = DESCRIPTION - // JAWS_IO_Handler calls into the dispatcher so that the completed - // IO can find a thread to take care of it. -{ -public: - JAWS_Dispatcher (JAWS_Dispatch_Policy *policy); - - int dispatch (JAWS_IO_Handler *ioh); - -private: - JAWS_Dispatch_Policy *policy_; -}; - -class JAWS_Thread_Pool_Task : public JAWS_Concurrency_Base - // = TITLE - // Used to implement Thread Pool Concurrency Strategy - // - // = DESCRIPTION - // This task is created to hold a pool of threads that receive - // requests through the message queue. -{ -public: - JAWS_Thread_Pool_Task (long flags = THR_NEW_LWP, - int nthreads = 5, - int maxthreads = 20); - -private: - int nthreads_; - int maxthreads_; -}; - -class JAWS_Thread_Per_Task : public JAWS_Concurrency_Base - // = TITLE - // Used to implement Thread Per Request Concurrency Strategy - // - // = DESCRIPTION - // As each new message arrives from the queue, a new thread is - // spawned to handle it. This is done by overloading put to call - // activate. -{ -public: - JAWS_Thread_Per_Task (long flags = THR_NEW_LWP, int maxthreads = 20); - - virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0); - -private: - long flags_; - int maxthreads_; -}; - -#endif /* !defined (JAWS_CONCURRENCY_H) */ diff --git a/apps/JAWS/server/JAWS_Pipeline.cpp b/apps/JAWS/server/JAWS_Pipeline.cpp deleted file mode 100644 index 77fb54c6e48..00000000000 --- a/apps/JAWS/server/JAWS_Pipeline.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -#include "JAWS_Pipeline.h" - -JAWS_Pipeline::JAWS_Pipeline (void) -{ -} - -int -JAWS_Pipeline::open (void *) -{ - // Simply call into the virtual svc() method. - if (this->svc () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "JAWS_Pipeline::svc"), - -1); - return 0; -} - -int -JAWS_Pipeline::close (u_long) -{ - return 0; -} - -#include "JAWS_Pipeline_Handler.cpp" diff --git a/apps/JAWS/server/JAWS_Pipeline.h b/apps/JAWS/server/JAWS_Pipeline.h deleted file mode 100644 index 7867213076f..00000000000 --- a/apps/JAWS/server/JAWS_Pipeline.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -#if !defined (JAWS_PIPELINE_H) -#define JAWS_PIPELINE_H - -#include "ace/Synch.h" -#include "ace/Service_Config.h" -#include "ace/Stream.h" -#include "ace/Module.h" -#include "ace/Task.h" - -typedef ACE_Stream<ACE_NULL_SYNCH> JAWS_Pipeline_Stream; -typedef ACE_Module<ACE_NULL_SYNCH> JAWS_Pipeline_Module; -typedef ACE_Task<ACE_NULL_SYNCH> JAWS_Pipeline_Task; - -class JAWS_Pipeline : public JAWS_Pipeline_Task - // = TITLE - // Methods that are common to pipeline components -{ -public: - JAWS_Pipeline (void); - // ACE_Task hooks - - virtual int open (void * = 0); - virtual int close (u_long = 0); -}; - -#include "JAWS_Pipeline_Handler.h" - -#endif /* !defined (JAWS_PIPELINE_H) */ diff --git a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp b/apps/JAWS/server/JAWS_Pipeline_Handler.cpp deleted file mode 100644 index 630298b8fb5..00000000000 --- a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// $Id$ - -#if !defined (JAWS_PIPELINE_HANDLER_CPP) -#define JAWS_PIPELINE_HANDLER_CPP - -#include "JAWS_Pipeline_Handler.h" - -template <class TYPE> -JAWS_Pipeline_Handler<TYPE>::JAWS_Pipeline_Handler (void) -{ -} - -template <class TYPE> int -JAWS_Pipeline_Handler<TYPE>::put (ACE_Message_Block *mb, ACE_Time_Value *tv) -{ - TYPE *data = ACE_dynamic_cast (TYPE *, - mb->data_block ()); - - int status = this->handle_input (data, tv); - - return (status != -1) ? this->put_next (mb, tv) : -1; -} - -#endif /* !defined (JAWS_PIPELINE_HANDLER_CPP) */ diff --git a/apps/JAWS/server/JAWS_Pipeline_Handler.h b/apps/JAWS/server/JAWS_Pipeline_Handler.h deleted file mode 100644 index 784b44f8b7c..00000000000 --- a/apps/JAWS/server/JAWS_Pipeline_Handler.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -#if !defined (JAWS_PIPELINE_HANDLER_H) -#define JAWS_PIPELINE_HANDLER_H - -#include "JAWS_Pipeline.h" - -template <class TYPE> -class JAWS_Pipeline_Handler : public JAWS_Pipeline_Task - // = TITLE - // Methods that are common to pipeline components -{ -public: - JAWS_Pipeline_Handler (void); - // ACE_Task hooks - - virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0); - // inherited from ACE_Task - - virtual int handle_put (TYPE *data, ACE_Time_Value *tv) = 0; - // Callback hook for specialized data processing -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "JAWS_Pipeline_Handler.cpp" -#endif - -#endif /* !defined (JAWS_PIPELINE_HANDLER_H) */ diff --git a/apps/JAWS/server/Makefile b/apps/JAWS/server/Makefile deleted file mode 100644 index a6ab8f0e86f..00000000000 --- a/apps/JAWS/server/Makefile +++ /dev/null @@ -1,605 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the ACE Adapter Web Server (JAWS) -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = main - -LIB = libJAWS.a - -MYFILES = \ - HTTP_Server \ - HTTP_Config \ - HTTP_Handler \ - HTTP_Helpers \ - JAWS_Pipeline \ - JAWS_Concurrency \ - HTTP_Request \ - HTTP_Response \ - Parse_Headers \ - IO - -LSRC = $(addsuffix .cpp,$(MYFILES)) -LOBJ = $(addsuffix .o,$(MYFILES)) - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -LDLIBS = -lJAWS - -BUILD = $(VOBJS) $(VLIB) $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -# The contents of rules.bin.GNU are expanded in Local targets, below. -# include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -# include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -# Expand rules.bin.GNU, but without the $(VOBJS) dependencies. -VBIN = $(BIN:%=%$(VAR)) - -$(BIN): %: $(VDIR)%.o - $(LINK.cc) -o $@ $^ $(LDFLAGS) $(VLDLIBS) $(POSTLINK) -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/HTTP_Server.o .obj/HTTP_Server.so .shobj/HTTP_Server.o .shobj/HTTP_Server.so: HTTP_Server.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/Asynch_Acceptor.h \ - $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - IO.h HTTP_Server.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Acceptor.i \ - HTTP_Handler.h HTTP_Request.h Parse_Headers.h HTTP_Response.h -.obj/HTTP_Config.o .obj/HTTP_Config.so .shobj/HTTP_Config.o .shobj/HTTP_Config.so: HTTP_Config.cpp \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - HTTP_Config.h -.obj/HTTP_Handler.o .obj/HTTP_Handler.so .shobj/HTTP_Handler.o .shobj/HTTP_Handler.so: HTTP_Handler.cpp \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Filecache.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - HTTP_Handler.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - HTTP_Request.h Parse_Headers.h HTTP_Response.h IO.h HTTP_Helpers.h -.obj/HTTP_Helpers.o .obj/HTTP_Helpers.so .shobj/HTTP_Helpers.o .shobj/HTTP_Helpers.so: HTTP_Helpers.cpp HTTP_Helpers.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i -.obj/JAWS_Pipeline.o .obj/JAWS_Pipeline.so .shobj/JAWS_Pipeline.o .shobj/JAWS_Pipeline.so: JAWS_Pipeline.cpp JAWS_Pipeline.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Stream.h \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Stream.i \ - JAWS_Pipeline_Handler.h JAWS_Pipeline_Handler.cpp -.obj/JAWS_Concurrency.o .obj/JAWS_Concurrency.so .shobj/JAWS_Concurrency.o .shobj/JAWS_Concurrency.so: JAWS_Concurrency.cpp JAWS_Concurrency.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i IO.h \ - $(ACE_ROOT)/ace/Asynch_IO.h -.obj/HTTP_Request.o .obj/HTTP_Request.so .shobj/HTTP_Request.o .shobj/HTTP_Request.so: HTTP_Request.cpp \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - HTTP_Request.h Parse_Headers.h HTTP_Helpers.h HTTP_Config.h -.obj/HTTP_Response.o .obj/HTTP_Response.so .shobj/HTTP_Response.o .shobj/HTTP_Response.so: HTTP_Response.cpp \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Process.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - HTTP_Response.h HTTP_Request.h Parse_Headers.h HTTP_Helpers.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - HTTP_Config.h IO.h \ - $(ACE_ROOT)/ace/Asynch_IO.h -.obj/Parse_Headers.o .obj/Parse_Headers.so .shobj/Parse_Headers.o .shobj/Parse_Headers.so: Parse_Headers.cpp Parse_Headers.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i -.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp IO.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - HTTP_Helpers.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Filecache.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/apps/JAWS/server/Parse_Headers.cpp b/apps/JAWS/server/Parse_Headers.cpp deleted file mode 100644 index 2a103a081a0..00000000000 --- a/apps/JAWS/server/Parse_Headers.cpp +++ /dev/null @@ -1,355 +0,0 @@ -// $Id$ - -#include "Parse_Headers.h" - - -// Implementation of class Headers - -Headers::Headers (void) : done_(0) -{ -} - -Headers::~Headers (void) -{ -} - -void -Headers::recognize (const char * const header) -{ - (void)this->map_[header]; -} - -void -Headers::parse_header_line (char * const header_line) -{ - char *ptr = header_line; - char *buf = header_line; - int offset = 1; - - ptr = ACE_OS::strchr (header_line, '\n'); - - if (ptr > header_line && ptr[-1] == '\r') - { - ptr--; - offset++; - } - - if (ptr == header_line) - { - this->done_ = 1; - return; - } - - *ptr = '\0'; - ptr += offset; - - char *value; - char *header = ACE_OS::strtok_r (buf, ":", &value); - - ACE_DEBUG((LM_DEBUG, " (%t) Headers::parse_header_line [%s]\n", - header ? header : "<empty>")); - - if (header != NULL && this->map_.mapped (header)) - { - while (isspace (*value)) - value++; - - this->map_[header] = value; - - ACE_DEBUG((LM_DEBUG, " (%t) Headers::parse_header_line <%s>\n", - value ? value : "<empty>")); - } - - // Write back the unused portion of the input. - ACE_OS::memmove (header_line, ptr, strlen(ptr) + 1); -} - -int -Headers::complete_header_line (char *const header_line) -{ - // Algorithm -- - // Scan for end of line marker. - // If the next character is linear white space, then unfold the header. - // Else, if the next character is printable, we have a complete header line. - // Else, presumably the next character is '\0', so the header is incomplete. - - // return -1 if end of line but not complete header line - // return 0 if no end of line marker - // return 1 if complete header line - - char *ptr = header_line; - int offset; - - if (!this->end_of_line (ptr, offset)) - return 0; - - if (ptr == header_line) - { - ACE_OS::memmove (ptr, ptr+offset, ACE_OS::strlen (ptr + offset) + 1); - this->done_ = 1; - ACE_DEBUG ((LM_DEBUG, " (%t) no more headers\n")); - return 0; - } - - do - { - switch (ptr[offset]) - { - case ' ': - case '\t': - ACE_OS::memmove (ptr, ptr+offset, ACE_OS::strlen (ptr + offset) + 1); - break; - - case '\n': - case '\r': - return 1; - - default: - if (isalpha (ptr[offset])) - return 1; - else - return -1; - } - } - while (this->end_of_line (ptr, offset) != 0); - - return 0; -} - -int -Headers::end_of_headers (void) const -{ - return this->done_; -} - -Headers_Map_Item & -Headers::operator[] (const char * const header) -{ - return this->map_[header]; -} - -const Headers_Map_Item & -Headers::operator[] (const char * const header) const -{ - return this->map_[header]; -} - -int -Headers::end_of_line (char *&line, int &offset) const -{ - char *old_line = line; - char *ptr = ACE_OS::strchr (old_line, '\n'); - - if (ptr == NULL) - return 0; - - line = ptr; - offset = 1; - - if (line > old_line - && line[-1] == '\r') - { - line--; - offset = 2; - } - - return 1; -} - - -// Implementation of class Headers_Map - -Headers_Map::Headers_Map (void) - : num_headers_(0) -{ -} - -Headers_Map::~Headers_Map (void) -{ -} - -Headers_Map_Item::Headers_Map_Item (void) - : header_(0), - value_(0) -{ -} - -Headers_Map_Item::~Headers_Map_Item (void) -{ - ACE_OS::free ((void *) this->header_); - ACE_OS::free ((void *) this->value_); - this->header_ = this->value_ = 0; -} - -// Headers_Map_Item::operator const char * (void) const -// { -// return this->value_ == NULL ? this->no_value_ : this->value_; -// } - -Headers_Map_Item & -Headers_Map_Item::operator= (char * value) -{ - ACE_OS::free ((void *) this->value_); - this->value_ = ACE_OS::strdup (value); - return *this; -} - -Headers_Map_Item & -Headers_Map_Item::operator= (const char * value) -{ - ACE_OS::free ((void *) this->value_); - this->value_ = ACE_OS::strdup (value); - return *this; -} - -Headers_Map_Item & -Headers_Map_Item::operator= (const Headers_Map_Item & mi) -{ - ACE_OS::free ((void *) this->value_); - ACE_OS::free ((void *) this->header_); - this->header_ = ACE_OS::strdup (mi.header_); - this->value_ = (mi.value_ ? ACE_OS::strdup (mi.value_) : 0); - return *this; -} - -const char * -Headers_Map_Item::header (void) const -{ - return this->header_; -} - -const char * -Headers_Map_Item::value (void) const -{ - return this->value_; -} - -Headers_Map_Item & -Headers_Map::operator[] (const char * const header) -{ - Headers_Map_Item *item_ptr; - - item_ptr = this->find (header); - - if (item_ptr == NULL) - item_ptr = this->place (header); - - return *item_ptr; -} - -const Headers_Map_Item & -Headers_Map::operator[] (const char * const header) const -{ - Headers_Map_Item *item_ptr; - Headers_Map *mutable_this = (Headers_Map *)this; - - item_ptr = this->find (header); - - if (item_ptr == NULL) - item_ptr = mutable_this->place (header); - - return *item_ptr; -} - -int -Headers_Map::mapped (const char * const header) const -{ - int result = this->find (header) != NULL; - - return result; -} - -Headers_Map_Item * -Headers_Map::find (const char * const header) const -{ - Headers_Map *const mutable_this = (Headers_Map *) this; - - mutable_this->garbage_.header_ = header; -#if 0 - Headers_Map_Item *mi_ptr = (Headers_Map_Item *) - ::bsearch (&this->garbage_, - this->map_, - this->num_headers_, - sizeof (Headers_Map_Item), - Headers_Map::compare); -#else - int i = 0; - int j = this->num_headers_; - - while (i < j-1) - { - int k = (i+j)/2; - if (Headers_Map::compare (&this->garbage_, this->map_+k) < 0) - j = k; - else - i = k; - } - - Headers_Map_Item *mi_ptr = mutable_this->map_ + i; - if (Headers_Map::compare (&this->garbage_, mi_ptr) != 0) - mi_ptr = 0; -#endif - - mutable_this->garbage_.header_ = 0; - - return mi_ptr; -} - -Headers_Map_Item * -Headers_Map::place (const char *const header) -{ - this->garbage_.header_ = ACE_OS::strdup (header); - - int i = this->num_headers_++; - ACE_OS::free ((void *) this->map_[i].header_); - ACE_OS::free ((void *) this->map_[i].value_); - this->map_[i].header_ = 0; - this->map_[i].value_ = 0; - Headers_Map_Item temp_item; - - while (i > 0) - { - if (Headers_Map::compare (&this->garbage_, - &this->map_[i - 1]) > 0) - break; - - this->map_[i].header_ = this->map_[i - 1].header_; - this->map_[i].value_ = this->map_[i - 1].value_; - this->map_[i - 1].header_ = 0; - this->map_[i - 1].value_ = 0; - - i--; - } - - this->map_[i].header_ = this->garbage_.header_; - this->map_[i].value_ = this->garbage_.value_; - - this->garbage_.header_ = 0; - - return &this->map_[i]; -} - -int -Headers_Map::compare (const void *item1, - const void *item2) -{ - Headers_Map_Item *a, *b; - int result; - - a = (Headers_Map_Item *) item1; - b = (Headers_Map_Item *) item2; - - if (a->header_ == 0 || b->header_ == 0) - { - if (a->header_ == 0 && b->header_ == 0) - result = 0; - else if (a->header_ == 0) - result = 1; - else - result = -1; - } - else - result = ACE_OS::strcasecmp (a->header_, b->header_); - - return (result < 0) ? -1 : (result > 0); -} diff --git a/apps/JAWS/server/Parse_Headers.h b/apps/JAWS/server/Parse_Headers.h deleted file mode 100644 index 126243d4582..00000000000 --- a/apps/JAWS/server/Parse_Headers.h +++ /dev/null @@ -1,117 +0,0 @@ -/* -*- c++ -*- */ -// Hey, Emacs! This is a C++ file! -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// jaws -// -// = FILENAME -// Parse_Headers.h -// -// = AUTHOR -// James Hu -// -// ============================================================================ - -#if !defined (PARSE_HEADERS_H) -#define PARSE_HEADERS_H - -#include "ace/OS.h" - -class Headers_Map_Item -{ -friend class Headers_Map; -friend class Headers; - -private: - Headers_Map_Item (void); - ~Headers_Map_Item (void); - - // operator const char * (void) const; - Headers_Map_Item &operator= (char *); - Headers_Map_Item &operator= (const char *); - Headers_Map_Item &operator= (const Headers_Map_Item &); - -public: - const char *header (void) const; - const char *value (void) const; - -private: - const char *header_; - const char *value_; -}; - -class Headers_Map - // = TITLE - // Map textual headings to header values (e.g. "Subject:" maps to - // "Re: My left foot" -{ -public: - Headers_Map (void); - ~Headers_Map (void); - - Headers_Map_Item &operator[] (const char *const header); - const Headers_Map_Item &operator[] (const char *const header) const; - - enum - { - MAX_HEADERS = 100 - }; - - int mapped (const char *const header) const; - -private: - Headers_Map_Item *find (const char *const header) const; - Headers_Map_Item *place (const char *const header); - static int compare (const void *item1, const void *item2); - -private: - Headers_Map_Item map_[MAX_HEADERS]; - Headers_Map_Item garbage_; - - int num_headers_; -}; - -class Headers - // = TITLE - // A general mechanism to parse headers of Internet text headers. - // - // = DESCRIPTION - // Allow interesting headers to be inserted and later associated - // with values. This implementation assumes the parsing of headers - // will be done from ACE_Message_Blocks. -{ -public: - Headers (void); - ~Headers (void); - - void recognize (const char *const header); - - void parse_header_line (char *const header_line); - - int complete_header_line (char *const header_line); - // -1 -> end of line but not complete header line - // 0 -> no end of line marker - // 1 -> complete header line - - int end_of_headers (void) const; - - enum - { - MAX_HEADER_LINE_LENGTH = 8192 - }; - - Headers_Map_Item &operator[] (const char *const header); - const Headers_Map_Item &operator[] (const char *const header) const; - -private: - int end_of_line (char *&line, int &offset) const; - -private: - Headers_Map map_; - int done_; -}; - -#endif /* PARSE_HEADERS_H */ diff --git a/apps/JAWS/server/README b/apps/JAWS/server/README deleted file mode 100644 index 4fab66d703d..00000000000 --- a/apps/JAWS/server/README +++ /dev/null @@ -1,201 +0,0 @@ -# -*- text -*- -# Hey, Emacs! This is a TEXT file. - --------------------------- -README for the JAWS server --------------------------- - -This is the README file for the JAWS server. - -CONTENTS - -1. Compiling - a. UNIX - b. Windows NT 4.0 - -2. Executing - a. svc.conf parameters - b. General Info - -3. Limitations - -4. Acknowledgements - ------------- -1. Compiling ------------- - -1a. Compiling under UNIX. - - Assuming that the environment variable ACE_ROOT is set -correctly, and that you are using GNU make, compiling should simply -involve: - - $ cd $ACE_ROOT/apps/JAWS/server - $ make clean - $ make depend - $ make - -This will produce an executable named ``main''. - -1b. Compiling under Windows NT 4.0. - - Assuming you are using a recent version of Microsoft -Visual C++, you can use the jaws.mdp file located in -$ACE_ROOT/apps/JAWS/server to build JAWS. - - ------------- -2. Executing ------------- - -2a. svc.conf parameters. - - To run JAWS, simply execute "main". It loads the HTTP server -from the file named in the ``svc.conf'' file. The ``svc.conf'' file -itself contains documentation about the load line. It supports the -following command-line arguments: - - -p port Start JAWS on the specified port. - -n num_threads Use num_threads as the maximum number of threads. - -f thr_flag Can be used multiple times to set thread - creation flags: - THR_BOUND -> bound threads - THR_DAEMON -> daemonized threads - THR_DETACHED -> detached threads - THR_NEW_LWP -> increase concurrency level - -t thr_strategy Use one of the following strategies: - POOL -> thread pool - PER_REQUEST -> thread-per-request - THROTTLE -> thread-per-request with throttling - -i io_strategy Use one of the following strategies: - SYNCH -> synchronous I/O - ASYNCH -> asynchronous I/O - -b backlog Backlog value for listen (). - -2b. General Information - - By default, JAWS will used port 5432 with 5 threads and apply -the synchronous thread pool strategy. Unless set, the default backlog -value is equal the value of the maximum number of threads. - - JAWS also responds to several environment variables. This is -a temporary feature which will be replaced by a more general -configuration file similar to NCSA httpd's. The environment variables -are: - JAWS_DOCUMENT_ROOT - This is the starting point the server will use to look - for files. - Default value: the current directory of the server. - - JAWS_CGI_PATH - This is intended to be a ``:'' delimited list of paths - (similar to your regular PATH environment variable) which - describes the possible locations for CGI binaries. - Default value: Any directory named ``cgi-bin''. - - JAWS_USER_DIR - This is the name of the subdirectory in a users home - directory which contains publicly available WWW documents. - Default value: ``.www''. - - JAWS_DIR_INDEX - The name of the file which is sent, if present, when the URL - leads to a directory. - Default value: ``index.html''. - - You may test the server by executing telnet, opening a -connection to the server machine on the server port. For instance: - - $ telnet machinename 5432 - Trying ###.###.###.###... - Connected to machinename.your.domain - Escape character is '^]'. - GET /main.cpp - // main.cpp - //... - - Note that if you use an HTTP/1.0 get request, then you have -to hit return twice before the file will be sent. E.g., - - $ telnet machinename 5432 - Trying ###.###.###.###... - Connected to machinename.your.domain - Escape character is '^]'. - GET /main.cpp HTTP/1.0 - - // main.cpp - //... - - Where applicable, JAWS will perform ``~'' expansion for home -directories of usernames. - - ------------ -3. Features ------------ - -(a) JAWS supports full HTTP/1.0 responses. - -(b) JAWS support CGI scripts on UNIX. - -(c) JAWS parses request headers. The mechanism can be used to parse - headers from a variety of text based protocols (e.g., SNMP and - NNTP). - -(d) Optimized filecaching. - --------------- -4. Limitations --------------- - -The following are TODO items for JAWS: - -status|task -------+----------------------- - | (a) JAWS will support HTTP/1.1 eventually, including - | persistent connections. - | - | (b) JAWS can be more aggressive with its threading strategies, - | such as: - | (*) parallelize HTTP protocol processing, similar to - | PHTTPD. - | (*) prioritize threads to give more important requests - | more execution time. - | (*) apply throttling, similar to THTTPD. - | - | (c) JAWS will support a general protocol content filtering - | mechanism which will be used to replace the existing CGI - | support implementation. - | - -Questions, comments, corrections, suggestions are welcome. Please -feel free to send me any such correspondence. - -James Hu <jxh@cs.wustl.edu> - -------------------- -4. Acknowledgements -------------------- - - My partners in crime for this endeavor include: - - Eastman-Kodak, Rochester N.Y. - and Object Technologies, Inc. For providing funding for this - research. - - Dr. Douglas Schmidt For being my advisor, and - convincing my sponsors to fund - me. - - Irfan Pyarali For porting JAWS to NT, and - for designing and implementing - the JAWS IO mechanism. - - Sumedh Mungee For writing the benchmark - client, and performing the - UNIX benchmarks. - - Tim Harrison For his comments, advice, and - help in designing the IO - mechanism used by JAWS. diff --git a/apps/JAWS/server/jaws.auth b/apps/JAWS/server/jaws.auth deleted file mode 100644 index e3c51f7eac8..00000000000 --- a/apps/JAWS/server/jaws.auth +++ /dev/null @@ -1,2 +0,0 @@ -jxh:nonsense -bill:no nonsense diff --git a/apps/JAWS/server/jaws.dsp b/apps/JAWS/server/jaws.dsp deleted file mode 100644 index 8310537a29d..00000000000 --- a/apps/JAWS/server/jaws.dsp +++ /dev/null @@ -1,175 +0,0 @@ -# Microsoft Developer Studio Project File - Name="jaws" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=jaws - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "jaws.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "jaws.mak" CFG="jaws - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "jaws - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "jaws - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "ACE_NLOGGING" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /out:".\jaws-r.exe" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "jaws - Win32 Release"
-# Name "jaws - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\HTTP_Config.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Response.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\HTTP_Config.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Response.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_Server_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# Begin Source File
-
-SOURCE=.\HTTP_Server_T.cpp
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-# End Source File
-# End Target
-# End Project
diff --git a/apps/JAWS/server/jaws.dsw b/apps/JAWS/server/jaws.dsw deleted file mode 100644 index a05037c0982..00000000000 --- a/apps/JAWS/server/jaws.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "jaws"=.\jaws.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/server/jaws4.mak b/apps/JAWS/server/jaws4.mak deleted file mode 100644 index 4dcc5d9d72e..00000000000 --- a/apps/JAWS/server/jaws4.mak +++ /dev/null @@ -1,1051 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=jaws - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to jaws - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "jaws - Win32 Release" && "$(CFG)" != "jaws - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "jaws4.mak" CFG="jaws - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "jaws - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "jaws - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "jaws - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-OUTDIR=.
-INTDIR=.\Release
-
-ALL : "$(OUTDIR)\jaws-r.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\HTTP_Config.obj"
- -@erase "$(INTDIR)\HTTP_Handler.obj"
- -@erase "$(INTDIR)\HTTP_Helpers.obj"
- -@erase "$(INTDIR)\HTTP_Request.obj"
- -@erase "$(INTDIR)\HTTP_Response.obj"
- -@erase "$(INTDIR)\HTTP_Server.obj"
- -@erase "$(INTDIR)\IO.obj"
- -@erase "$(INTDIR)\main.obj"
- -@erase "$(INTDIR)\Parse_Headers.obj"
- -@erase "$(OUTDIR)\jaws-r.exe"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "ACE_NLOGGING" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D\
- "_CONSOLE" /D "ACE_NLOGGING" /Fp"$(INTDIR)/jaws4.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\Release/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/jaws4.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 wsock32.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"jaws-r.exe"
-LINK32_FLAGS=wsock32.lib ace.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no\
- /pdb:"$(OUTDIR)/jaws-r.pdb" /machine:I386 /out:"$(OUTDIR)/jaws-r.exe"
-LINK32_OBJS= \
- "$(INTDIR)\HTTP_Config.obj" \
- "$(INTDIR)\HTTP_Handler.obj" \
- "$(INTDIR)\HTTP_Helpers.obj" \
- "$(INTDIR)\HTTP_Request.obj" \
- "$(INTDIR)\HTTP_Response.obj" \
- "$(INTDIR)\HTTP_Server.obj" \
- "$(INTDIR)\IO.obj" \
- "$(INTDIR)\main.obj" \
- "$(INTDIR)\Parse_Headers.obj"
-
-"$(OUTDIR)\jaws-r.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-OUTDIR=.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\jaws4.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\HTTP_Config.obj"
- -@erase "$(INTDIR)\HTTP_Handler.obj"
- -@erase "$(INTDIR)\HTTP_Helpers.obj"
- -@erase "$(INTDIR)\HTTP_Request.obj"
- -@erase "$(INTDIR)\HTTP_Response.obj"
- -@erase "$(INTDIR)\HTTP_Server.obj"
- -@erase "$(INTDIR)\IO.obj"
- -@erase "$(INTDIR)\main.obj"
- -@erase "$(INTDIR)\Parse_Headers.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\jaws4.exe"
- -@erase "$(OUTDIR)\jaws4.ilk"
- -@erase "$(OUTDIR)\jaws4.pdb"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D\
- "_CONSOLE" /Fp"$(INTDIR)/jaws4.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/jaws4.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=wsock32.lib aced.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/jaws4.pdb" /debug /machine:I386 /out:"$(OUTDIR)/jaws4.exe"
-LINK32_OBJS= \
- "$(INTDIR)\HTTP_Config.obj" \
- "$(INTDIR)\HTTP_Handler.obj" \
- "$(INTDIR)\HTTP_Helpers.obj" \
- "$(INTDIR)\HTTP_Request.obj" \
- "$(INTDIR)\HTTP_Response.obj" \
- "$(INTDIR)\HTTP_Server.obj" \
- "$(INTDIR)\IO.obj" \
- "$(INTDIR)\main.obj" \
- "$(INTDIR)\Parse_Headers.obj"
-
-"$(OUTDIR)\jaws4.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "jaws - Win32 Release"
-# Name "jaws - Win32 Debug"
-
-!IF "$(CFG)" == "jaws - Win32 Release"
-
-!ELSEIF "$(CFG)" == "jaws - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=.\main.cpp
-DEP_CPP_MAIN_=\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\LOCK_SOCK_Acceptor.cpp"\
- "..\..\JAWS/server/HTTP_Handler.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/HTTP_Server.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\LOCK_SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Helpers.cpp
-DEP_CPP_HTTP_=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Helpers.obj" : $(SOURCE) $(DEP_CPP_HTTP_) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Handler.cpp
-DEP_CPP_HTTP_H=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Handler.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Handler.obj" : $(SOURCE) $(DEP_CPP_HTTP_H) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\IO.cpp
-DEP_CPP_IO_CP=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/IO.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Filecache.h"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\IO.obj" : $(SOURCE) $(DEP_CPP_IO_CP) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Request.cpp
-DEP_CPP_HTTP_R=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- ".\HTTP_Config.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Request.obj" : $(SOURCE) $(DEP_CPP_HTTP_R) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Server.cpp
-DEP_CPP_HTTP_S=\
- "..\..\..\ace\config-win32.h"\
- "..\..\..\ace\LOCK_SOCK_Acceptor.cpp"\
- "..\..\JAWS/server/HTTP_Handler.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/HTTP_Server.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Acceptor.h"\
- {$(INCLUDE)}"\ace\Acceptor.i"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Addr.h"\
- {$(INCLUDE)}"\ace\Addr.i"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.cpp"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.h"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Dynamic.h"\
- {$(INCLUDE)}"\ace\Dynamic.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\INET_Addr.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.h"\
- {$(INCLUDE)}"\ace\IPC_SAP.i"\
- {$(INCLUDE)}"\ace\LOCK_SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\Singleton.cpp"\
- {$(INCLUDE)}"\ace\Singleton.h"\
- {$(INCLUDE)}"\ace\Singleton.i"\
- {$(INCLUDE)}"\ace\SOCK.h"\
- {$(INCLUDE)}"\ace\SOCK.i"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_IO.h"\
- {$(INCLUDE)}"\ace\SOCK_IO.i"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.cpp"\
- {$(INCLUDE)}"\ace\Svc_Handler.h"\
- {$(INCLUDE)}"\ace\Svc_Handler.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Server.obj" : $(SOURCE) $(DEP_CPP_HTTP_S) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Config.cpp
-DEP_CPP_HTTP_C=\
- "..\..\..\ace\config-win32.h"\
- ".\HTTP_Config.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Config.obj" : $(SOURCE) $(DEP_CPP_HTTP_C) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\HTTP_Response.cpp
-DEP_CPP_HTTP_RE=\
- "..\..\..\ace\config-win32.h"\
- "..\..\JAWS/server/HTTP_Helpers.h"\
- "..\..\JAWS/server/HTTP_Request.h"\
- "..\..\JAWS/server/IO.h"\
- ".\HTTP_Config.h"\
- ".\HTTP_Response.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Process.h"\
- {$(INCLUDE)}"\ace\Process.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\HTTP_Response.obj" : $(SOURCE) $(DEP_CPP_HTTP_RE) "$(INTDIR)"
-
-
-# End Source File
-################################################################################
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-DEP_CPP_PARSE=\
- "..\..\..\ace\config-win32.h"\
- ".\Parse_Headers.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\Basic_Types.h"\
- {$(INCLUDE)}"\ace\Basic_Types.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\inc_user_config.h"\
- {$(INCLUDE)}"\ace\iosfwd.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\streams.h"\
- {$(INCLUDE)}"\ace\sys_conf.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-
-"$(INTDIR)\Parse_Headers.obj" : $(SOURCE) $(DEP_CPP_PARSE) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/apps/JAWS/server/jaws4.mdp b/apps/JAWS/server/jaws4.mdp Binary files differdeleted file mode 100644 index 8741fedb12c..00000000000 --- a/apps/JAWS/server/jaws4.mdp +++ /dev/null diff --git a/apps/JAWS/server/main.cpp b/apps/JAWS/server/main.cpp deleted file mode 100644 index 6ec6c36fe23..00000000000 --- a/apps/JAWS/server/main.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -#include "ace/Service_Config.h" -#include "ace/Reactor.h" -#include "ace/Filecache.h" - -#include "HTTP_Server.h" - -ACE_STATIC_SVC_REQUIRE(HTTP_Server) - -extern "C" -{ - - // call exit() so that static destructors get called -static void -handler (int) -{ - delete (ACE_Filecache *) ACE_Filecache::instance (); - ACE_OS::exit (0); -} - -} - -// This is the driver entry point into JAWS. It is possible to use -// JAWS as an ACE Service, as well. - -int -main (int argc, char *argv[]) -{ - ACE_Service_Config daemon; - - ACE_OS::signal (SIGCHLD, SIG_IGN); - - // SigAction not needed since the handler will shutdown the server. - ACE_OS::signal (SIGINT, (ACE_SignalHandler) handler); - ACE_OS::signal (SIGUSR2, (ACE_SignalHandler) handler); - - if (daemon.open (argc, argv) != 0) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), 1); - - // The configured service creates threads, and the - // server won't exit until the threads die. - - // Run forever, performing the configured services until we receive - // a SIGINT. - - - return 0; -} diff --git a/apps/JAWS/server/svc.conf b/apps/JAWS/server/svc.conf deleted file mode 100644 index a180ee1b383..00000000000 --- a/apps/JAWS/server/svc.conf +++ /dev/null @@ -1,37 +0,0 @@ -# -# -p port number -# -n threads in the server -# -f thread activation flags -# = THR_BOUND -# = THR_DAEMON -# = THR_DETACHED -# = THR_NEW_LWP -# -t threading strategy -# = POOL -> thread pool -# = PER_REQUEST -> thread per request -# = THROTTLE -> thread per request with throttling -# -i I/O strategy -# = SYNCH -# = ASYNCH -# -b backlog value for listen () -# -# -# Thread Pool, 20 unbound threads -# This is the baseline -static HTTP_Server "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP" -# -# -# Thread Pool, 40 threads -#static HTTP_Server "HTTP_Server -p 5432 -n 40 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP -f THR_BOUND" -# -# -# Thread-per-request, unlimited number of threads -#static HTTP_Server "HTTP_Server -p 5432 -i SYNCH -t PER_REQUEST -b 50 -f THR_NEW_LWP" -# -# -# Throttling, 40 threads -#static HTTP_Server "HTTP_Server -p 5432 -n 40 -i SYNCH -t THROTTLE -b 50 -f THR_NEW_LWP" -# -# -#dynamic HTTP_Server Service_Object * .shobj/HTTP_Server:jaws "HTTP_Server -p 5432 -s HTTP_Service" - diff --git a/apps/JAWS/server/test.cgi b/apps/JAWS/server/test.cgi deleted file mode 100755 index 936afcf0d3c..00000000000 --- a/apps/JAWS/server/test.cgi +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -echo Content-type: text/plain -echo - -echo args -- $* -env -echo Done! -exit 0 |