This repository has been archived on 2024-01-04. You can view files and clone it, but cannot push or open issues or pull requests.
ncsa-mosaic/libwww2/HTAAFile.h

125 lines
4.2 KiB
C

/* FILE ROUTINES FOR ACCESS AUTHORIZATION PACKAGE
This module implements the routines used for accessing (and parsing) the files used in
the access authorization:
password file
group file
access control list (ACL) file
*/
#ifndef HTAAFILE_H
#define HTAAFILE_H
#include <stdio.h> /* FILE */
#include "HTUtils.h" /* BOOL, PARAMS, ARGS */
#include "HTList.h" /* HTList */
#ifdef SHORT_NAMES
#define HTAAFnRe HTAAFile_nextRec
#define HTAAFrFi HTAAFile_readField
#define HTAAFrLi HTAAFile_readList
#endif /*SHORT_NAMES*/
/* Used field separators */
#define FIELD_SEPARATOR ':' /* Used to separate fields */
#define LIST_SEPARATOR ',' /* Used to separate items in a list */
/* in group and ALC files. */
/*
Naming conventions
Record is an entire line in file.
Field is an entity separated by colons and/or by end-of-line.
List is a field in which there are items separated by commas.
Record-oriented Read Routines
Password, group and ACL are internally read in by the following functions:
HTAAFile_nextRec() skips to the beginning of the next record (must be called even
after the last field of a record is read to proceed to the next
record).
HTAAFile_readField() reads a field (separated by colons).
HTAAFile_readList() reads a field containing a comma-separated list of items.
*/
/* PUBLIC HTAAFile_nextRec()
** GO TO THE BEGINNING OF THE NEXT RECORD
** ON ENTRY:
** fp is the file from which records are read from.
**
** ON EXIT:
** returns nothing. File read pointer is located at the beginning
** of the next record.
**
*/
PUBLIC void HTAAFile_nextRec PARAMS((FILE * fp));
/* PUBLIC HTAAFile_readField()
** READ A FIELD FROM A PASSWORD, GROUP
** OR ACCESS CONTROL LIST FILE
** i.e. an item terminated by colon,
** end-of-line, or end-of-file.
** ON ENTRY:
** fp is the file to read the characters from
** contents is the character array to put the characters
** max_len is the maximum number of characters that may
** be read (i.e. the size of dest minus one for
** terminating null).
** ON EXIT:
** returns the terminating character
** (i.e. either separator or CR or LF or EOF).
** contents contains a null-terminated string representing
** the read field.
** NOTE 1:
** Ignores leading and trailing blanks and tabs.
** NOTE 2:
** If the field is more than max_len characters
** long, the rest of the characters in that item
** are ignored. However, contents is always
** null-terminated!
*/
PUBLIC int HTAAFile_readField PARAMS((FILE * fp,
char * contents,
int max_len));
/* PUBLIC HTAAFile_readList()
**
** READ A LIST OF STRINGS SEPARATED BY COMMAS
** (FROM A GROUP OR ACCESS CONTROL LIST FILE)
** ON ENTRY:
** fp is a pointer to the input file.
** result is the list to which append the read items.
** max_len is the maximum number of characters in each
** list entry (extra characters are ignored).
** ON EXIT:
** returns the number of items read.
**
*/
PUBLIC int HTAAFile_readList PARAMS((FILE * fp,
HTList * result,
int max_len));
/*
*/
#endif /* not HTAAFILE_H */
/*
End of file HTAAFile.h. */