source: trunk/third/cns/src/include/AddressXlation.h @ 8789

Revision 8789, 2.1 KB checked in by ghudson, 28 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r8788, which included commits to RCS files with non-trunk default branches.
Line 
1/*
2        AddressXlation.h               
3        MacTCP name to address translation routines.
4
5    Copyright Apple Computer, Inc. 1988-91
6    All rights reserved
7       
8*/     
9#ifndef __ADDRESSXLATION__
10#define __ADDRESSXLATION__
11
12#ifndef __MACTCPCOMMONTYPES__
13#include "MacTCPCommonTypes.h"
14#endif
15
16#define NUM_ALT_ADDRS   4
17
18typedef struct hostInfo {
19        long    rtnCode;
20        char cname[255];
21        unsigned long addr[NUM_ALT_ADDRS];
22};
23
24typedef enum AddrClasses {
25        A = 1,
26        NS,
27        CNAME = 5,
28        HINFO = 13,
29        MX = 15,
30        lastClass = 32767
31} AddrClasses;
32
33typedef struct HInfoRec {
34        char cpuType[30];
35        char osType[30];
36        };
37
38typedef struct MXRec {
39        unsigned short preference;
40        char exchange[255];
41        };
42       
43typedef struct returnRec {
44        long    rtnCode;
45        char cname[255];
46        union {
47                unsigned long addr[NUM_ALT_ADDRS];
48                struct HInfoRec hinfo;
49                struct MXRec mx;
50        } rdata;
51};
52
53typedef struct cacheEntryRecord {
54        char *cname;
55        unsigned short type;
56        unsigned short cacheClass;
57        unsigned long ttl;
58        union {
59                char *name;
60                ip_addr addr;
61        } rdata;
62};
63
64#ifdef __cplusplus
65extern "C" {
66#endif
67
68#ifdef THINK_C
69
70        typedef ProcPtr EnumResultProcPtr;
71        typedef ProcPtr ResultProcPtr;
72        typedef ProcPtr ResultProc2Ptr;
73       
74#else
75
76        typedef pascal void (*EnumResultProcPtr)(struct cacheEntryRecord *cacheEntryRecordPtr, char *userDataPtr);
77        typedef pascal void (*ResultProcPtr)(struct hostInfo *hostInfoPtr, char *userDataPtr);
78        typedef pascal void (*ResultProc2Ptr)(struct returnRec *returnRecPtr, char *userDataPtr);
79
80#endif
81
82extern OSErr OpenResolver(char *fileName);
83
84extern OSErr StrToAddr(char *hostName, struct hostInfo *hostInfoPtr, ResultProcPtr ResultProc, char *userDataPtr);
85
86extern OSErr AddrToStr(unsigned long addr, char *addrStr);
87
88extern OSErr EnumCache(EnumResultProcPtr enumResultProc, char *userDataPtr);
89
90extern OSErr AddrToName(ip_addr addr, struct hostInfo *hostInfoPtr, ResultProcPtr ResultProc, char *userDataPtr);
91
92extern OSErr HInfo(char *hostName, struct returnRec *returnRecPtr, ResultProc2Ptr resultProc, char *userDataPtr);
93
94extern OSErr MXInfo(char *hostName, struct returnRec *returnRecPtr, ResultProc2Ptr resultProc, char *userDataPtr);
95
96extern OSErr CloseResolver(void);
97
98#ifdef __cplusplus
99}
100#endif
101
102#endif /* __ADDRESSXLATION__ */
Note: See TracBrowser for help on using the repository browser.