OpenVAS Libraries  4.0+rc3.SVN
nasl/charset.h
00001 /* 
00002    Unix SMB/CIFS implementation.
00003    charset defines
00004    Copyright (C) Andrew Tridgell 2001
00005    Copyright (C) Jelmer Vernooij 2002
00006    
00007    This program is free software; you can redistribute it and/or modify
00008    it under the terms of the GNU General Public License as published by
00009    the Free Software Foundation; either version 2 of the License, or
00010    (at your option) any later version.
00011    
00012    This program is distributed in the hope that it will be useful,
00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015    GNU General Public License for more details.
00016    
00017    You should have received a copy of the GNU General Public License
00018    along with this program; if not, write to the Free Software
00019    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00020 */
00021 
00022 /* MODIFICATION: This has only those functions that cater to the requirements of OpenVAS, remaining functions are removed*/
00023 #ifndef __CHARSET_H__
00024 #define __CHARSET_H__
00025 
00026 #include "smb.h"
00027 
00028 
00029 /* this defines the charset types used in samba */
00030 typedef enum {CH_UTF16LE=0, CH_UTF16=0, CH_UNIX=1, CH_DISPLAY=2, CH_DOS=3, CH_UTF8=4, CH_UTF16BE=5} charset_t;
00031 
00032 #define NUM_CHARSETS 6
00033 /* 
00034  *   for each charset we have a function that pushes from that charset to a ucs2
00035  *   buffer, and a function that pulls from ucs2 buffer to that  charset.
00036  */
00037 
00038 struct charset_functions_ntlmssp {
00039   const char *name;
00040   size_t (*pull)(void *, const char **inbuf, size_t *inbytesleft,
00041   char **outbuf, size_t *outbytesleft);
00042   size_t (*push)(void *, const char **inbuf, size_t *inbytesleft,
00043   char **outbuf, size_t *outbytesleft);
00044   struct charset_functions_ntlmssp *prev, *next;
00045 };
00046 #endif