This file is indexed.

/usr/include/dgr.h is in libion-dev 3.2.1+dfsg-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
/*
 	dgr.h:	definitions supporting the implementation of DGR
       		applications.

	Author: Scott Burleigh, JPL

	Modification History:
	Date  		Who 	What
	4 July 2010	Scott	Revise to align with LTP spec.

	Copyright (c) 2003, California Institute of Technology.
	ALL RIGHTS RESERVED.  U.S. Government Sponsorship
	acknowledged.
 									*/
#ifndef _DGR_H_
#define _DGR_H_

#include "platform.h"
#include "lyst.h"
#include "llcv.h"

#ifdef __cplusplus
extern "C" {
#endif

/*	dgr_send notification flags (to be OR'd together in flags parm)	*/
#define	DGR_NOTE_NONE	(0)		/*	No notification.	*/
#define	DGR_NOTE_FAILED	(1)		/*	Note delivery failure.	*/
#define	DGR_NOTE_ACKED	(2)		/*	Note delivery success.	*/
#define	DGR_NOTE_ALL	(DGR_NOTE_FAILED | DGR_NOTE_ACKED)

/*	dgr_receive timeout values					*/
#define	DGR_POLL	(0)		/*	Return immediately.	*/
#define DGR_BLOCKING	(-1)		/*	Wait forever.		*/

typedef enum
{
	DgrFailed = 1,
	DgrOpened,
	DgrDatagramSent,
	DgrDatagramReceived,
	DgrTimedOut,
	DgrInterrupted,
	DgrDatagramAcknowledged,
	DgrDatagramNotAcknowledged
} DgrRC;

typedef struct dgrsapst	*Dgr;

extern int		dgr_open(	uvast ownEngineId,
					unsigned int clientSvcId,
					unsigned short ownPortNbr,
					unsigned int ownIpAddress,
					char *memmgrName,
					Dgr *dgr,
					DgrRC *rc);
			/*	Arguments are:
			 *		port number to use for DGR
			 *			service (if 0, defaults
			 *			to system-assigned UDP
			 *			port number)
			 *		Internet address of IP interface
			 *			to use for DGR service;
			 *			if 0, defaults to the
			 *			address of the interface
			 *			identified by the local
			 *			machine's host name
			 *		name of memory manager to use
			 *			for dynamic memory
			 *			management; if NULL,
			 *			defaults to standard
			 *			system malloc/free
			 *		location in which to store
			 *			service access pointer
			 *		location in which to store
			 *			return code
			 *
			 *	Returns 0 on success, -1 on failure.	*/

extern void		dgr_getsockname(Dgr dgr,
					unsigned short *portNbr,
					unsigned int *ipAddress);
			/*	States the port number and IP address
			 *	of the UDP socket used for this DGR
			 *	service access point.			*/

extern void		dgr_close(Dgr dgr);
			/*	Reverses dgr_open, releasing resources
			 *	where possible.				*/

extern int		dgr_send(	Dgr dgr,
					unsigned short toPortNbr,
					unsigned int toIpAddress,
					int notificationFlags,
					char *content,
					int length,
					DgrRC *rc);
			/*	Sends the indicated content, of length
			 *	as indicated, to the indicated remote
			 *	DGR service access point.  The message
			 *	will be retransmitted as necessary
			 *	until either it is acknowledged or
			 *	DGR determines that it cannot be
			 *	delivered.  Length of content must be
			 *	greater than zero and may be as great
			 *	as 65535, but lengths greater than
			 *	8192 may not be supported by the local
			 *	underlying UDP implementation; to
			 *	minimize the chance of data loss when
			 *	transmitting over the internet, length
			 *	should not exceed 512.  Returns 0 on
			 *	success (setting *rc as appropriate),
			 *	-1 on failure.				*/

extern int		dgr_receive(	Dgr dgr,
					unsigned short *fromPortNbr,
					unsigned int *fromIpAddress,
					char *content,
					int *length,
					int *errnbr,
					int timeoutSeconds,
					DgrRC *rc);
			/*	Delivers the oldest undelivered DGR
			 *	event queued for delivery.
			 *
			 *	DGR events are of two type: (a) a
			 *	message received from a remote DGR
			 *	service access point and (b) a notice
			 *	of a previously sent message that
			 *	DGR has determined either has been
			 *	or cannot be delivered, as requested
			 *	in the notificationFlags parm of the
			 *	dgr_send call that sent the message.
			 *
			 *	In the former case, dgr_receive will
			 *	place the content of the inbound
			 *	message in "content", its length in
			 *	"length", and the IP address and port
			 *	number of the sender in "fromIpAddress"
			 *	and "fromPortNbr", and will set *rc to
			 *	DgrDatagramReceived.
			 *
			 *	In the latter case, dgr_receive will
			 *	place the content of the outbound
			 *	message in "content" and its length
			 *	in "length", will place the relevant
			 *	errno (if any) in errnbr, and will set
			 *	*rc to either DgrDatagramAcknowledged
			 *	or DgrDatagramNotAcknowledged.
			 *
			 *	The "content" buffer should be at least
			 *	65535 bytes in length to enable delivery
			 *	of the content of the received or
			 *	delivered/undeliverable message.
			 *
			 *	The "timeoutSeconds" argument controls
			 *	blocking behavior.  If timeoutSeconds
			 *	is DGR_BLOCKING, dgr_receive will not
			 *	return until there is either an inbound
			 *	message to deliver or an outbound
			 *	message delivery result to report
			 *	(or an I/O error).  If timeoutSeconds
			 *	is DGR_POLL, dgr_receive returns
			 *	immediately; if there is currently no
			 *	inbound message to deliver and no
			 *	outbound message delivery result to
			 *	report, the function sets *rc to
			 *	DgrTimedOut.  For any other positive
			 *	value of timeoutSeconds, dgr_receive
			 *	returns after the indicated number of
			 *	seconds have lapsed, or there is a
			 *	message to deliver or a delivery
			 *	result to report, whichever occurs
			 *	first; in the former case, it sets
			 *	*rc to DgrTimedOut.
			 *
			 *	Returns 0 on success, -1 on failure.	*/

extern void		dgr_interrupt(Dgr dgr);
			/*	Interrupts a dgr_receive invocation
			 *	that is currently blocked.  Designed 
			 *	to be called from a signal handler.	*/

#ifdef __cplusplus
}
#endif

#endif	/* _DGR_H */