This file is indexed.

/usr/include/GNUstep/Frameworks/Pantomime.framework/Versions/1.2/CWSMTP.h is in libpantomime1.2-dev 1.2.2+dfsg1-1build1.

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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
/*
**  CWSMTP.h
**
**  Copyright (c) 2001-2006
**
**  Author: Ludovic Marcotte <ludovic@Sophos.ca>
**
**  This library is free software; you can redistribute it and/or
**  modify it under the terms of the GNU Lesser General Public
**  License as published by the Free Software Foundation; either
**  version 2.1 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
**  Lesser General Public License for more details.
**  
**  You should have received a copy of the GNU Lesser General Public
**  License along with this library; if not, write to the Free Software
**  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

#ifndef _Pantomime_H_CWSMTP
#define _Pantomime_H_CWSMTP

#include <Pantomime/CWService.h>
#include <Pantomime/CWTransport.h>

#import <Foundation/NSArray.h>
#import <Foundation/NSData.h>
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>

/*!
  @const PantomimeTransactionInitiationCompleted
*/
extern NSString* PantomimeTransactionInitiationCompleted;

/*!
  @const PantomimeTransactionInitiationFailed
*/
extern NSString* PantomimeTransactionInitiationFailed;

/*!
  @const PantomimeRecipientIdentificationCompleted
*/
extern NSString* PantomimeRecipientIdentificationCompleted;

/*!
  @const PantomimeRecipientIdentificationFailed
*/
extern NSString* PantomimeRecipientIdentificationFailed;

/*!
  @const PantomimeTransactionResetCompleted
*/
extern NSString* PantomimeTransactionResetCompleted;

/*!
  @const PantomimeTransactionResetFailed
*/
extern NSString* PantomimeTransactionResetFailed;


@class CWMessage;

/*!
  @category NSObject (SMTPClient)
  @discussion This informal protocol defines methods that can implemented in
              SMTP's delegate to control the behavior of the class 
	      or to obtain status information.
*/
@interface NSObject (SMTPClient)

/*!
  @method transactionInitiationCompleted:
  @discussion This method is automatically invoked on the delegate
              after the SMTP MAIL FROM command has completed. The userInfo's
	      part of the notification contains the message that has
	      been sent. The key to obtain it is "Message".
	      A PantomimeTransactionInitiationCompleted notification is also posted.
  @param theNotification The notification holding the information.
*/
- (void) transactionInitiationCompleted: (NSNotification *) theNotification;

/*!
  @method transactionInitiationFailed:
  @discussion This method is automatically invoked on the delegate
              after the SMTP MAIL FROM command has failed. The userInfo's
	      part of the notification contains the message that has
	      not been sent. The key to obtain it is "Message".
	      A PantomimeTransactionInitiatioFailed notification is also posted.
  @param theNotification The notification holding the information.
*/
- (void) transactionInitiationFailed: (NSNotification *) theNotification;

/*!
  @method recipientIdentificationCompleted:
  @discussion This method is automatically invoked on the delegate
              after the SMTP RCPT TO command has completed. The userInfo's
	      part of the notification contains the recipients (CWInternetAddress
	      instances) that were sucessfully sent. The key to obtain it is "Recipients".
	      A PantomimeRecipientIdentificationCompleted notification is also posted.
 @param theNotification The notification holding the information.
*/
- (void) recipientIdentificationCompleted: (NSNotification *) theNotification;

/*!
  @method recipientIdentificationFailed:
  @discussion This method is automatically invoked on the delegate
              after the SMTP RCPT TO command has failed. The userInfo's
	      part of the notification contains the recipient (CWInternetAddress
	      instance) that was not sucessfully sent. The key to obtain it is "Recipient".
	      A PantomimeRecipientIdentificationFailed notification is also posted.
 @param theNotification The notification holding the information.
*/
- (void) recipientIdentificationFailed: (NSNotification *) theNotification;

/*!
  @method transactionResetCompleted:
  @discussion This method is automatically invoked on the delegate
              after the SMTP RSET command has completed.
	      A PantomimeTransactionResetCompleted notification is
	      also posted.
  @param theNotification The notification holding the information.
*/
- (void) transactionResetCompleted: (NSNotification *) theNotification;

/*!
  @method transactionResetFailed:
  @discussion This method is automatically invoked on the delegate
              after the SMTP RSET command has completed and failed.
	      This should never really happen but this method could
	      be invoked, if the SMTP server isnt RFC-strict.
	      A PantomimeTransactionResetFailed notification is
	      also posted.
  @param theNotification The notification holding the information.
*/
- (void) transactionResetFailed: (NSNotification *) theNotification;

