/usr/include/inn/storage.h is in inn2-dev 2.6.1-4build1.
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  | /*  $Id: storage.h 9877 2015-05-24 13:59:15Z iulius $
**
**  Here be declarations related to the storage subsystem.
*/
#ifndef INN_STORAGE_H
#define INN_STORAGE_H 1
#include <inn/defines.h>
#include <inn/options.h>
#include <stdio.h>
#include <sys/types.h>
#define STORAGE_TOKEN_LENGTH 16
/* This is the type of an empty token.  Tokens with this type will be
   returned when errors occur */
#define TOKEN_EMPTY     255
typedef enum {RETR_ALL, RETR_HEAD, RETR_BODY, RETR_STAT} RETRTYPE;
typedef enum {SM_RDWR, SM_PREOPEN} SMSETUP;
#define NUM_STORAGE_CLASSES 256
typedef unsigned char STORAGECLASS;
typedef unsigned char STORAGETYPE;
typedef struct token {
    STORAGETYPE         type;
    STORAGECLASS        class;
    char                token[STORAGE_TOKEN_LENGTH];
} TOKEN;
typedef struct {
  unsigned char  type;       /* Method that retrieved the article */
  const char     *data;      /* Where the requested data starts */
  struct iovec   *iov;       /* writev() style vector */
  int            iovcnt;     /* writev() style count */
  size_t         len;        /* Length of the requested data */
  unsigned char  nextmethod; /* Next method to try when iterating over the
				spool */
  void           *private;   /* A pointer to method specific data */
  time_t         arrived;    /* The time when the article arrived */
  time_t         expires;    /* The time when the article will be expired */
  char           *groups;    /* Where Newsgroups header starts */
  int            groupslen;  /* Length of Newsgroups header */
  TOKEN          *token;     /* A pointer to the article's TOKEN */
} ARTHANDLE;
/* Initializer for the ARTHANDLE structure. */
#define ARTHANDLE_INITIALIZER { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
#define SMERR_NOERROR          0
#define SMERR_INTERNAL         1
#define SMERR_UNDEFINED        2
#define SMERR_NOENT            3
#define SMERR_TOKENSHORT       4
#define SMERR_NOBODY           5
#define SMERR_UNINIT           6
#define SMERR_CONFIG           7
#define SMERR_BADHANDLE        8
#define SMERR_BADTOKEN         9
#define SMERR_NOMATCH         10
extern int              SMerrno;
extern char             *SMerrorstr;
typedef enum {SELFEXPIRE, SMARTNGNUM, EXPENSIVESTAT} PROBETYPE;
typedef enum {SM_ALL, SM_HEAD, SM_CANCELLEDART} FLUSHTYPE;
struct artngnum {
    char	*groupname;
    ARTNUM	artnum;
};
BEGIN_DECLS
char *      TokenToText(const TOKEN token);
TOKEN       TextToToken(const char *text);
bool        IsToken(const char *text);
            
bool        SMsetup(SMSETUP type, void *value);
bool        SMinit(void);
TOKEN       SMstore(const ARTHANDLE article);
ARTHANDLE * SMretrieve(const TOKEN token, const RETRTYPE amount);
ARTHANDLE * SMnext(ARTHANDLE *article, const RETRTYPE amount);
void        SMfreearticle(ARTHANDLE *article);
bool        SMcancel(TOKEN token);
bool        SMprobe(PROBETYPE type, TOKEN *token, void *value);
bool        SMflushcacheddata(FLUSHTYPE type);
void        SMprintfiles(FILE *file, TOKEN token, char **xref, int ngroups);
char *      SMexplaintoken(const TOKEN token);
void        SMshutdown(void);
END_DECLS
    
#endif /* !INN_STORAGE_H */
 |