This file is indexed.

/usr/include/openobex/obex_const.h is in libopenobex1-dev 1.5-2.1.

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
/**
	\file openobex/obex_const.h
	OpenOBEX library - Free implementation of the Object Exchange protocol.

	Copyright (C) 1999-2000  Dag Brattli <dagb@cs.uit.no>
	Copyright (C) 1999-2000  Pontus Fuchs <pontus.fuchs@tactel.se>
	Copyright (C) 2001-2002  Jean Tourrilhes <jt@hpl.hp.com>
	Copyright (C) 2002-2006  Marcel Holtmann <marcel@holtmann.org>
	Copyright (C) 2002-2008  Christian W. Zuckschwerdt <zany@triq.net>
	Copyright (C) 2002  Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
	Copyright (C) 2005  Herton Ronaldo Krzesinski <herton@conectiva.com.br>
	Copyright (C) 2005-2008  Alex Kanavin <ak@sensi.org>
	Copyright (C) 2006  Johan Hedberg <johan.hedberg@nokia.com>
	Copyright (C) 2007-2008  Hendrik Sattler <post@hendrik-sattler.de>

	OpenOBEX 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 program 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 OpenOBEX. If not, see <http://www.gnu.org/>.
 */

#ifndef __OBEX_CONST_H
#define __OBEX_CONST_H

