openldap/contrib/whois++/whois++.h
Hallvard Furuseth 7e6ad5100c Protoized, moved extern definitions to .h files, fixed related bugs.
Most function and variable definitions are now preceded by its extern
definition, for error checking.  Retyped a number of functions, usually
to return void.  Fixed a number of printf format errors.

API changes (in ldap/include):
  Added avl_dup_ok, avl_prefixapply, removed ber_fatten (probably typo
  for ber_flatten), retyped ldap_sort_strcasecmp, grew lutil.h.

A number of `extern' declarations are left (some added by protoize), to
be cleaned away later.  Mostly strdup(), strcasecmp(), mktemp(), optind,
optarg, errno.
1998-11-15 22:40:11 +00:00

149 lines
3.8 KiB
C

/*
* W H O I S + +
*
* Author: Mark R. Prior
* Communications and Systems Branch
* Information Technology Division
* The University of Adelaide
* E-mail: mrp@itd.adelaide.edu.au
* Date: October 1992
* Copyright: (C) 1992, The University of Adelaide
* Version: 1.7
* Description:
* This is an experimental implementation of the proposed IETF
* WNILS WG update to the whois/nicname protocol (whois++).
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of Adelaide. The name of the University may not
* be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <dirent.h>
#if defined(INTERNATIONAL)
#include <langinfo.h>
#include <locale.h>
#include <nl_types.h>
#endif
#include <sys/types.h>
#include <sys/param.h>
#include <sys/time.h>
#include <netinet/in.h>
#include "syslog.h"
#include "lber.h"
#include "ldap.h"
#define EQ(x,y) (strcasecmp(x,y) == 0)
#if defined(sun)
extern int sys_nerr;
extern char *sys_errlist[];
#define strerror(_e) ( ( ( (_e) >= 0 ) && ( (_e) < sys_nerr ) ) ? \
sys_errlist[(_e)] : "Undocumented error code" )
#endif
#if !defined(TRUE)
#define TRUE 1
#define FALSE 0
#endif
#if defined(MAIN)
#define EXTERN
#else
#define EXTERN extern
#endif
#if !defined(ABRIDGED_LIMIT)
#define ABRIDGED_LIMIT 10
#endif
#if !defined(DEFAULT_LDAPHOST)
#define DEFAULT_LDAPHOST "localhost"
#endif
#if !defined(DEFAULT_SIZELIMIT)
#define DEFAULT_SIZELIMIT 50
#endif
#if !defined(DEFAULT_TIMELIMIT)
#define DEFAULT_TIMELIMIT 60
#endif
#if !defined(HELP_DIRECTORY)
#define HELP_DIRECTORY "/usr/local/isode/help/whois++"
#endif
#if !defined(CONFIG_DIRECTORY)
#define CONFIG_DIRECTORY "/usr/local/isode/etc/whois++"
#endif
#if !defined(DEFAULT_LANGUAGE)
#define DEFAULT_LANGUAGE "english"
#endif
#define ATTRIBUTE_INCREMENT 10
#define TABLE_INCREMENT 10
#define DEFAULT_LINE_LENGTH 80
#define MIN_LINE_LENGTH 40
#define MAX_LINE_LENGTH 200
/*
* Tokens
*/
#define HELP 1
#define LIST 2
#define DESCRIBE 3
#define VERSION 4
#define SHOW 5
#define CONSTRAINTS 6
#define SEARCH 7
#define TEMPLATE 8
#define HANDLE 9
#define ATTRIBUTE 10
#define VALUE 11
#define SEARCH_ALL 12
#define COMMA 13
#define ERROR 14
#define EQUALS 15
#define COLON 16
#define SEMICOLON 17
#define FULL 18
#define ABRIDGED 19
#define SUMMARY 20
#define READ 21
#define LANGUAGE 22
#define FORMAT 23
#define HOLD 24
#define MAXHITS 25
#define MATCH 26
#define LINE_LENGTH 27
#define COMMAND 28
#define TRACE 29
typedef struct {
char *key;
char *value;
} table;
EXTERN int debug, outputFormat, lineLength, holdConnection, log;
EXTERN int maxHits, numberOfTemplates, tableSize, maximumSize;
EXTERN char *program, *ldaphost, *language, *locale, *base;
EXTERN char *contact, *hostname, *user, *password, *helpDir;
EXTERN char *configDir, *organisation, *defaultLanguage;
EXTERN char *banner;
EXTERN char **category;
EXTERN table *templateTranslationTable;
extern int displayDescribe(), parseCommand(char *query);
extern void needHelp(char *reason);
extern void showTemplate(char *template), listTemplates(char *query);
extern char **specifyAttributes(char *objectClass);
extern char *lowerCase(char *string), *version(void), *attributeLabel();
extern char *rfc931_name();
extern char *templateToObjectClass(char *template);