This file is indexed.

/usr/include/sofia-sip-1.12/sofia-sip/nth.h is in libsofia-sip-ua-dev 1.12.11+20110422.1-2ubuntu1.

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
/*
 * This file is part of the Sofia-SIP package
 *
 * Copyright (C) 2005 Nokia Corporation.
 *
 * Contact: Pekka Pessi <pekka.pessi@nokia.com>
 *
 * 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., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 *
 */

/**@file sofia-sip/nth.h
 * @brief Transaction API for HTTP
 *
 * @author Pekka Pessi <Pekka.Pessi@nokia.com>.
 *
 * @date Created: Wed Jun  5 19:25:18 2002 ppessi
 */

/* ----------------------------------------------------------------------
 * 1) Types
 */

#ifndef NTH_H_TYPES
#define NTH_H_TYPES

/** NTH engine */
typedef struct nth_engine_s   nth_engine_t;
/** NTH client request */
typedef struct nth_client_s   nth_client_t;

/** NTH (virtual) hosts or site(s) */
typedef struct nth_site_s   nth_site_t;
/** Server transaction  */
typedef struct nth_request_s nth_request_t;

#ifndef NTH_CLIENT_MAGIC_T
/** Default type of application context for client NTH requests.
 * Application may define this to appropriate type before including
 * <sofia-sip/nth.h>. */
#define NTH_CLIENT_MAGIC_T struct nth_client_magic_s
#endif

/** Application context for client requests */
typedef NTH_CLIENT_MAGIC_T  nth_client_magic_t;

#ifndef NTH_SITE_MAGIC_T
/** Default type of application context for NTH servers.
 * Application may define this to appropriate type before including
 * <sofia-sip/nth.h>. */
#define NTH_SITE_MAGIC_T struct nth_site_magic_s
#endif

/** Application context for NTH servers */
typedef NTH_SITE_MAGIC_T   nth_site_magic_t;

#endif

#ifndef NTH_H
/** Defined when <sofia-sip/nth.h> has been included. */
#define NTH_H

/* ----------------------------------------------------------------------
 * 2) Constants
 */

/** Version number */
#define NTH_VERSION "1.0"

#define NTH_CLIENT_VERSION NTH_VERSION
#define NTH_SERVER_VERSION NTH_VERSION

/* ----------------------------------------------------------------------
 * 3) Other include files
 */

#include <sofia-sip/su_wait.h>
#include <sofia-sip/su_tag.h>
#include <sofia-sip/http.h>
#include <sofia-sip/http_status.h>

#ifndef NTH_TAG_H
#include <sofia-sip/nth_tag.h>
#endif

/* ----------------------------------------------------------------------
 * 3) Engine prototypes
 */

SOFIA_BEGIN_DECLS

NTH_DLL char const *nth_engine_version(void);

NTH_DLL nth_engine_t *nth_engine_create(su_root_t *root,
					tag_type_t tag, tag_value_t value, ...);
NTH_DLL void nth_engine_destroy(nth_engine_t *engine);

NTH_DLL int nth_engine_set_params(nth_engine_t *engine,
				  tag_type_t tag, tag_value_t value, ...);
NTH_DLL int nth_engine_get_params(nth_engine_t const *engine,
				  tag_type_t tag, tag_value_t value, ...);
NTH_DLL int nth_engine_get_stats(nth_engine_t const *engine,
				 tag_type_t tag, tag_value_t value, ...);

NTH_DLL msg_t *nth_engine_msg_create(nth_engine_t *he, int flags);

/* ----------------------------------------------------------------------
 * 4) Prototypes for client transactions
 */
typedef int nth_response_f(nth_client_magic_t *magic,
			   nth_client_t *request,
			   http_t const *http);

NTH_DLL nth_client_t *nth_client_tcreate(nth_engine_t *engine,
					 nth_response_f *callback,
					 nth_client_magic_t *magic,
					 http_method_t method,
					 char const *method_name,
					 url_string_t const *request_uri,
					 tag_type_t tag, tag_value_t value,
					 ...);

NTH_DLL int nth_client_status(nth_client_t const *clnt);
NTH_DLL http_method_t nth_client_method(nth_client_t const *cnlt);
NTH_DLL int nth_client_is_streaming(nth_client_t const *hc);

NTH_DLL url_t const *nth_client_url(nth_client_t const *clnt);

NTH_DLL msg_t *nth_client_request(nth_client_t *clnt);
NTH_DLL msg_t *nth_client_response(nth_client_t const *clnt);
NTH_DLL void nth_client_destroy(nth_client_t *clnt);

/* ----------------------------------------------------------------------
 * 5) Server side prototypes
 */

typedef int nth_request_f(nth_site_magic_t *lmagic,
			  nth_site_t *server,
			  nth_request_t *req,
			  http_t const *http,
			  char const *path);

char const *nth_site_server_version(void);

NTH_DLL nth_site_t *nth_site_create(nth_site_t *parent,
				    nth_request_f *req_callback,
				    nth_site_magic_t *magic,
				    url_string_t const *address,
				    tag_type_t tag, tag_value_t value,
				    ...);

NTH_DLL void nth_site_destroy(nth_site_t *site);

NTH_DLL nth_site_magic_t *nth_site_magic(nth_site_t const *site);

NTH_DLL void nth_site_bind(nth_site_t *site,
			   nth_request_f *callback,
			   nth_site_magic_t *);

NTH_DLL su_time_t nth_site_access_time(nth_site_t const *site);

NTH_DLL int nth_site_set_params(nth_site_t *site,
				tag_type_t tag, tag_value_t value, ...);
NTH_DLL int nth_site_get_params(nth_site_t const *site,
				tag_type_t tag, tag_value_t value, ...);
NTH_DLL int nth_site_get_stats(nth_site_t const *site,
			       tag_type_t tag, tag_value_t value, ...);

NTH_DLL url_t const *nth_site_url(nth_site_t const *site);

/* ----------------------------------------------------------------------
 * 6) Prototypes for server transactions
 */

NTH_DLL int nth_request_status(nth_request_t const *req);
NTH_DLL http_method_t nth_request_method(nth_request_t const *req);
NTH_DLL msg_t *nth_request_message(nth_request_t *req);

NTH_DLL int nth_request_treply(nth_request_t *ireq,
			       int status, char const *phrase,
			       tag_type_t tag, tag_value_t value, ...);

NTH_DLL void nth_request_destroy(nth_request_t *req);

NTH_DLL struct auth_status_t *nth_request_auth(nth_request_t const *req);

SOFIA_END_DECLS

#endif