~ubuntu-branches/debian/sid/monopd/sid

« back to all changes in this revision

Viewing changes to src/listener.h

  • Committer: Package Import Robot
  • Author(s): Markus Koschany
  • Date: 2014-02-28 15:39:47 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20140228153947-1a5z05x3alj61wx1
Tags: 0.9.5-1
* Imported Upstream version 0.9.5.
  - Add support for IPv6 and systemd.
* Update watch file and point to the new upstream location
  at tuxfamily.org.
* Drop all patches. Merged upstream.
* debian/control:
  - Drop libcapsinetwork-dev from Build-Depends.
    Essential features of libcapsinetwork were merged into monopd and
    IPv6 support was added.
  - Add pkg-config to Build-Depends.
  - Add libsystemd-daemon-dev [linux-any] to Build-Depends.
  - Update homepage field and point to gtkatlantic.gradator.net.
* Add monopd.service and monopd.socket file and support systemd.
* Update monopd.6 man page.
* Use dh-systemd helper.
* Update debian/copyright. Add new BSD license.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (c) 2002-2004 Rob Kaper <rob@unixcode.org>. All rights reserved.
 
2
//
 
3
// Redistribution and use in source and binary forms, with or without
 
4
// modification, are permitted provided that the following conditions
 
5
// are met:
 
6
//
 
7
// 1. Redistributions of source code must retain the above copyright
 
8
//    notice, this list of conditions and the following disclaimer.
 
9
// 2. Redistributions in binary form must reproduce the above copyright
 
10
//    notice, this list of conditions and the following disclaimer in the
 
11
//    documentation and/or other materials provided with the distribution.
 
12
//
 
13
// THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS'' AND
 
14
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
15
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
16
// ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
 
17
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
18
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 
19
// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
20
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 
21
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 
22
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
23
// SUCH DAMAGE.
 
24
 
 
25
#ifndef LIBCAPSI_NETWORK_LISTENER_H
 
26
#define LIBCAPSI_NETWORK_LISTENER_H
 
27
 
 
28
#include <sys/types.h>
 
29
 
 
30
#include <string>
 
31
#include <vector>
 
32
 
 
33
class ListenPort;
 
34
class Socket;
 
35
 
 
36
#define LISTENQ 1024
 
37
 
 
38
class Listener
 
39
{
 
40
public:
 
41
        Listener();
 
42
        virtual ~Listener();
 
43
 
 
44
        Socket *findSocket(int fd);
 
45
 
 
46
        void checkActivity();
 
47
 
 
48
protected:
 
49
        /*
 
50
         * Add a listen port. Returns -1 on failure, 0 on success.
 
51
         *
 
52
         */
 
53
        int addListenPort(const int port);
 
54
        int addListenFd(const int fd);
 
55
        virtual void socketHandler( Socket *socket, const std::string &data = "" );
 
56
 
 
57
private:
 
58
        /*
 
59
         * May return 0 in case the accept failed.
 
60
         */
 
61
        Socket *newSocket(int fd);
 
62
        void delSocket(Socket *socket);
 
63
 
 
64
        fd_set m_fdset;
 
65
 
 
66
        std::vector<Socket *> m_sockets;
 
67
        std::vector<ListenPort *> m_listenPorts;
 
68
};
 
69
 
 
70
#endif