(file) Return to HTTPAcceptor.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/HTTPAcceptor.cpp between version 1.13 and 1.17

version 1.13, 2002/03/30 00:02:02 version 1.17, 2002/05/22 05:25:30
Line 30 
Line 30 
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #include "Config.h" #include "Config.h"
   #include "Constants.h"
 #include <iostream> #include <iostream>
 #include "Socket.h" #include "Socket.h"
  
Line 83 
Line 84 
 //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
  
 HTTPAcceptor::HTTPAcceptor(Monitor* monitor, MessageQueueService* outputMessageQueue) HTTPAcceptor::HTTPAcceptor(Monitor* monitor, MessageQueueService* outputMessageQueue)
    : Base("HTTPAcceptor", MessageQueue::getNextQueueId()),     : Base(PEGASUS_QUEUENAME_HTTPACCEPTOR),
      _monitor(monitor), _outputMessageQueue(outputMessageQueue),      _monitor(monitor), _outputMessageQueue(outputMessageQueue),
      _rep(0), _sslcontext(NULL)      _rep(0), _sslcontext(NULL)
 { {
Line 93 
Line 94 
  
 HTTPAcceptor::HTTPAcceptor(Monitor* monitor, MessageQueueService* outputMessageQueue, HTTPAcceptor::HTTPAcceptor(Monitor* monitor, MessageQueueService* outputMessageQueue,
                            SSLContext * sslcontext)                            SSLContext * sslcontext)
    :       Base("HTTPAcceptor", MessageQueue::getNextQueueId()),     :       Base(PEGASUS_QUEUENAME_HTTPACCEPTOR),
            _monitor(monitor), _outputMessageQueue(outputMessageQueue), _rep(0),             _monitor(monitor), _outputMessageQueue(outputMessageQueue),
              _rep(0),
            _sslcontext(sslcontext)            _sslcontext(sslcontext)
 { {
    Socket::initializeInterface();    Socket::initializeInterface();
Line 146 
Line 148 
             {             {
                _monitor->unsolicitSocketMessages(socket);                _monitor->unsolicitSocketMessages(socket);
                _rep->connections.remove(i);                _rep->connections.remove(i);
                  while (connection->refcount.value()) { }
                delete connection;                delete connection;
                break;                break;
             }             }
Line 172 
Line 175 
  
 } }
  
 const char* HTTPAcceptor::getQueueName() const  
 {  
    return "HTTPAcceptor";  
 }  
   
 void HTTPAcceptor::bind(Uint32 portNumber) void HTTPAcceptor::bind(Uint32 portNumber)
 { {
    if (_rep)    if (_rep)
Line 273 
Line 271 
    if (!_monitor->solicitSocketMessages(    if (!_monitor->solicitSocketMessages(
           _rep->socket,           _rep->socket,
           SocketMessage::READ | SocketMessage::EXCEPTION,           SocketMessage::READ | SocketMessage::EXCEPTION,
           getQueueId()))            getQueueId(),
             Monitor::ACCEPTOR))
    {    {
       Socket::close(_rep->socket);       Socket::close(_rep->socket);
       delete _rep;       delete _rep;
Line 350 
Line 349 
  
       // Destroy the connection (causing it to close):       // Destroy the connection (causing it to close):
  
         while (connection->refcount.value()) { }
       delete connection;       delete connection;
    }    }
  
Line 375 
Line 375 
    int n = sizeof(address);    int n = sizeof(address);
 #endif #endif
  
 #if defined(PEGASUS_PLATFORM_LINUX_IX86_GNU) || defined(PEGASUS_PLATFORM_LINUX_IA64_GNU)  #if defined(PEGASUS_PLATFORM_LINUX_IX86_GNU) || defined(PEGASUS_PLATFORM_LINUX_GENERIC_GNU)
    Sint32 socket = accept(    Sint32 socket = accept(
       _rep->socket, (struct sockaddr*)&address, (socklen_t *)&n);       _rep->socket, (struct sockaddr*)&address, (socklen_t *)&n);
 #else #else
Line 401 
Line 401 
    }    }
  
    HTTPConnection* connection = new HTTPConnection(    HTTPConnection* connection = new HTTPConnection(
       _monitor, mp_socket, this, static_cast<MessageQueueService *>(_outputMessageQueue));        _monitor, mp_socket, this, static_cast<MessageQueue *>(_outputMessageQueue));
  
    // Solicit events on this new connection's socket:    // Solicit events on this new connection's socket:
  
    if (!_monitor->solicitSocketMessages(    if (!_monitor->solicitSocketMessages(
           socket,           socket,
           SocketMessage::READ | SocketMessage::EXCEPTION,           SocketMessage::READ | SocketMessage::EXCEPTION,
           connection->getQueueId()))            connection->getQueueId(), Monitor::CONNECTION))
    {    {
       delete connection;       delete connection;
       Socket::close(socket);       Socket::close(socket);


Legend:
Removed from v.1.13  
changed lines
  Added in v.1.17

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2