This file is indexed.

/usr/include/mailtransport/socket.h is in kdepimlibs5-dev 4:4.14.10-7+b2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
  Copyright (C) 2006-2007 KovoKs <info@kovoks.nl>

  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version.

  This library is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
  License for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; see the file COPYING.LIB.  If not, write to the
  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  02110-1301, USA.
*/

#ifndef MAILTRANSPORT_SOCKET_H
#define MAILTRANSPORT_SOCKET_H

#include <mailtransport/mailtransport_export.h>

#include <QtNetwork/QSslSocket>

namespace MailTransport {

class SocketPrivate;

/**
 * @class Socket
 * Responsible for communicating with the server, it's designed to work
 * with the ServerTest class.
 * @author Tom Albers <tomalbers@kde.nl>
 */
class MAILTRANSPORT_EXPORT Socket : public QObject
{
  Q_OBJECT

  public:

    /**
     * Contructor, it will not auto connect. Call reconnect() to connect to
     * the parameters given.
     * @param parent the parent
     */
    explicit Socket( QObject *parent );

    /**
     * Destructor
     */
    ~Socket();

    /**
     * Existing connection will be closed and a new connection will be
     * made
     */
    virtual void reconnect();

    /**
     * Write @p text to the socket
     */
    virtual void write( const QString &text );

    /**
     * @return true when the connection is live and kicking
     */
    virtual bool available();

    /**
     * set the protocol to use
     */
    void setProtocol( const QString &proto );

    /**
     * set the server to use
     */
    void setServer( const QString &server );

    /**
     * set the port to use. If not specified, it will use the default
     * belonging to the protocol.
     */
    void setPort( int port );

    /**
     * this will be a secure connection
     */
    void setSecure( bool what );

    /**
     * If you want to start TLS encryption, call this. For example after the starttls command.
     */
    void startTLS();

  private:
    Q_DECLARE_PRIVATE( Socket )
    SocketPrivate *const d;

    Q_PRIVATE_SLOT( d, void slotConnected() )
    Q_PRIVATE_SLOT( d, void slotStateChanged( QAbstractSocket::SocketState state ) )
    Q_PRIVATE_SLOT( d, void slotModeChanged( QSslSocket::SslMode  state ) )
    Q_PRIVATE_SLOT( d, void slotSocketRead() )
    Q_PRIVATE_SLOT( d, void slotSslErrors( const QList<QSslError> &errors ) )

  Q_SIGNALS:
    /**
     * emits the incoming data
     */
    void data( const QString & );

    /**
     * emitted when there is a connection (ready to send something).
     */
    void connected();

    /**
     * emitted when not connected.
     */
    void failed();

    /**
     * emitted when startShake() is completed.
     */
    void tlsDone();
};

} // namespace MailTransport

#endif // MAILTRANSPORT_SOCKET_H