@end

/*!
  @typedef SMTPCommand
  @abstract Supported SMTP commands.
  @discussion This enum lists the supported SMTP commands available
              in Pantomime's SMTP client code.
  @constant SMTP_AUTH_CRAM_MD5 CRAM-MD5 authentication.
  @constant SMTP_AUTH_LOGIN LOGIN authentication.
  @constant SMTP_AUTH_LOGIN_CHALLENGE Challenge during the LOGIN authentication.
  @constant SMTP_AUTH_PLAIN PLAIN authentication.
  @constant SMTP_DATA The DATA SMTP command - see 4.1.1.4 DATA (DATA) of RFC 2821.
  @constant SMTP_EHLO The EHLO SMTP command - see 4.1.1.1  Extended HELLO (EHLO) or HELLO (HELO) of RFC 2821.
  @constant SMTP_HELO The HELO SMTP command - see 4.1.1.1  Extended HELLO (EHLO) or HELLO (HELO) of RFC 2821.
  @constant SMTP_MAIL The MAIL SMTP command - see 4.1.1.2 MAIL (MAIL) of RFC 2821.
  @constant SMTP_NOOP The NOOP SMTP command - see 4.1.1.9 NOOP (NOOP) of RFC 2821.
  @constant SMTP_QUIT The QUIT SMTP command - see 4.1.1.10 QUIT (QUIT) of RFC 2821.
  @constant SMTP_RCPT The RCPT SMTP command - see 4.1.1.3 RECIPIENT (RCPT) of RFC 2821.
  @constant SMTP_RSET The RSET SMTP command - see 4.1.1.5 RESET (RSET) of RFC 2821.
  @constant SMTP_STARTTLS The STARTTLS SMTP command - see RFC2487.
  @constant SMTP_AUTHORIZATION Special command to know we are in the autorization state.
  @constant SMTP_EMPTY_QUEUE Special command to empty the command queue.
*/
typedef enum {
  SMTP_AUTH_CRAM_MD5 = 0x1000,
  SMTP_AUTH_LOGIN,
  SMTP_AUTH_LOGIN_CHALLENGE,
  SMTP_AUTH_PLAIN,
  SMTP_DATA,
  SMTP_EHLO,
  SMTP_HELO,
  SMTP_MAIL,
  SMTP_NOOP,
  SMTP_QUIT,
  SMTP_RCPT,
  SMTP_RSET,
  SMTP_STARTTLS,
  SMTP_AUTHORIZATION,
  SMTP_EMPTY_QUEUE,
} SMTPCommand;

/*!
  @class CWSMTP
  @abstract Pantomime SMTP client code.
  @discussion This class, which extends the CWService class and implements
              the CWTransport protocol, is Pantomime's SMTP client code.
*/
@interface CWSMTP : CWService <CWTransport>
{
  @private
    NSMutableArray *_sent_recipients;
    NSMutableArray *_recipients;
    CWMessage *_message;
    NSData *_data;
    
    unsigned int _max_size;
    BOOL _redirected;
}

/*!
  @method lastResponse
  @discussion This method is used to obtain the last response
              received from the SMTP server. If the server
	      sent a multi-line response, only the last line
	      will be returned.
  @result The last response in its complete form, nil if no
          response was read.
*/
- (NSData *) lastResponse;

/*!
  @method lastResponseCode
  @discussion This method is used to obtain the last response code
              received from the SMTP server. If the server
	      sent a multi-line response, only the code of the
	      last line will be returned.
  @result The last response code in its complete form, 0 if
          no response was read.         
*/
- (int) lastResponseCode;

/*!
  @method reset
  @discussion This method is used to send the RSET SMTP command.
              See 4.1.1.5 RESET (RSET) of RFC 2821 for a full description
	      of this command. It will NOT reset to nil the previously
	      used recipients, message or message data. If you wish
	      to change either of them, call the corresponding
	      accessor method between your -sendMessage calls.
*/
- (void) reset;

/*!
  @method sendCommand: arguments: ...
  @discussion This method is used to send commands to the SMTP server.
              Normally, you should not call this method directly.
  @param theCommand The SMTP command to send.
  @param theFormat The format defining the variable arguments list.
*/
- (void) sendCommand: (SMTPCommand) theCommand  arguments: (NSString *) theFormat, ...;

@end

#endif // _Pantomime_H_CWSMTP