|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 9539 (0x2543) Types: TextFile Names: »phquery.h,v«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦bfebc70e2⟧ »EurOpenD3/mail/sendmail-5.65b+IDA-1.4.3.tar.Z« └─⟦f9e35cd84⟧ └─⟦this⟧ »sendmail/uiuc/RCS/phquery.h,v«
head 1.7; branch ; access ; symbols ; locks ; strict; comment @ * @; 1.7 date 90.12.11.12.26.59; author paul; state Exp; branches ; next 1.6; 1.6 date 89.10.20.15.48.57; author paul; state Exp; branches ; next 1.5; 1.5 date 89.05.10.00.59.45; author paul; state Exp; branches ; next 1.4; 1.4 date 89.05.09.22.54.35; author paul; state Exp; branches ; next 1.3; 1.3 date 89.05.08.20.41.57; author paul; state Exp; branches ; next 1.2; 1.2 date 89.05.06.22.46.36; author paul; state Exp; branches ; next 1.1; 1.1 date 89.02.13.21.43.41; author paul; state Exp; branches ; next ; desc @@ 1.7 log @Corrected handling of hyphenated names. Added WILDNAMES #define for more aggressive matching of full name lookups. See the comments in phquery.h. @ text @/* * @@(#)$Header: /usr/local/src/mail/sendmail/uiuc/RCS/phquery.h,v 1.6 89/10/20 15:48:57 paul Exp Locker: paul $ */ /* * Configuration parameters. * * Defining EXPAND_TO will print the list of expanded addresses on an added * X-PH-To: header line. This will also expand names found in /usr/lib/aliases * lists. Leaving it undefined will cause phquery to print only a version * line with the name of the host running phquery, e.g., * X-Ph: V3.5@@uxc.cso.uiuc.edu . */ /*#define EXPAND_TO /* Print translated addresses */ /* * An address tested as a name is first run through as is. If no matches * are found then any punctuation characters are converted one at a time * (leftmost first) to space characters and the lookup is repeated until * there are no more punctuation characters. If WILDNAMES is #define'd, * a wildcard char '*' will be appended after each single character name, * e.g. p-pomes is tried as "p* pomes". This has risks as follows: assume * Duncan Lawrie sets his alias to "lawrie". A query for d-lawrie will * fail as a alias lookup but succeed as a name lookup when written as * "d* lawrie". This works until Joe Student sets his alias to "d-lawrie". * Whoops. Still in a non-hostile environment, this function may be more * useful than dangerous. */ /*#define WILDNAMES /* Append '*' to single char names */ /* End of configurable parameters. */ /* ** Reply codes: ** 1XX - status ** 2XX - information ** 3XX - additional information or action needed ** 4XX - temporary errors ** 5XX - permanent errors ** 6XX - phquery specific codes */ #define LR_PROGRESS 100 /* in progress */ #define LR_ECHO 101 /* echoing cmd */ #define LR_OK 200 /* success */ #define LR_RONLY 201 /* database ready in read only mode */ #define LR_MORE 300 /* need more info */ #define LR_LOGIN 301 /* encrypt this string */ #define LR_TEMP 400 /* temporary error */ #define LR_INTERNAL 401 /* database error, possibly temporary */ #define LR_LOCK 402 /* lock not obtained within timeout period */ #define LR_DOWN 475 /* database unavailable; try again later */ #define LR_ERROR 500 /* hard error; general */ #define LR_NOMATCH 501 /* no matches to query */ #define LR_TOOMANY 502 /* too many matches to query */ #define LR_AINFO 503 /* may not see that field */ #define LR_ASEARCH 504 /* may not search on that field */ #define LR_ACHANGE 505 /* may not change field */ #define LR_NOTLOG 506 /* must be logged in */ #define LR_FIELD 507 /* field unknown */ #define LR_ABSENT 508 /* field not present in entry */ #define LR_ALIAS 509 /* requested alias is already in use */ #define LR_AENTRY 510 /* may not change entry */ #define LR_ADD 511 /* may not add entries */ #define LR_VALUE 512 /* illegal value */ #define LR_OPTION 513 /* unknown option */ #define LR_UNKNOWN 514 /* unknown command */ #define LR_NOKEY 515 /* no indexed field found in query */ #define LR_AUTH 516 /* no authorization for query */ #define LR_READONLY 517 /* operation failed; database is read-only */ #define LR_LIMIT 518 /* too many entries selected for change */ #define LR_HISTORY 519 /* history substitution failed */ #define LR_SYNTAX 599 /* syntax error */ #define LR_AMBIGUOUS 600 /* ambiguous or multiple match */ #define NONE_OF_ABOVE -1 struct ReplyCodes { int key; char *value; } Codes[] = { LR_PROGRESS, "Nameserver search in progress", LR_ECHO, "Echoing nameserver cmd", LR_OK, "Success", LR_RONLY, "Nameserver database ready in read only mode", LR_MORE, "More info needed to process nameserver query", LR_LOGIN, "Encrypt this string", LR_TEMP, "Temporary nameserver error", LR_INTERNAL, "Nameserver database error, possibly temporary", LR_LOCK, "Nameserver lock not obtained within timeout period", LR_ERROR, "Nameserver hard error; general", LR_NOMATCH, "No matches to nameserver query", LR_TOOMANY, "Too many matches found to nameserver query", LR_AINFO, "May not see that nameserver field", LR_ASEARCH, "May not search on that nameserver field", LR_ACHANGE, "May not change that nameserver field", LR_NOTLOG, "Must be logged in to nameserver", LR_FIELD, "Unknown nameserver field", LR_ABSENT, "E-mail field not present in nameserver entry", LR_ALIAS, "Requested nameserver alias is already in use", LR_AENTRY, "May not change nameserver entry", LR_ADD, "May not add nameserver entries", LR_VALUE, "Illegal value", LR_OPTION, "Unknown nameserver option", LR_UNKNOWN, "Unknown nameserver command", LR_NOKEY, "No indexed field found in nameserver query", LR_AUTH, "No authorization for nameserver request", LR_READONLY, "Nameserver operation failed; database is read-only", LR_LIMIT, "Too many nameserver entries selected for change", LR_HISTORY, "History substitution failed", LR_SYNTAX, "Syntax error", LR_AMBIGUOUS, "Multiple matches found for nameserver query", NONE_OF_ABOVE, (char *)NULL }; /* * Field types returned by QI. These must be sorted in lexographic order. */ #define ADDRESS 0 #define ALIAS 1 #define ALL 2 #define BIRTHDAY 3 #define CALLSIGN 4 #define CLASSCO 5 #define CURRICULUM 6 #define DEF_ACCOUNT 7 #define DEPARTMENT 8 #define EMAIL 9 #define FAMILY 10 #define HERO 11 #define HOME_ADDRESS 12 #define HOURS 13 #define ID 14 #define MAILCODE 15 #define MAIL_ADDRESS 16 #define NAME 17 #define NICKNAME 18 #define OFFICE_ADDRESS 19 #define OTHER 20 #define PAGER 21 #define PASSWORD 22 #define PERMANENT_ADDRESS 23 #define PHONE 24 #define PROJECT 25 #define PROXY 26 #define REVISIONS 27 #define SOUND 28 #define TITLE 29 #define TYPE 30 struct QI_fields { int key; char *value; } Fields[] = { ADDRESS, "address", ALIAS, "alias", ALL, "all", BIRTHDAY, "birthday", CALLSIGN, "callsign", CLASSCO, "classco", CURRICULUM, "curriculum", DEF_ACCOUNT, "def_account", DEPARTMENT, "department", EMAIL, "email", FAMILY, "family", HERO, "hero", HOME_ADDRESS, "home_address", HOURS, "hours", ID, "id", MAIL_ADDRESS, "mail_address", MAILCODE, "mailcode", NAME, "name", NICKNAME, "nickname", OFFICE_ADDRESS, "office_address", OTHER, "other", PAGER, "pager", PASSWORD, "password", PERMANENT_ADDRESS, "permanent_address", PHONE, "phone", PROJECT, "project", PROXY, "proxy", REVISIONS, "revisions", SOUND, "sound", TITLE, "title", TYPE, "type", NONE_OF_ABOVE, (char *)NULL }; struct QI_response { int code; int subcode; int field; char *message; }; typedef struct QI_response QIR; struct NewAddress { char *original; char *new; int code; QIR *QIalt; }; typedef struct NewAddress NADD; @ 1.6 log @Added a new 400 error @ text @d2 1 a2 1 * @@(#)$Header: /usr/local/src/mail/sendmail/uiuc/RCS/phquery.h,v 1.5 89/05/10 00:59:45 paul Exp Locker: paul $ d4 28 @ 1.5 log @Final Wednesday morning clean-ups, typo-corrections, and semi-major re-write of Query(). Now handles callsigns which was easier than changing the extant documentation. Erasing people's minds would have been tough too. -pbp @ text @d2 1 a2 1 * @@(#)$Header: /usr/local/src/mail/sendmail/uiuc/RCS/phquery.h,v 1.4 89/05/09 22:54:35 paul Exp Locker: paul $ d26 1 @ 1.4 log @First working version up to spec. -pbp @ text @d2 1 a2 1 * @@(#)$Header: /usr/local/src/mail/sendmail/uiuc/RCS/phquery.h,v 1.3 89/05/08 20:41:57 paul Exp Locker: paul $ a4 3 /* Maximum number of suggested alternatives */ #define MAXALT 25 d28 2 a29 2 #define LR_NOMATCH 501 /* no matches to request */ #define LR_TOOMANY 502 /* too many matches to request */ d43 1 a43 1 #define LR_AUTH 516 /* no authorization for request */ d62 1 a62 1 LR_MORE, "More info needed to process nameserver request", d68 2 a69 2 LR_NOMATCH, "No matches to nameserver request", LR_TOOMANY, "Too many matches found to nameserver request", @ 1.3 log @Cut after adding ReadQI function. -pbp @ text @d2 1 a2 1 * @@(#)$Header: /usr/local/src/mail/sendmail/uiuc/RCS/phquery.h,v 1.2 89/05/06 22:46:36 paul Exp Locker: paul $ d8 9 a16 3 /*********************************************************************** * Reply codes ***********************************************************************/ d53 2 d91 1 a167 7 struct NewAddress { char *original; char *new; int code; char *alternatives[MAXALT]; }; d174 1 d176 6 a182 2 typedef struct QI_response QIR; @ 1.2 log @Added QI response fields. -pbp @ text @d2 1 a2 1 * @@(#)$Header: /usr/local/src/mail/sendmail/uiuc/RCS/phquery.h,v 1.1 89/02/13 21:43:41 paul Exp Locker: paul $ d47 2 d83 1 a83 1 -1, (char *)NULL a120 2 #define NONE_OF_ABOVE -1 d124 1 a124 1 } Fields = { @ 1.1 log @Initial revision @ text @d2 1 a2 1 * @@(#)$Header$ d5 3 d84 75 d163 1 d166 7 d174 1 @