xref: /minix3/external/bsd/bind/dist/contrib/idn/idnkit-1.0-src/wsock/common/wrapcommon.h (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek /*	$NetBSD: wrapcommon.h,v 1.3 2014/12/10 04:37:56 christos Exp $	*/
2*00b67f09SDavid van Moolenbroek 
3*00b67f09SDavid van Moolenbroek /*
4*00b67f09SDavid van Moolenbroek  * wrapcommon.h
5*00b67f09SDavid van Moolenbroek  */
6*00b67f09SDavid van Moolenbroek 
7*00b67f09SDavid van Moolenbroek /*
8*00b67f09SDavid van Moolenbroek  * Copyright (c) 2000,2002 Japan Network Information Center.
9*00b67f09SDavid van Moolenbroek  * All rights reserved.
10*00b67f09SDavid van Moolenbroek  *
11*00b67f09SDavid van Moolenbroek  * By using this file, you agree to the terms and conditions set forth bellow.
12*00b67f09SDavid van Moolenbroek  *
13*00b67f09SDavid van Moolenbroek  * 			LICENSE TERMS AND CONDITIONS
14*00b67f09SDavid van Moolenbroek  *
15*00b67f09SDavid van Moolenbroek  * The following License Terms and Conditions apply, unless a different
16*00b67f09SDavid van Moolenbroek  * license is obtained from Japan Network Information Center ("JPNIC"),
17*00b67f09SDavid van Moolenbroek  * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
18*00b67f09SDavid van Moolenbroek  * Chiyoda-ku, Tokyo 101-0047, Japan.
19*00b67f09SDavid van Moolenbroek  *
20*00b67f09SDavid van Moolenbroek  * 1. Use, Modification and Redistribution (including distribution of any
21*00b67f09SDavid van Moolenbroek  *    modified or derived work) in source and/or binary forms is permitted
22*00b67f09SDavid van Moolenbroek  *    under this License Terms and Conditions.
23*00b67f09SDavid van Moolenbroek  *
24*00b67f09SDavid van Moolenbroek  * 2. Redistribution of source code must retain the copyright notices as they
25*00b67f09SDavid van Moolenbroek  *    appear in each source code file, this License Terms and Conditions.
26*00b67f09SDavid van Moolenbroek  *
27*00b67f09SDavid van Moolenbroek  * 3. Redistribution in binary form must reproduce the Copyright Notice,
28*00b67f09SDavid van Moolenbroek  *    this License Terms and Conditions, in the documentation and/or other
29*00b67f09SDavid van Moolenbroek  *    materials provided with the distribution.  For the purposes of binary
30*00b67f09SDavid van Moolenbroek  *    distribution the "Copyright Notice" refers to the following language:
31*00b67f09SDavid van Moolenbroek  *    "Copyright (c) 2000-2002 Japan Network Information Center.  All rights reserved."
32*00b67f09SDavid van Moolenbroek  *
33*00b67f09SDavid van Moolenbroek  * 4. The name of JPNIC may not be used to endorse or promote products
34*00b67f09SDavid van Moolenbroek  *    derived from this Software without specific prior written approval of
35*00b67f09SDavid van Moolenbroek  *    JPNIC.
36*00b67f09SDavid van Moolenbroek  *
37*00b67f09SDavid van Moolenbroek  * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
38*00b67f09SDavid van Moolenbroek  *    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
39*00b67f09SDavid van Moolenbroek  *    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
40*00b67f09SDavid van Moolenbroek  *    PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL JPNIC BE LIABLE
41*00b67f09SDavid van Moolenbroek  *    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
42*00b67f09SDavid van Moolenbroek  *    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
43*00b67f09SDavid van Moolenbroek  *    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
44*00b67f09SDavid van Moolenbroek  *    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
45*00b67f09SDavid van Moolenbroek  *    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
46*00b67f09SDavid van Moolenbroek  *    OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
47*00b67f09SDavid van Moolenbroek  *    ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
48*00b67f09SDavid van Moolenbroek  */
49*00b67f09SDavid van Moolenbroek 
50*00b67f09SDavid van Moolenbroek #ifndef _WRAPCOMMON_H
51*00b67f09SDavid van Moolenbroek #define _WRAPCOMMON_H
52*00b67f09SDavid van Moolenbroek 
53*00b67f09SDavid van Moolenbroek #include <idn/res.h>
54*00b67f09SDavid van Moolenbroek #include <idn/log.h>
55*00b67f09SDavid van Moolenbroek #include <idn/version.h>
56*00b67f09SDavid van Moolenbroek 
57*00b67f09SDavid van Moolenbroek #define WRAPPER_EXPORT	extern __declspec(dllexport)
58*00b67f09SDavid van Moolenbroek 
59*00b67f09SDavid van Moolenbroek extern void idnPrintf(char *fmt, ...);
60*00b67f09SDavid van Moolenbroek extern void idnLogPrintf(int level, char *fmt, ...);
61*00b67f09SDavid van Moolenbroek extern void idnLogInit(const char *title);
62*00b67f09SDavid van Moolenbroek extern void idnLogReset(void);
63*00b67f09SDavid van Moolenbroek extern void idnLogFinish(void);
64*00b67f09SDavid van Moolenbroek 
65*00b67f09SDavid van Moolenbroek extern char *dumpAddr(const char FAR *addr, int len, char *buff, size_t size);
66*00b67f09SDavid van Moolenbroek extern char *dumpHost(const struct hostent FAR *hp, char *buff, size_t size);
67*00b67f09SDavid van Moolenbroek extern char *dumpName(const char *name, char *buff, size_t size);
68*00b67f09SDavid van Moolenbroek 
69*00b67f09SDavid van Moolenbroek extern int idnEncodeWhere(void);
70*00b67f09SDavid van Moolenbroek 
71*00b67f09SDavid van Moolenbroek #define IDN_ENCODE_ALWAYS   0
72*00b67f09SDavid van Moolenbroek #define IDN_ENCODE_CHECK    1
73*00b67f09SDavid van Moolenbroek #define IDN_ENCODE_ONLY11   2
74*00b67f09SDavid van Moolenbroek #define IDN_ENCODE_ONLY20   3
75*00b67f09SDavid van Moolenbroek 
76*00b67f09SDavid van Moolenbroek extern BOOL idnGetPrgEncoding(char *enc, size_t len);
77*00b67f09SDavid van Moolenbroek extern BOOL idnGetLogFile(char *file, size_t len);
78*00b67f09SDavid van Moolenbroek 
79*00b67f09SDavid van Moolenbroek extern int  idnGetLogLevel(void);  /* 0 : fatal        */
80*00b67f09SDavid van Moolenbroek                                     /* 1 : error        */
81*00b67f09SDavid van Moolenbroek 				    /* 2 : warning      */
82*00b67f09SDavid van Moolenbroek 				    /* 3 : info         */
83*00b67f09SDavid van Moolenbroek 				    /* 4 : trace        */
84*00b67f09SDavid van Moolenbroek 				    /* 5 : dump         */
85*00b67f09SDavid van Moolenbroek extern int  idnGetInstallDir(char *dir, size_t len);
86*00b67f09SDavid van Moolenbroek 
87*00b67f09SDavid van Moolenbroek extern idn_resconf_t idnConvInit(void);
88*00b67f09SDavid van Moolenbroek extern void idnConvDone(idn_resconf_t ctx);
89*00b67f09SDavid van Moolenbroek 
90*00b67f09SDavid van Moolenbroek extern BOOL idnWinsockVersion(const char *version);
91*00b67f09SDavid van Moolenbroek extern HINSTANCE idnWinsockHandle(void);
92*00b67f09SDavid van Moolenbroek extern idn_resconf_t idnGetContext(void);
93*00b67f09SDavid van Moolenbroek 
94*00b67f09SDavid van Moolenbroek /*
95*00b67f09SDavid van Moolenbroek  * Converting Request/Response
96*00b67f09SDavid van Moolenbroek  */
97*00b67f09SDavid van Moolenbroek 
98*00b67f09SDavid van Moolenbroek extern BOOL idnConvReq(idn_resconf_t ctx, const char FAR *from,
99*00b67f09SDavid van Moolenbroek 		       char FAR *to, size_t tolen);
100*00b67f09SDavid van Moolenbroek extern BOOL idnConvRsp(idn_resconf_t ctx, const char FAR *from,
101*00b67f09SDavid van Moolenbroek 		       char FAR *to, size_t tolen);
102*00b67f09SDavid van Moolenbroek 
103*00b67f09SDavid van Moolenbroek /*
104*00b67f09SDavid van Moolenbroek  * Hook for Asynchronouse Query
105*00b67f09SDavid van Moolenbroek  */
106*00b67f09SDavid van Moolenbroek 
107*00b67f09SDavid van Moolenbroek extern void idnHookInit(void);
108*00b67f09SDavid van Moolenbroek extern void idnHookDone(void);
109*00b67f09SDavid van Moolenbroek extern BOOL idnHook(HWND hWnd, u_int wMsg, char FAR *buf, idn_resconf_t ctx);
110*00b67f09SDavid van Moolenbroek 
111*00b67f09SDavid van Moolenbroek #endif  /* _WRAPCOMMON_H */
112