#ifdef __cplusplus
extern "C" {
#endif

#include <inttypes.h>

typedef union {
	uint32_t bq4;
	uint8_t bq1;
	const uint8_t *bs;
} obex_headerdata_t;

typedef struct {
	int (*connect)(obex_t *handle, void * customdata);
	int (*disconnect)(obex_t *handle, void * customdata);
	int (*listen)(obex_t *handle, void * customdata);
	int (*write)(obex_t *handle, void * customdata, uint8_t *buf, int buflen);
	int (*handleinput)(obex_t *handle, void * customdata, int timeout);
	void * customdata;
} obex_ctrans_t;

/** USB-specific OBEX interface information */
typedef struct {
	/** Manufacturer, e.g. Nokia */
	char *manufacturer;
	/** Product, e.g. Nokia 6680 */
	char *product;
	/** Product serial number */
	char *serial;
	/** USB device configuration description */
	char *configuration;
	/** Control interface description */
	char *control_interface;
	/** Idle data interface description, typically empty */
	char *data_interface_idle;
	/** Active data interface description, typically empty */
	char *data_interface_active;
	/** Internal information for the transport layer in the library */
	struct obex_usb_intf_transport_t *intf;
} obex_usb_intf_t;

/** Generic OBEX interface information */
typedef union {
	/** USB-specific OBEX interface information */
	obex_usb_intf_t usb;
	//obex_bluetooth_intf_t bt; // to be added
} obex_interface_t;

#define OBEX_MODE_CLIENT	0
#define OBEX_MODE_SERVER	1

/* compatibility definitions */
#define OBEX_CLIENT OBEX_MODE_CLIENT
#define OBEX_SERVER OBEX_MODE_SERVER

/* Possible events */
#define OBEX_EV_PROGRESS	0	/* Progress has been made */
#define OBEX_EV_REQHINT		1	/* An incoming request is about to come */
#define OBEX_EV_REQ		2	/* An incoming request has arrived */
#define OBEX_EV_REQDONE		3	/* Request has finished */
#define OBEX_EV_LINKERR		4	/* Link has been disconnected */
#define OBEX_EV_PARSEERR	5	/* Malformed data encountered */
#define OBEX_EV_ACCEPTHINT	6	/* Connection accepted */
#define OBEX_EV_ABORT		7	/* Request was aborted */
#define OBEX_EV_STREAMEMPTY	8	/* Need to feed more data when sending a stream */
#define OBEX_EV_STREAMAVAIL	9	/* Time to pick up data when receiving a stream */
#define OBEX_EV_UNEXPECTED	10	/* Unexpected data, not fatal */
#define OBEX_EV_REQCHECK	11	/* First packet of an incoming request has been parsed */

/* For OBEX_Init() */
#define OBEX_FL_KEEPSERVER	0x02	/* Keep the server alive */
#define OBEX_FL_FILTERHINT	0x04	/* Filter devices based on hint bit */
#define OBEX_FL_FILTERIAS	0x08	/* Filter devices based on IAS entry */

/* For OBEX_ObjectAddHeader */
#define OBEX_FL_FIT_ONE_PACKET	0x01	/* This header must fit in one packet */
#define OBEX_FL_STREAM_START	0x02	/* Start of streaming body */
#define OBEX_FL_STREAM_DATA	0x04	/* Body-stream data */
#define OBEX_FL_STREAM_DATAEND	0x08	/* Body stream last data */
#define OBEX_FL_SUSPEND		0x10	/* Suspend after sending this header */

/* Transports */
#define OBEX_TRANS_IRDA		1
#define OBEX_TRANS_INET		2
#define OBEX_TRANS_CUST		3	/* Fixme: This will go away in future */
#define OBEX_TRANS_CUSTOM	3
#define OBEX_TRANS_BLUETOOTH	4
#define OBEX_TRANS_FD		5
#define OBEX_TRANS_USB		6

/* Standard headers */
#define OBEX_HDR_TYPE_UNICODE	(0 << 6)  /* zero terminated unicode string (network byte order) */
#define OBEX_HDR_TYPE_BYTES	(1 << 6)  /* byte array */
#define OBEX_HDR_TYPE_UINT8	(2 << 6)  /* 8bit unsigned integer */
#define OBEX_HDR_TYPE_UINT32	(3 << 6)  /* 32bit unsigned integer */
#define OBEX_HDR_TYPE_MASK	0xc0

#define OBEX_HDR_ID_COUNT	 0x00	/* Number of objects (used by connect) */
#define OBEX_HDR_ID_NAME	 0x01	/* Name of the object */
#define OBEX_HDR_ID_TYPE	 0x02	/* Type of the object */
#define OBEX_HDR_ID_LENGTH	 0x03	/* Total length of object */
#define OBEX_HDR_ID_TIME	 0x04	/* Last modification time of (ISO8601) */
#define OBEX_HDR_ID_DESCRIPTION	 0x05	/* Description of object */
#define OBEX_HDR_ID_TARGET	 0x06	/* Identifies the target for the object */
#define OBEX_HDR_ID_HTTP	 0x07	/* An HTTP 1.x header */
#define OBEX_HDR_ID_BODY	 0x08	/* Data part of the object */
#define OBEX_HDR_ID_BODY_END	 0x09	/* Last data part of the object */
#define OBEX_HDR_ID_WHO		 0x0a	/* Identifies the sender of the object */
#define OBEX_HDR_ID_CONNECTION	 0x0b	/* Connection identifier */
#define OBEX_HDR_ID_APPARAM	 0x0c	/* Application parameters */
#define OBEX_HDR_ID_AUTHCHAL	 0x0d	/* Authentication challenge */
#define OBEX_HDR_ID_AUTHRESP	 0x0e	/* Authentication response */
#define OBEX_HDR_ID_CREATOR	 0x0f	/* indicates the creator of an object */
#define OBEX_HDR_ID_WANUUID	 0x10	/* uniquely identifies the network client (OBEX server) */
#define OBEX_HDR_ID_OBJECTCLASS	 0x11	/* OBEX Object class of object */
#define OBEX_HDR_ID_SESSIONPARAM 0x12	/* Parameters used in session commands/responses */
#define OBEX_HDR_ID_SESSIONSEQ	 0x13	/* Sequence number used in each OBEX packet for reliability */
#define OBEX_HDR_ID_MASK	 0x3f

#define OBEX_HDR_EMPTY		0x00	/* Empty header (buggy OBEX servers) */
#define OBEX_HDR_COUNT		(OBEX_HDR_ID_COUNT        | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_NAME		(OBEX_HDR_ID_NAME         | OBEX_HDR_TYPE_UNICODE)
#define OBEX_HDR_TYPE		(OBEX_HDR_ID_TYPE         | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_LENGTH		(OBEX_HDR_ID_LENGTH       | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_TIME		(OBEX_HDR_ID_TIME         | OBEX_HDR_TYPE_BYTES  ) /* Format: ISO 8601 */
#define OBEX_HDR_TIME2		(OBEX_HDR_ID_TIME         | OBEX_HDR_TYPE_UINT32 ) /* Deprecated use HDR_TIME instead */
#define OBEX_HDR_DESCRIPTION	(OBEX_HDR_ID_DESCRIPTION  | OBEX_HDR_TYPE_UNICODE)
#define OBEX_HDR_TARGET		(OBEX_HDR_ID_TARGET       | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_HTTP		(OBEX_HDR_ID_HTTP         | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_BODY		(OBEX_HDR_ID_BODY         | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_BODY_END	(OBEX_HDR_ID_BODY_END     | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_WHO		(OBEX_HDR_ID_WHO          | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_CONNECTION	(OBEX_HDR_ID_CONNECTION   | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_APPARAM	(OBEX_HDR_ID_APPARAM      | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_AUTHCHAL	(OBEX_HDR_ID_AUTHCHAL     | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_AUTHRESP	(OBEX_HDR_ID_AUTHRESP     | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_CREATOR	(OBEX_HDR_ID_CREATOR      | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_WANUUID	(OBEX_HDR_ID_WANUUID      | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_OBJECTCLASS	(OBEX_HDR_ID_OBJECTCLASS  | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_SESSIONPARAM	(OBEX_HDR_ID_SESSIONPARAM | OBEX_HDR_TYPE_BYTES  )
#define OBEX_HDR_SESSIONSEQ	(OBEX_HDR_ID_SESSIONSEQ   | OBEX_HDR_TYPE_UINT8  )

/* Commands */
#define OBEX_CMD_CONNECT	0x00
#define OBEX_CMD_DISCONNECT	0x01
#define OBEX_CMD_PUT		0x02
#define OBEX_CMD_GET		0x03
#define OBEX_CMD_SETPATH	0x05
#define OBEX_CMD_SESSION	0x07 /* used for reliable session support */
#define OBEX_CMD_ABORT		0x7f
#define OBEX_FINAL		0x80

/* Responses */
#define	OBEX_RSP_CONTINUE		0x10
#define OBEX_RSP_SWITCH_PRO		0x11
#define OBEX_RSP_SUCCESS		0x20
#define OBEX_RSP_CREATED		0x21
#define OBEX_RSP_ACCEPTED		0x22
#define OBEX_RSP_NON_AUTHORITATIVE	0x23
#define OBEX_RSP_NO_CONTENT		0x24
#define OBEX_RSP_RESET_CONTENT		0x25
#define OBEX_RSP_PARTIAL_CONTENT        0x26
#define OBEX_RSP_MULTIPLE_CHOICES	0x30
#define OBEX_RSP_MOVED_PERMANENTLY	0x31
#define OBEX_RSP_MOVED_TEMPORARILY	0x32
#define OBEX_RSP_SEE_OTHER		0x33
#define OBEX_RSP_NOT_MODIFIED		0x34
#define OBEX_RSP_USE_PROXY		0x35
#define OBEX_RSP_BAD_REQUEST		0x40
#define OBEX_RSP_UNAUTHORIZED		0x41
#define OBEX_RSP_PAYMENT_REQUIRED	0x42
#define OBEX_RSP_FORBIDDEN		0x43
#define OBEX_RSP_NOT_FOUND		0x44
#define OBEX_RSP_METHOD_NOT_ALLOWED	0x45
#define OBEX_RSP_NOT_ACCEPTABLE		0x46
#define OBEX_RSP_PROXY_AUTH_REQUIRED	0x47
#define OBEX_RSP_REQUEST_TIME_OUT	0x48
#define OBEX_RSP_CONFLICT		0x49
#define OBEX_RSP_GONE			0x4a
#define OBEX_RSP_LENGTH_REQUIRED	0x4b
#define OBEX_RSP_PRECONDITION_FAILED	0x4c
#define OBEX_RSP_REQ_ENTITY_TOO_LARGE	0x4d
#define OBEX_RSP_REQ_URL_TOO_LARGE	0x4e
#define OBEX_RSP_UNSUPPORTED_MEDIA_TYPE	0x4f
#define OBEX_RSP_INTERNAL_SERVER_ERROR	0x50
#define OBEX_RSP_NOT_IMPLEMENTED	0x51
#define OBEX_RSP_BAD_GATEWAY		0x52
#define OBEX_RSP_SERVICE_UNAVAILABLE	0x53
#define OBEX_RSP_GATEWAY_TIMEOUT	0x54
#define OBEX_RSP_VERSION_NOT_SUPPORTED	0x55
#define OBEX_RSP_DATABASE_FULL		0x60
#define OBEX_RSP_DATABASE_LOCKED	0x61

/* Min, Max and default transport MTU */
#define OBEX_DEFAULT_MTU	1024
#define OBEX_MINIMUM_MTU	255
#define OBEX_MAXIMUM_MTU	65535

/** Optimum MTU for various transport (optimum for throughput).
 * The user/application has to set them via OBEX_SetTransportMTU().
 * If you are worried about safety or latency, stick with the current
 * default... - Jean II */
#define OBEX_IRDA_OPT_MTU	(7 * 2039)	/* 7 IrLAP frames */

#ifdef __cplusplus
}
#endif

#endif /* __OBEX_CONST_H */