@@ -0,0 +1,25 @@ | |||
# Maintainer: stlarch stlarchie@gmail.com | |||
pkgname=ohsnap | |||
pkgver=1.8.0 | |||
pkgrel=1 | |||
pkgdesc="Monospaced font based on Artwiz Snap." | |||
arch=('any') | |||
url="http://sourceforge.net/projects/osnapfont" | |||
license=('GPLv2') | |||
depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils') | |||
install=ohsnap.install | |||
source=("http://sourceforge.net/projects/osnapfont/files/$pkgname-$pkgver.tar.gz") | |||
package () { | |||
cd "$srcdir/$pkgname-$pkgver" | |||
install -d "$pkgdir/usr/share/fonts/local" | |||
install -d "$pkgdir/usr/share/kbd/consolefonts" | |||
install -d "$pkgdir/usr/share/doc/$pkgname" | |||
install -m644 *.pcf "$pkgdir/usr/share/fonts/local" | |||
install -m644 *.psfu "$pkgdir/usr/share/kbd/consolefonts" | |||
install -m644 README.ohsnap "$pkgdir/usr/share/doc/$pkgname" | |||
} | |||
md5sums=('aeb3d8e1f9634900036f886a14b3b03a') |
@@ -0,0 +1,20 @@ | |||
# arg 1: the new package version | |||
post_install() { | |||
echo "Updating font cache... " | |||
fc-cache -fs >/dev/null 2>&1 | |||
mkfontscale /usr/share/fonts/local | |||
mkfontdir /usr/share/fonts/local | |||
} | |||
# arg 1: the new package version | |||
# arg 2: the old package version | |||
post_upgrade() { | |||
post_install $1 | |||
} | |||
# arg 1: the old package version | |||
post_remove() { | |||
fc-cache -fs >/dev/null 2>&1 | |||
mkfontscale /usr/share/fonts/local | |||
mkfontdir /usr/share/fonts/local | |||
} |
@@ -0,0 +1,20 @@ | |||
# arg 1: the new package version | |||
post_install() { | |||
echo "Updating font cache... " | |||
fc-cache -fs >/dev/null 2>&1 | |||
mkfontscale /usr/share/fonts/local | |||
mkfontdir /usr/share/fonts/local | |||
} | |||
# arg 1: the new package version | |||
# arg 2: the old package version | |||
post_upgrade() { | |||
post_install $1 | |||
} | |||
# arg 1: the old package version | |||
post_remove() { | |||
fc-cache -fs >/dev/null 2>&1 | |||
mkfontscale /usr/share/fonts/local | |||
mkfontdir /usr/share/fonts/local | |||
} |
@@ -0,0 +1,24 @@ | |||
# Generated by makepkg 4.2.0 | |||
# using fakeroot version 1.20.2 | |||
# Mon Dec 29 21:06:52 UTC 2014 | |||
pkgname = ohsnap | |||
pkgver = 1.8.0-1 | |||
pkgdesc = Monospaced font based on Artwiz Snap. | |||
url = http://sourceforge.net/projects/osnapfont | |||
builddate = 1419887212 | |||
packager = Unknown Packager | |||
size = 1597440 | |||
arch = any | |||
license = GPLv2 | |||
depend = fontconfig | |||
depend = xorg-fonts-encodings | |||
depend = xorg-font-utils | |||
makepkgopt = strip | |||
makepkgopt = docs | |||
makepkgopt = !libtool | |||
makepkgopt = !staticlibs | |||
makepkgopt = emptydirs | |||
makepkgopt = zipman | |||
makepkgopt = purge | |||
makepkgopt = !upx | |||
makepkgopt = !debug |
@@ -0,0 +1,77 @@ | |||
Ohsnap is a monospaced bitmap font based on Artwiz Snap (http://artwizaleczapka.sourceforge.net/). | |||
There are ISO8859-1 versions, versions with status icons, consolefonts and I started working on ISO10646-1 versions. All have bold too. | |||
There are four sizes now: 6x11, 7x12, 6x13 and 7x14. | |||
each size has 8 fonts, for example: | |||
ohsnap6x11r.pcf (6x11 medium iso8859-1) | |||
ohsnap6x11b.pcf (6x11 bold iso8859-1) | |||
ohsnap6x11r.icons.pcf (6x11 medium with status icons) | |||
ohsnap6x11b.icons.pcf (6x11 bold with status icons) | |||
ohsnapu6x11r.pcf (6x11 medium iso10646-1) | |||
ohsnapu6x11b.pcf (6x11 bold iso10646-1) | |||
ohsnap6x11r.psfu (6x11 medium consolefont) | |||
ohsnap6x11b.psfu (6x11 bold consolefont) | |||
You can use xfontsel to get the full names. | |||
To install manually system-wide, copy the .pcf files to /usr/share/fonts/local and the .psfu files to /usr/share/kbd/consolefonts. | |||
Then do: | |||
sudo fc-cache -fs | |||
sudo mkfontscale /usr/share/fonts/local | |||
sudo mkfontdir /usr/share/fonts/local | |||
And make sure you have something like this in your .xinitrc: | |||
xset +fp /usr/share/fonts/local | |||
xset fp rehash | |||
I would recommend trying to use the ISO10646-1 versions first and use the ISO8859-1 versions as fallback. | |||
To use the ISO10646-1: | |||
-*-ohsnapu-medium-r-normal-*-11-*-*-*-*-*-*-* | |||
-*-ohsnapu-bold-r-normal-*-11-*-*-*-*-*-*-* | |||
For the ISO8859-1: | |||
-*-ohsnap-medium-r-normal-*-11-*-*-*-*-*-*-* | |||
-*-ohsnap-bold-r-normal-*-11-*-*-*-*-*-*-* | |||
The icon versions have status "icons" that I drew into the font. The inspiration for the icons came from lokaltog (https://github.com/Lokaltog) and his post in the dwm | |||
(http://dwm.suckless.org) hackers thread on the Arch Linux forums (https://bbs.archlinux.org/viewtopic.php?pid=724236#p724236). | |||
To use the icon versions: | |||
-*-ohsnap.icons-medium-r-normal-*-11-*-*-*-*-*-*-* | |||
-*-ohsnap.icons-bold-r-normal-*-11-*-*-*-*-*-*-* | |||
You can use xfd to view the font. (xfd -fn -misc-ohsnap.icons-medium-r-normal--11-79-100-100-c-60-iso8859-1) | |||
From a terminal, you can do something like: | |||
echo -e '\xB7' to display a clock icon for example and then copy the output to a script or your config.h. | |||
You can also use pcf2bdf to convert the .pcf fonts to .bdf and then use gbdfed (http://sofia.nmsu.edu/~mleisher/Software/gbdfed/) to view and edit the font. | |||
To convert from .pcf to .bdf: (pcf2bdf -o ohsnap6x11r.bdf ohsnap6x11r.pcf). | |||
Then use bdftopcf to convert it back: (bdftopcf -o ohsnap6x11r.pcf ohsnap6x11r.bdf). | |||
Reinstall. | |||
You can check out the ohsnap thread on the forums (https://bbs.archlinux.org/viewtopic.php?id=130562&p=1) for screenshots and discussion. | |||
A better solution for icons (at least for dwm, which I originally made these for) might be to use stlarch_font (https:sourceforge.net/projects/stlarch_font/). | |||
See the README.stlarch for more info. | |||
To try the consolefont, you can do: setfont ohsnap6x11r for example. See your distros documentation for a more permanent solution. | |||
Created by stlarch (stlarchie@gmail.com) | |||
Released under GPLv2 license. (http://www.gnu.org/licenses/gpl-2.0.html) | |||
Changes in version 1.7.5: Added consolefonts and ISO10646-1 versions and dropped the 8x15 and 8x17 sizes. | |||
Changes in version 1.7.6: Fixes. | |||
Changes in version 1.7.7: A few more fixes to the 6x11 bold. | |||
Changes in version 1.7.8: A couple fixes to the iso10646-1 versions. | |||
Changes in version 1.7.9: Added a new size, 6x13, and a few other changes, mainly to the 7x14. | |||
Changes in version 1.8.0: Fixed the mapping table on the consolefonts. |
@@ -0,0 +1,29 @@ | |||
# Maintainer: John Jenkins shaggytwodope@gmail.com | |||
# Contributor: Chirantan Ekbote <chirantan.ekbote at gmail.com> | |||
# Contributor: Bartlomiej Piotrowski <nospam@bpiotrowski.pl> | |||
# Contributor: res <andres87p@gmail.com> | |||
pkgname=uclibc | |||
_pkgname=${pkgname/c/C} | |||
pkgver=0.9.33.2 | |||
pkgrel=1 | |||
pkgdesc='C library for developing embedded Linux systems' | |||
arch=('i686' 'x86_64') | |||
license=('LGPL') | |||
url="http://www.uclibc.org/" | |||
source=(http://www.uclibc.org/downloads/${_pkgname}-${pkgver}.tar.xz) | |||
build() { | |||
cd "$_pkgname-$pkgver" | |||
msg "Running make menuconfig" | |||
make menuconfig | |||
make | |||
} | |||
package() { | |||
cd "$_pkgname-$pkgver" | |||
make PREFIX="$pkgdir" install | |||
} | |||
md5sums=('73e6fe215648d02246f4d195b25fb17e') |
@@ -0,0 +1,21 @@ | |||
# Generated by makepkg 4.2.0 | |||
# using fakeroot version 1.20.2 | |||
# Tue Dec 30 22:48:36 UTC 2014 | |||
pkgname = uclibc | |||
pkgver = 0.9.33.2-1 | |||
pkgdesc = C library for developing embedded Linux systems | |||
url = http://www.uclibc.org/ | |||
builddate = 1419979716 | |||
packager = Unknown Packager | |||
size = 1773568 | |||
arch = x86_64 | |||
license = LGPL | |||
makepkgopt = strip | |||
makepkgopt = docs | |||
makepkgopt = !libtool | |||
makepkgopt = !staticlibs | |||
makepkgopt = emptydirs | |||
makepkgopt = zipman | |||
makepkgopt = purge | |||
makepkgopt = !upx | |||
makepkgopt = !debug |
@@ -0,0 +1 @@ | |||
ld64-uClibc-0.9.33.2.so |
@@ -0,0 +1 @@ | |||
libuClibc-0.9.33.2.so |
@@ -0,0 +1 @@ | |||
libcrypt-0.9.33.2.so |
@@ -0,0 +1 @@ | |||
libdl-0.9.33.2.so |
@@ -0,0 +1 @@ | |||
libm-0.9.33.2.so |
@@ -0,0 +1 @@ | |||
librt-0.9.33.2.so |
@@ -0,0 +1 @@ | |||
#include <linux/a.out.h> |
@@ -0,0 +1,42 @@ | |||
/* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
#ifndef _ALLOCA_H | |||
#define _ALLOCA_H 1 | |||
#include <features.h> | |||
#define __need_size_t | |||
#include <stddef.h> | |||
__BEGIN_DECLS | |||
/* Remove any previous definitions. */ | |||
#undef alloca | |||
/* Allocate a block that will be freed when the calling function exits. */ | |||
extern void *alloca (size_t __size) __THROW; | |||
#ifdef __GNUC__ | |||
# define alloca(size) __builtin_alloca (size) | |||
#endif /* GCC. */ | |||
__END_DECLS | |||
#endif /* alloca.h */ |
@@ -0,0 +1,48 @@ | |||
/* Header describing `ar' archive file format. | |||
Copyright (C) 1996 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
#ifndef _AR_H | |||
#define _AR_H 1 | |||
#include <sys/cdefs.h> | |||
/* Archive files start with the ARMAG identifying string. Then follows a | |||
`struct ar_hdr', and as many bytes of member file data as its `ar_size' | |||
member indicates, for each member file. */ | |||
#define ARMAG "!<arch>\n" /* String that begins an archive file. */ | |||
#define SARMAG 8 /* Size of that string. */ | |||
#define ARFMAG "`\n" /* String in ar_fmag at end of each header. */ | |||
__BEGIN_DECLS | |||
struct ar_hdr | |||
{ | |||
char ar_name[16]; /* Member file name, sometimes / terminated. */ | |||
char ar_date[12]; /* File date, decimal seconds since Epoch. */ | |||
char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */ | |||
char ar_mode[8]; /* File mode, in ASCII octal. */ | |||
char ar_size[10]; /* File size, in ASCII decimal. */ | |||
char ar_fmag[2]; /* Always contains ARFMAG. */ | |||
}; | |||
__END_DECLS | |||
#endif /* ar.h */ |
@@ -0,0 +1,105 @@ | |||
/* | |||
* Copyright (c) 1983, 1989, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 4. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* @(#)ftp.h 8.1 (Berkeley) 6/2/93 | |||
*/ | |||
#ifndef _ARPA_FTP_H | |||
#define _ARPA_FTP_H 1 | |||
/* Definitions for FTP; see RFC-765. */ | |||
/* | |||
* Reply codes. | |||
*/ | |||
#define PRELIM 1 /* positive preliminary */ | |||
#define COMPLETE 2 /* positive completion */ | |||
#define CONTINUE 3 /* positive intermediate */ | |||
#define TRANSIENT 4 /* transient negative completion */ | |||
#define ERROR 5 /* permanent negative completion */ | |||
/* | |||
* Type codes | |||
*/ | |||
#define TYPE_A 1 /* ASCII */ | |||
#define TYPE_E 2 /* EBCDIC */ | |||
#define TYPE_I 3 /* image */ | |||
#define TYPE_L 4 /* local byte size */ | |||
#ifdef FTP_NAMES | |||
char *typenames[] = {"0", "ASCII", "EBCDIC", "Image", "Local" }; | |||
#endif | |||
/* | |||
* Form codes | |||
*/ | |||
#define FORM_N 1 /* non-print */ | |||
#define FORM_T 2 /* telnet format effectors */ | |||
#define FORM_C 3 /* carriage control (ASA) */ | |||
#ifdef FTP_NAMES | |||
char *formnames[] = {"0", "Nonprint", "Telnet", "Carriage-control" }; | |||
#endif | |||
/* | |||
* Structure codes | |||
*/ | |||
#define STRU_F 1 /* file (no record structure) */ | |||
#define STRU_R 2 /* record structure */ | |||
#define STRU_P 3 /* page structure */ | |||
#ifdef FTP_NAMES | |||
char *strunames[] = {"0", "File", "Record", "Page" }; | |||
#endif | |||
/* | |||
* Mode types | |||
*/ | |||
#define MODE_S 1 /* stream */ | |||
#define MODE_B 2 /* block */ | |||
#define MODE_C 3 /* compressed */ | |||
#ifdef FTP_NAMES | |||
char *modenames[] = {"0", "Stream", "Block", "Compressed" }; | |||
#endif | |||
/* | |||
* Record Tokens | |||
*/ | |||
#define REC_ESC '\377' /* Record-mode Escape */ | |||
#define REC_EOR '\001' /* Record-mode End-of-Record */ | |||
#define REC_EOF '\002' /* Record-mode End-of-File */ | |||
/* | |||
* Block Header | |||
*/ | |||
#define BLK_EOR 0x80 /* Block is End-of-Record */ | |||
#define BLK_EOF 0x40 /* Block is End-of-File */ | |||
#define BLK_ERRORS 0x20 /* Block is suspected of containing errors */ | |||
#define BLK_RESTART 0x10 /* Block is Restart Marker */ | |||
#define BLK_BYTECOUNT 2 /* Bytes in this block */ | |||
#endif /* arpa/ftp.h */ |
@@ -0,0 +1,112 @@ | |||
/* Copyright (C) 1997, 1999, 2000, 2001, 2004 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
#ifndef _ARPA_INET_H | |||
#define _ARPA_INET_H 1 | |||
#include <features.h> | |||
#include <netinet/in.h> /* To define `struct in_addr'. */ | |||
/* Type for length arguments in socket calls. */ | |||
#ifndef __socklen_t_defined | |||
typedef __socklen_t socklen_t; | |||
# define __socklen_t_defined | |||
#endif | |||
__BEGIN_DECLS | |||
/* Convert Internet host address from numbers-and-dots notation in CP | |||
into binary data in network byte order. */ | |||
extern in_addr_t inet_addr (__const char *__cp) __THROW; | |||
/* Return the local host address part of the Internet address in IN. */ | |||
extern in_addr_t inet_lnaof (struct in_addr __in) __THROW; | |||
/* Make Internet host address in network byte order by combining the | |||
network number NET with the local address HOST. */ | |||
extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host) | |||
__THROW; | |||
/* Return network number part of the Internet address IN. */ | |||
extern in_addr_t inet_netof (struct in_addr __in) __THROW; | |||
/* Extract the network number in network byte order from the address | |||
in numbers-and-dots natation starting at CP. */ | |||
extern in_addr_t inet_network (__const char *__cp) __THROW; | |||
/* Convert Internet number in IN to ASCII representation. The return value | |||
is a pointer to an internal array containing the string. */ | |||
extern char *inet_ntoa (struct in_addr __in) __THROW; | |||
#ifdef __UCLIBC__ | |||
/* Recursion-safe flavor */ | |||
extern char *inet_ntoa_r (struct in_addr __in, char *__buf) __THROW; | |||
#endif | |||
/* Convert from presentation format of an Internet number in buffer | |||
starting at CP to the binary network format and store result for | |||
interface type AF in buffer starting at BUF. */ | |||
extern int inet_pton (int __af, __const char *__restrict __cp, | |||
void *__restrict __buf) __THROW; | |||
/* Convert a Internet address in binary network format for interface | |||
type AF in buffer starting at CP to presentation form and place | |||
result in buffer of length LEN astarting at BUF. */ | |||
extern __const char *inet_ntop (int __af, __const void *__restrict __cp, | |||
char *__restrict __buf, socklen_t __len) | |||
__THROW; | |||
/* The following functions are not part of XNS 5.2. */ | |||
#ifdef __USE_MISC | |||
/* Convert Internet host address from numbers-and-dots notation in CP | |||
into binary data and store the result in the structure INP. */ | |||
extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW; | |||
#if 0 | |||
/* Format a network number NET into presentation format and place result | |||
in buffer starting at BUF with length of LEN bytes. */ | |||
extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW; | |||
/* Convert network number for interface type AF in buffer starting at | |||
CP to presentation format. The result will specifiy BITS bits of | |||
the number. */ | |||
extern char *inet_net_ntop (int __af, __const void *__cp, int __bits, | |||
char *__buf, size_t __len) __THROW; | |||
/* Convert network number for interface type AF from presentation in | |||
buffer starting at CP to network format and store result int | |||
buffer starting at BUF of size LEN. */ | |||
extern int inet_net_pton (int __af, __const char *__cp, | |||
void *__buf, size_t __len) __THROW; | |||
/* Convert ASCII representation in hexadecimal form of the Internet | |||
address to binary form and place result in buffer of length LEN | |||
starting at BUF. */ | |||
extern unsigned int inet_nsap_addr (__const char *__cp, | |||
unsigned char *__buf, int __len) __THROW; | |||
/* Convert internet address in binary form in LEN bytes starting at CP | |||
a presentation form and place result in BUF. */ | |||
extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, | |||
char *__buf) __THROW; | |||
#endif | |||
#endif | |||
__END_DECLS | |||
#endif /* arpa/inet.h */ |
@@ -0,0 +1,550 @@ | |||
/* | |||
* Copyright (c) 1983, 1989, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 4. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
*/ | |||
/* | |||
* Copyright (c) 1996-1999 by Internet Software Consortium. | |||
* | |||
* Permission to use, copy, modify, and distribute this software for any | |||
* purpose with or without fee is hereby granted, provided that the above | |||
* copyright notice and this permission notice appear in all copies. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS | |||
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES | |||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE | |||
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR | |||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS | |||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | |||
* SOFTWARE. | |||
*/ | |||
/* | |||
* $BINDId: nameser.h,v 8.37 2000/03/30 21:16:49 vixie Exp $ | |||
*/ | |||
#ifndef _ARPA_NAMESER_H_ | |||
#define _ARPA_NAMESER_H_ | |||
#define BIND_4_COMPAT | |||
#include <sys/param.h> | |||
#if (!defined(BSD)) || (BSD < 199306) | |||
# include <sys/bitypes.h> | |||
#else | |||
# include <sys/types.h> | |||
#endif | |||
#include <sys/cdefs.h> | |||
/* | |||
* Revision information. This is the release date in YYYYMMDD format. | |||
* It can change every day so the right thing to do with it is use it | |||
* in preprocessor commands such as "#if (__NAMESER > 19931104)". Do not | |||
* compare for equality; rather, use it to determine whether your libbind.a | |||
* contains a new enough lib/nameser/ to support the feature you need. | |||
*/ | |||
#define __NAMESER 19991006 /* New interface version stamp. */ | |||
/* | |||
* Define constants based on RFC 883, RFC 1034, RFC 1035 | |||
*/ | |||
#define NS_PACKETSZ 512 /* maximum packet size */ | |||
#define NS_MAXDNAME 1025 /* maximum domain name */ | |||
#define NS_MAXCDNAME 255 /* maximum compressed domain name */ | |||
#define NS_MAXLABEL 63 /* maximum length of domain label */ | |||
#define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */ | |||
#define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */ | |||
#define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */ | |||
#define NS_INT32SZ 4 /* #/bytes of data in a u_int32_t */ | |||
#define NS_INT16SZ 2 /* #/bytes of data in a u_int16_t */ | |||
#define NS_INT8SZ 1 /* #/bytes of data in a u_int8_t */ | |||
#define NS_INADDRSZ 4 /* IPv4 T_A */ | |||
#define NS_IN6ADDRSZ 16 /* IPv6 T_AAAA */ | |||
#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */ | |||
#define NS_DEFAULTPORT 53 /* For both TCP and UDP. */ | |||
/* | |||
* These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord() | |||
* in synch with it. | |||
*/ | |||
typedef enum __ns_sect { | |||
ns_s_qd = 0, /* Query: Question. */ | |||
ns_s_zn = 0, /* Update: Zone. */ | |||
ns_s_an = 1, /* Query: Answer. */ | |||
ns_s_pr = 1, /* Update: Prerequisites. */ | |||
ns_s_ns = 2, /* Query: Name servers. */ | |||
ns_s_ud = 2, /* Update: Update. */ | |||
ns_s_ar = 3, /* Query|Update: Additional records. */ | |||
ns_s_max = 4 | |||
} ns_sect; | |||
/* | |||
* This is a message handle. It is caller allocated and has no dynamic data. | |||
* This structure is intended to be opaque to all but ns_parse.c, thus the | |||
* leading _'s on the member names. Use the accessor functions, not the _'s. | |||
*/ | |||
typedef struct __ns_msg { | |||
const u_char *_msg, *_eom; | |||
u_int16_t _id, _flags, _counts[ns_s_max]; | |||
const u_char *_sections[ns_s_max]; | |||
ns_sect _sect; | |||
int _rrnum; | |||
const u_char *_ptr; | |||
} ns_msg; | |||
/* Accessor macros - this is part of the public interface. */ | |||
#define ns_msg_id(handle) ((handle)._id + 0) | |||
#define ns_msg_base(handle) ((handle)._msg + 0) | |||
#define ns_msg_end(handle) ((handle)._eom + 0) | |||
#define ns_msg_size(handle) ((handle)._eom - (handle)._msg) | |||
#define ns_msg_count(handle, section) ((handle)._counts[section] + 0) | |||
/* | |||
* This is a parsed record. It is caller allocated and has no dynamic data. | |||
*/ | |||
typedef struct __ns_rr { | |||
char name[NS_MAXDNAME]; | |||
u_int16_t type; | |||
u_int16_t rr_class; | |||
u_int32_t ttl; | |||
u_int16_t rdlength; | |||
const u_char * rdata; | |||
} ns_rr; | |||
/* Accessor macros - this is part of the public interface. */ | |||
#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".") | |||
#define ns_rr_type(rr) ((ns_type)((rr).type + 0)) | |||
#define ns_rr_class(rr) ((ns_class)((rr).rr_class + 0)) | |||
#define ns_rr_ttl(rr) ((rr).ttl + 0) | |||
#define ns_rr_rdlen(rr) ((rr).rdlength + 0) | |||
#define ns_rr_rdata(rr) ((rr).rdata + 0) | |||
/* | |||
* These don't have to be in the same order as in the packet flags word, | |||
* and they can even overlap in some cases, but they will need to be kept | |||
* in synch with ns_parse.c:ns_flagdata[]. | |||
*/ | |||
typedef enum __ns_flag { | |||
ns_f_qr, /* Question/Response. */ | |||
ns_f_opcode, /* Operation code. */ | |||
ns_f_aa, /* Authoritative Answer. */ | |||
ns_f_tc, /* Truncation occurred. */ | |||
ns_f_rd, /* Recursion Desired. */ | |||
ns_f_ra, /* Recursion Available. */ | |||
ns_f_z, /* MBZ. */ | |||
ns_f_ad, /* Authentic Data (DNSSEC). */ | |||
ns_f_cd, /* Checking Disabled (DNSSEC). */ | |||
ns_f_rcode, /* Response code. */ | |||
ns_f_max | |||
} ns_flag; | |||
/* | |||
* Currently defined opcodes. | |||
*/ | |||
typedef enum __ns_opcode { | |||
ns_o_query = 0, /* Standard query. */ | |||
ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */ | |||
ns_o_status = 2, /* Name server status query (unsupported). */ | |||
/* Opcode 3 is undefined/reserved. */ | |||
ns_o_notify = 4, /* Zone change notification. */ | |||
ns_o_update = 5, /* Zone update message. */ | |||
ns_o_max = 6 | |||
} ns_opcode; | |||
/* | |||
* Currently defined response codes. | |||
*/ | |||
typedef enum __ns_rcode { | |||
ns_r_noerror = 0, /* No error occurred. */ | |||
ns_r_formerr = 1, /* Format error. */ | |||
ns_r_servfail = 2, /* Server failure. */ | |||
ns_r_nxdomain = 3, /* Name error. */ | |||
ns_r_notimpl = 4, /* Unimplemented. */ | |||
ns_r_refused = 5, /* Operation refused. */ | |||
/* these are for BIND_UPDATE */ | |||
ns_r_yxdomain = 6, /* Name exists */ | |||
ns_r_yxrrset = 7, /* RRset exists */ | |||
ns_r_nxrrset = 8, /* RRset does not exist */ | |||
ns_r_notauth = 9, /* Not authoritative for zone */ | |||
ns_r_notzone = 10, /* Zone of record different from zone section */ | |||
ns_r_max = 11, | |||
/* The following are TSIG extended errors */ | |||
ns_r_badsig = 16, | |||
ns_r_badkey = 17, | |||
ns_r_badtime = 18 | |||
} ns_rcode; | |||
/* BIND_UPDATE */ | |||
typedef enum __ns_update_operation { | |||
ns_uop_delete = 0, | |||
ns_uop_add = 1, | |||
ns_uop_max = 2 | |||
} ns_update_operation; | |||
/* | |||
* This structure is used for TSIG authenticated messages | |||
*/ | |||
struct ns_tsig_key { | |||
char name[NS_MAXDNAME], alg[NS_MAXDNAME]; | |||
unsigned char *data; | |||
int len; | |||
}; | |||
typedef struct ns_tsig_key ns_tsig_key; | |||
/* | |||
* This structure is used for TSIG authenticated TCP messages | |||
*/ | |||
struct ns_tcp_tsig_state { | |||
int counter; | |||
struct dst_key *key; | |||
void *ctx; | |||
unsigned char sig[NS_PACKETSZ]; | |||
int siglen; | |||
}; | |||
typedef struct ns_tcp_tsig_state ns_tcp_tsig_state; | |||
#define NS_TSIG_FUDGE 300 | |||
#define NS_TSIG_TCP_COUNT 100 | |||
#define NS_TSIG_ALG_HMAC_MD5 "HMAC-MD5.SIG-ALG.REG.INT" | |||
#define NS_TSIG_ERROR_NO_TSIG -10 | |||
#define NS_TSIG_ERROR_NO_SPACE -11 | |||
#define NS_TSIG_ERROR_FORMERR -12 | |||
/* | |||
* Currently defined type values for resources and queries. | |||
*/ | |||
typedef enum __ns_type { | |||
ns_t_invalid = 0, /* Cookie. */ | |||
ns_t_a = 1, /* Host address. */ | |||
ns_t_ns = 2, /* Authoritative server. */ | |||
ns_t_md = 3, /* Mail destination. */ | |||
ns_t_mf = 4, /* Mail forwarder. */ | |||
ns_t_cname = 5, /* Canonical name. */ | |||
ns_t_soa = 6, /* Start of authority zone. */ | |||
ns_t_mb = 7, /* Mailbox domain name. */ | |||
ns_t_mg = 8, /* Mail group member. */ | |||
ns_t_mr = 9, /* Mail rename name. */ | |||
ns_t_null = 10, /* Null resource record. */ | |||
ns_t_wks = 11, /* Well known service. */ | |||
ns_t_ptr = 12, /* Domain name pointer. */ | |||
ns_t_hinfo = 13, /* Host information. */ | |||
ns_t_minfo = 14, /* Mailbox information. */ | |||
ns_t_mx = 15, /* Mail routing information. */ | |||
ns_t_txt = 16, /* Text strings. */ | |||
ns_t_rp = 17, /* Responsible person. */ | |||
ns_t_afsdb = 18, /* AFS cell database. */ | |||
ns_t_x25 = 19, /* X_25 calling address. */ | |||
ns_t_isdn = 20, /* ISDN calling address. */ | |||
ns_t_rt = 21, /* Router. */ | |||
ns_t_nsap = 22, /* NSAP address. */ | |||
ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */ | |||
ns_t_sig = 24, /* Security signature. */ | |||
ns_t_key = 25, /* Security key. */ | |||
ns_t_px = 26, /* X.400 mail mapping. */ | |||
ns_t_gpos = 27, /* Geographical position (withdrawn). */ | |||
ns_t_aaaa = 28, /* Ip6 Address. */ | |||
ns_t_loc = 29, /* Location Information. */ | |||
ns_t_nxt = 30, /* Next domain (security). */ | |||
ns_t_eid = 31, /* Endpoint identifier. */ | |||
ns_t_nimloc = 32, /* Nimrod Locator. */ | |||
ns_t_srv = 33, /* Server Selection. */ | |||
ns_t_atma = 34, /* ATM Address */ | |||
ns_t_naptr = 35, /* Naming Authority PoinTeR */ | |||
ns_t_kx = 36, /* Key Exchange */ | |||
ns_t_cert = 37, /* Certification record */ | |||
ns_t_a6 = 38, /* IPv6 address (deprecated, use ns_t_aaaa) */ | |||
ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */ | |||
ns_t_sink = 40, /* Kitchen sink (experimentatl) */ | |||
ns_t_opt = 41, /* EDNS0 option (meta-RR) */ | |||
ns_t_tsig = 250, /* Transaction signature. */ | |||
ns_t_ixfr = 251, /* Incremental zone transfer. */ | |||
ns_t_axfr = 252, /* Transfer zone of authority. */ | |||
ns_t_mailb = 253, /* Transfer mailbox records. */ | |||
ns_t_maila = 254, /* Transfer mail agent records. */ | |||
ns_t_any = 255, /* Wildcard match. */ | |||
ns_t_zxfr = 256, /* BIND-specific, nonstandard. */ | |||
ns_t_max = 65536 | |||
} ns_type; | |||
/* Exclusively a QTYPE? (not also an RTYPE) */ | |||
#define ns_t_qt_p(t) (ns_t_xfr_p(t) || (t) == ns_t_any || \ | |||
(t) == ns_t_mailb || (t) == ns_t_maila) | |||
/* Some kind of meta-RR? (not a QTYPE, but also not an RTYPE) */ | |||
#define ns_t_mrr_p(t) ((t) == ns_t_tsig || (t) == ns_t_opt) | |||
/* Exclusively an RTYPE? (not also a QTYPE or a meta-RR) */ | |||
#define ns_t_rr_p(t) (!ns_t_qt_p(t) && !ns_t_mrr_p(t)) | |||
#define ns_t_udp_p(t) ((t) != ns_t_axfr && (t) != ns_t_zxfr) | |||
#define ns_t_xfr_p(t) ((t) == ns_t_axfr || (t) == ns_t_ixfr || \ | |||
(t) == ns_t_zxfr) | |||
/* | |||
* Values for class field | |||
*/ | |||
typedef enum __ns_class { | |||
ns_c_invalid = 0, /* Cookie. */ | |||
ns_c_in = 1, /* Internet. */ | |||
ns_c_2 = 2, /* unallocated/unsupported. */ | |||
ns_c_chaos = 3, /* MIT Chaos-net. */ | |||
ns_c_hs = 4, /* MIT Hesiod. */ | |||
/* Query class values which do not appear in resource records */ | |||
ns_c_none = 254, /* for prereq. sections in update requests */ | |||
ns_c_any = 255, /* Wildcard match. */ | |||
ns_c_max = 65536 | |||
} ns_class; | |||
/* DNSSEC constants. */ | |||
typedef enum __ns_key_types { | |||
ns_kt_rsa = 1, /* key type RSA/MD5 */ | |||
ns_kt_dh = 2, /* Diffie Hellman */ | |||
ns_kt_dsa = 3, /* Digital Signature Standard (MANDATORY) */ | |||
ns_kt_private = 254 /* Private key type starts with OID */ | |||
} ns_key_types; | |||
typedef enum __ns_cert_types { | |||
cert_t_pkix = 1, /* PKIX (X.509v3) */ | |||
cert_t_spki = 2, /* SPKI */ | |||
cert_t_pgp = 3, /* PGP */ | |||
cert_t_url = 253, /* URL private type */ | |||
cert_t_oid = 254 /* OID private type */ | |||
} ns_cert_types; | |||
/* Flags field of the KEY RR rdata. */ | |||
#define NS_KEY_TYPEMASK 0xC000 /* Mask for "type" bits */ | |||
#define NS_KEY_TYPE_AUTH_CONF 0x0000 /* Key usable for both */ | |||
#define NS_KEY_TYPE_CONF_ONLY 0x8000 /* Key usable for confidentiality */ | |||
#define NS_KEY_TYPE_AUTH_ONLY 0x4000 /* Key usable for authentication */ | |||
#define NS_KEY_TYPE_NO_KEY 0xC000 /* No key usable for either; no key */ | |||
/* The type bits can also be interpreted independently, as single bits: */ | |||
#define NS_KEY_NO_AUTH 0x8000 /* Key unusable for authentication */ | |||
#define NS_KEY_NO_CONF 0x4000 /* Key unusable for confidentiality */ | |||
#define NS_KEY_RESERVED2 0x2000 /* Security is *mandatory* if bit=0 */ | |||
#define NS_KEY_EXTENDED_FLAGS 0x1000 /* reserved - must be zero */ | |||
#define NS_KEY_RESERVED4 0x0800 /* reserved - must be zero */ | |||
#define NS_KEY_RESERVED5 0x0400 /* reserved - must be zero */ | |||
#define NS_KEY_NAME_TYPE 0x0300 /* these bits determine the type */ | |||
#define NS_KEY_NAME_USER 0x0000 /* key is assoc. with user */ | |||
#define NS_KEY_NAME_ENTITY 0x0200 /* key is assoc. with entity eg host */ | |||
#define NS_KEY_NAME_ZONE 0x0100 /* key is zone key */ | |||
#define NS_KEY_NAME_RESERVED 0x0300 /* reserved meaning */ | |||
#define NS_KEY_RESERVED8 0x0080 /* reserved - must be zero */ | |||
#define NS_KEY_RESERVED9 0x0040 /* reserved - must be zero */ | |||
#define NS_KEY_RESERVED10 0x0020 /* reserved - must be zero */ | |||
#define NS_KEY_RESERVED11 0x0010 /* reserved - must be zero */ | |||
#define NS_KEY_SIGNATORYMASK 0x000F /* key can sign RR's of same name */ | |||
#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED2 | \ | |||
NS_KEY_RESERVED4 | \ | |||
NS_KEY_RESERVED5 | \ | |||
NS_KEY_RESERVED8 | \ | |||
NS_KEY_RESERVED9 | \ | |||
NS_KEY_RESERVED10 | \ | |||
NS_KEY_RESERVED11 ) | |||
#define NS_KEY_RESERVED_BITMASK2 0xFFFF /* no bits defined here */ | |||
/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */ | |||
#define NS_ALG_MD5RSA 1 /* MD5 with RSA */ | |||
#define NS_ALG_DH 2 /* Diffie Hellman KEY */ | |||
#define NS_ALG_DSA 3 /* DSA KEY */ | |||
#define NS_ALG_DSS NS_ALG_DSA | |||
#define NS_ALG_EXPIRE_ONLY 253 /* No alg, no security */ | |||
#define NS_ALG_PRIVATE_OID 254 /* Key begins with OID giving alg */ | |||
/* Protocol values */ | |||
/* value 0 is reserved */ | |||
#define NS_KEY_PROT_TLS 1 | |||
#define NS_KEY_PROT_EMAIL 2 | |||
#define NS_KEY_PROT_DNSSEC 3 | |||
#define NS_KEY_PROT_IPSEC 4 | |||
#define NS_KEY_PROT_ANY 255 | |||
/* Signatures */ | |||
#define NS_MD5RSA_MIN_BITS 512 /* Size of a mod or exp in bits */ | |||
#define NS_MD5RSA_MAX_BITS 2552 | |||
/* Total of binary mod and exp */ | |||
#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3) | |||
/* Max length of text sig block */ | |||
#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4) | |||
#define NS_MD5RSA_MIN_SIZE ((NS_MD5RSA_MIN_BITS+7)/8) | |||
#define NS_MD5RSA_MAX_SIZE ((NS_MD5RSA_MAX_BITS+7)/8) | |||
#define NS_DSA_SIG_SIZE 41 | |||
#define NS_DSA_MIN_SIZE 213 | |||
#define NS_DSA_MAX_BYTES 405 | |||
/* Offsets into SIG record rdata to find various values */ | |||
#define NS_SIG_TYPE 0 /* Type flags */ | |||
#define NS_SIG_ALG 2 /* Algorithm */ | |||
#define NS_SIG_LABELS 3 /* How many labels in name */ | |||
#define NS_SIG_OTTL 4 /* Original TTL */ | |||
#define NS_SIG_EXPIR 8 /* Expiration time */ | |||
#define NS_SIG_SIGNED 12 /* Signature time */ | |||
#define NS_SIG_FOOT 16 /* Key footprint */ | |||
#define NS_SIG_SIGNER 18 /* Domain name of who signed it */ | |||
/* How RR types are represented as bit-flags in NXT records */ | |||
#define NS_NXT_BITS 8 | |||
#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS))) | |||
#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS))) | |||
#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS))) | |||
#define NS_NXT_MAX 127 | |||
/* | |||
* Inline versions of get/put short/long. Pointer is advanced. | |||
*/ | |||
#define NS_GET16(s, cp) do { \ | |||
register u_char *t_cp = (u_char *)(cp); \ | |||
(s) = ((u_int16_t)t_cp[0] << 8) \ | |||
| ((u_int16_t)t_cp[1]) \ | |||
; \ | |||
(cp) += NS_INT16SZ; \ | |||
} while (0) | |||
#define NS_GET32(l, cp) do { \ | |||
register u_char *t_cp = (u_char *)(cp); \ | |||
(l) = ((u_int32_t)t_cp[0] << 24) \ | |||
| ((u_int32_t)t_cp[1] << 16) \ | |||
| ((u_int32_t)t_cp[2] << 8) \ | |||
| ((u_int32_t)t_cp[3]) \ | |||
; \ | |||
(cp) += NS_INT32SZ; \ | |||
} while (0) | |||
#define NS_PUT16(s, cp) do { \ | |||
register u_int16_t t_s = (u_int16_t)(s); \ | |||
register u_char *t_cp = (u_char *)(cp); \ | |||
*t_cp++ = t_s >> 8; \ | |||
*t_cp = t_s; \ | |||
(cp) += NS_INT16SZ; \ | |||
} while (0) | |||
#define NS_PUT32(l, cp) do { \ | |||
register u_int32_t t_l = (u_int32_t)(l); \ | |||
register u_char *t_cp = (u_char *)(cp); \ | |||
*t_cp++ = t_l >> 24; \ | |||
*t_cp++ = t_l >> 16; \ | |||
*t_cp++ = t_l >> 8; \ | |||
*t_cp = t_l; \ | |||
(cp) += NS_INT32SZ; \ | |||
} while (0) | |||
/* | |||
* ANSI C identifier hiding for bind's lib/nameser. | |||
*/ | |||
#define ns_get16 __ns_get16 | |||
#define ns_get32 __ns_get32 | |||
#define ns_put16 __ns_put16 | |||
#define ns_put32 __ns_put32 | |||
#define ns_initparse __ns_initparse | |||
#define ns_skiprr __ns_skiprr | |||
#define ns_parserr __ns_parserr | |||
#define ns_sprintrr __ns_sprintrr | |||
#define ns_sprintrrf __ns_sprintrrf | |||
#define ns_format_ttl __ns_format_ttl | |||
#define ns_parse_ttl __ns_parse_ttl | |||
#define ns_datetosecs __ns_datetosecs | |||
#define ns_name_ntol __ns_name_ntol | |||
#define ns_name_ntop __ns_name_ntop | |||
#define ns_name_pton __ns_name_pton | |||
#define ns_name_unpack __ns_name_unpack | |||
#define ns_name_pack __ns_name_pack | |||
#define ns_name_compress __ns_name_compress | |||
#define ns_name_uncompress __ns_name_uncompress | |||
#define ns_name_skip __ns_name_skip | |||
#define ns_name_rollback __ns_name_rollback | |||
#define ns_sign __ns_sign | |||
#define ns_sign_tcp __ns_sign_tcp | |||
#define ns_sign_tcp_init __ns_sign_tcp_init | |||
#define ns_find_tsig __ns_find_tsig | |||
#define ns_verify __ns_verify | |||
#define ns_verify_tcp __ns_verify_tcp | |||
#define ns_verify_tcp_init __ns_verify_tcp_init | |||
#define ns_samedomain __ns_samedomain | |||
#define ns_subdomain __ns_subdomain | |||
#define ns_makecanon __ns_makecanon | |||
#define ns_samename __ns_samename | |||
__BEGIN_DECLS | |||
int ns_msg_getflag (ns_msg, int) __THROW; | |||
u_int ns_get16 (const u_char *) __THROW; | |||
u_long ns_get32 (const u_char *) __THROW; | |||
void ns_put16 (u_int, u_char *) __THROW; | |||
void ns_put32 (u_long, u_char *) __THROW; | |||
int ns_initparse (const u_char *, int, ns_msg *) __THROW; | |||
int ns_skiprr (const u_char *, const u_char *, ns_sect, int) | |||
__THROW; | |||
int ns_parserr (ns_msg *, ns_sect, int, ns_rr *) __THROW; | |||
int ns_sprintrr (const ns_msg *, const ns_rr *, | |||
const char *, const char *, char *, size_t) | |||
__THROW; | |||
int ns_sprintrrf (const u_char *, size_t, const char *, | |||
ns_class, ns_type, u_long, const u_char *, | |||
size_t, const char *, const char *, | |||
char *, size_t) __THROW; | |||
int ns_format_ttl (u_long, char *, size_t) __THROW; | |||
int ns_parse_ttl (const char *, u_long *) __THROW; | |||
u_int32_t ns_datetosecs (const char *cp, int *errp) __THROW; | |||
int ns_name_ntol (const u_char *, u_char *, size_t) __THROW; | |||
int ns_name_ntop (const u_char *, char *, size_t) __THROW; | |||
int ns_name_pton (const char *, u_char *, size_t) __THROW; | |||
int ns_name_unpack (const u_char *, const u_char *, | |||
const u_char *, u_char *, size_t) __THROW; | |||
int ns_name_pack (const u_char *, u_char *, int, | |||
const u_char **, const u_char **) __THROW; | |||
int ns_name_uncompress (const u_char *, const u_char *, | |||
const u_char *, char *, size_t) __THROW; | |||
int ns_name_compress (const char *, u_char *, size_t, | |||
const u_char **, const u_char **) __THROW; | |||
int ns_name_skip (const u_char **, const u_char *) __THROW; | |||
void ns_name_rollback (const u_char *, const u_char **, | |||
const u_char **) __THROW; | |||
int ns_sign (u_char *, int *, int, int, void *, | |||
const u_char *, int, u_char *, int *, time_t) __THROW; | |||
int ns_sign_tcp (u_char *, int *, int, int, | |||
ns_tcp_tsig_state *, int) __THROW; | |||
int ns_sign_tcp_init (void *, const u_char *, int, | |||
ns_tcp_tsig_state *) __THROW; | |||
u_char *ns_find_tsig (u_char *, u_char *) __THROW; | |||
int ns_verify (u_char *, int *, void *, const u_char *, int, | |||
u_char *, int *, time_t *, int) __THROW; | |||
int ns_verify_tcp (u_char *, int *, ns_tcp_tsig_state *, int) | |||
__THROW; | |||
int ns_verify_tcp_init (void *, const u_char *, int, | |||
ns_tcp_tsig_state *) __THROW; | |||
int ns_samedomain (const char *, const char *) __THROW; | |||
int ns_subdomain (const char *, const char *) __THROW; | |||
int ns_makecanon (const char *, char *, size_t) __THROW; | |||
int ns_samename (const char *, const char *) __THROW; | |||
__END_DECLS | |||
#ifdef BIND_4_COMPAT | |||
#include <arpa/nameser_compat.h> | |||
#endif | |||
#endif /* !_ARPA_NAMESER_H_ */ |
@@ -0,0 +1,183 @@ | |||
/* Copyright (c) 1983, 1989 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 4. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
*/ | |||
/* | |||
* from nameser.h 8.1 (Berkeley) 6/2/93 | |||
* $BINDId: nameser_compat.h,v 8.11 1999/01/02 08:00:58 vixie Exp $ | |||
*/ | |||
#ifndef _ARPA_NAMESER_COMPAT_ | |||
#define _ARPA_NAMESER_COMPAT_ | |||
#define __BIND 19950621 /* (DEAD) interface version stamp. */ | |||
#include <endian.h> | |||
/* | |||
* Structure for query header. The order of the fields is machine- and | |||
* compiler-dependent, depending on the byte/bit order and the layout | |||
* of bit fields. We use bit fields only in int variables, as this | |||
* is all ANSI requires. This requires a somewhat confusing rearrangement. | |||
*/ | |||
typedef struct { | |||
unsigned id :16; /* query identification number */ | |||
#if __BYTE_ORDER == __BIG_ENDIAN | |||
/* fields in third byte */ | |||
unsigned qr: 1; /* response flag */ | |||
unsigned opcode: 4; /* purpose of message */ | |||
unsigned aa: 1; /* authoritive answer */ | |||
unsigned tc: 1; /* truncated message */ | |||
unsigned rd: 1; /* recursion desired */ | |||
/* fields in fourth byte */ | |||
unsigned ra: 1; /* recursion available */ | |||
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */ | |||
unsigned ad: 1; /* authentic data from named */ | |||
unsigned cd: 1; /* checking disabled by resolver */ | |||
unsigned rcode :4; /* response code */ | |||
#endif | |||
#if __BYTE_ORDER == __LITTLE_ENDIAN || __BYTE_ORDER == __PDP_ENDIAN | |||
/* fields in third byte */ | |||
unsigned rd :1; /* recursion desired */ | |||
unsigned tc :1; /* truncated message */ | |||
unsigned aa :1; /* authoritive answer */ | |||
unsigned opcode :4; /* purpose of message */ | |||
unsigned qr :1; /* response flag */ | |||
/* fields in fourth byte */ | |||
unsigned rcode :4; /* response code */ | |||
unsigned cd: 1; /* checking disabled by resolver */ | |||
unsigned ad: 1; /* authentic data from named */ | |||
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */ | |||
unsigned ra :1; /* recursion available */ | |||
#endif | |||
/* remaining bytes */ | |||
unsigned qdcount :16; /* number of question entries */ | |||
unsigned ancount :16; /* number of answer entries */ | |||
unsigned nscount :16; /* number of authority entries */ | |||
unsigned arcount :16; /* number of resource entries */ | |||
} HEADER; | |||
#define PACKETSZ NS_PACKETSZ | |||
#define MAXDNAME NS_MAXDNAME | |||
#define MAXCDNAME NS_MAXCDNAME | |||
#define MAXLABEL NS_MAXLABEL | |||
#define HFIXEDSZ NS_HFIXEDSZ | |||
#define QFIXEDSZ NS_QFIXEDSZ | |||
#define RRFIXEDSZ NS_RRFIXEDSZ | |||
#define INT32SZ NS_INT32SZ | |||
#define INT16SZ NS_INT16SZ | |||
#define INADDRSZ NS_INADDRSZ | |||
#define IN6ADDRSZ NS_IN6ADDRSZ | |||
#define INDIR_MASK NS_CMPRSFLGS | |||
#define NAMESERVER_PORT NS_DEFAULTPORT | |||
#define S_ZONE ns_s_zn | |||
#define S_PREREQ ns_s_pr | |||
#define S_UPDATE ns_s_ud | |||
#define S_ADDT ns_s_ar | |||
#define QUERY ns_o_query | |||
#define IQUERY ns_o_iquery | |||
#define STATUS ns_o_status | |||
#define NS_NOTIFY_OP ns_o_notify | |||
#define NS_UPDATE_OP ns_o_update | |||
#define NOERROR ns_r_noerror | |||
#define FORMERR ns_r_formerr | |||
#define SERVFAIL ns_r_servfail | |||
#define NXDOMAIN ns_r_nxdomain | |||
#define NOTIMP ns_r_notimpl | |||
#define REFUSED ns_r_refused | |||
#define YXDOMAIN ns_r_yxdomain | |||
#define YXRRSET ns_r_yxrrset | |||
#define NXRRSET ns_r_nxrrset | |||
#define NOTAUTH ns_r_notauth | |||
#define NOTZONE ns_r_notzone | |||
/*#define BADSIG ns_r_badsig*/ | |||
/*#define BADKEY ns_r_badkey*/ | |||
/*#define BADTIME ns_r_badtime*/ | |||
#define DELETE ns_uop_delete | |||
#define ADD ns_uop_add | |||
#define T_A ns_t_a | |||
#define T_NS ns_t_ns | |||
#define T_MD ns_t_md | |||
#define T_MF ns_t_mf | |||
#define T_CNAME ns_t_cname | |||
#define T_SOA ns_t_soa | |||
#define T_MB ns_t_mb | |||
#define T_MG ns_t_mg | |||
#define T_MR ns_t_mr | |||
#define T_NULL ns_t_null | |||
#define T_WKS ns_t_wks | |||
#define T_PTR ns_t_ptr | |||
#define T_HINFO ns_t_hinfo | |||
#define T_MINFO ns_t_minfo | |||
#define T_MX ns_t_mx | |||
#define T_TXT ns_t_txt | |||
#define T_RP ns_t_rp | |||
#define T_AFSDB ns_t_afsdb | |||
#define T_X25 ns_t_x25 | |||
#define T_ISDN ns_t_isdn | |||
#define T_RT ns_t_rt | |||
#define T_NSAP ns_t_nsap | |||
#define T_NSAP_PTR ns_t_nsap_ptr | |||
#define T_SIG ns_t_sig | |||
#define T_KEY ns_t_key | |||
#define T_PX ns_t_px | |||
#define T_GPOS ns_t_gpos | |||
#define T_AAAA ns_t_aaaa | |||
#define T_LOC ns_t_loc | |||
#define T_NXT ns_t_nxt | |||
#define T_EID ns_t_eid | |||
#define T_NIMLOC ns_t_nimloc | |||
#define T_SRV ns_t_srv | |||
#define T_ATMA ns_t_atma | |||
#define T_NAPTR ns_t_naptr | |||
#define T_TSIG ns_t_tsig | |||
#define T_IXFR ns_t_ixfr | |||
#define T_AXFR ns_t_axfr | |||
#define T_MAILB ns_t_mailb | |||
#define T_MAILA ns_t_maila | |||
#define T_ANY ns_t_any | |||
#define C_IN ns_c_in | |||
#define C_CHAOS ns_c_chaos | |||
#define C_HS ns_c_hs | |||
/* BIND_UPDATE */ | |||
#define C_NONE ns_c_none | |||
#define C_ANY ns_c_any | |||
#define GETSHORT NS_GET16 | |||
#define GETLONG NS_GET32 | |||
#define PUTSHORT NS_PUT16 | |||
#define PUTLONG NS_PUT32 | |||
#endif /* _ARPA_NAMESER_COMPAT_ */ |
@@ -0,0 +1,316 @@ | |||
/* | |||
* Copyright (c) 1983, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 4. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* @(#)telnet.h 8.2 (Berkeley) 12/15/93 | |||
*/ | |||
#ifndef _ARPA_TELNET_H | |||
#define _ARPA_TELNET_H 1 | |||
/* | |||
* Definitions for the TELNET protocol. | |||
*/ | |||
#define IAC 255 /* interpret as command: */ | |||
#define DONT 254 /* you are not to use option */ | |||
#define DO 253 /* please, you use option */ | |||
#define WONT 252 /* I won't use option */ | |||
#define WILL 251 /* I will use option */ | |||
#define SB 250 /* interpret as subnegotiation */ | |||
#define GA 249 /* you may reverse the line */ | |||
#define EL 248 /* erase the current line */ | |||
#define EC 247 /* erase the current character */ | |||
#define AYT 246 /* are you there */ | |||
#define AO 245 /* abort output--but let prog finish */ | |||
#define IP 244 /* interrupt process--permanently */ | |||
#define BREAK 243 /* break */ | |||
#define DM 242 /* data mark--for connect. cleaning */ | |||
#define NOP 241 /* nop */ | |||
#define SE 240 /* end sub negotiation */ | |||
#define EOR 239 /* end of record (transparent mode) */ | |||
#define ABORT 238 /* Abort process */ | |||
#define SUSP 237 /* Suspend process */ | |||
#define xEOF 236 /* End of file: EOF is already used... */ | |||
#define SYNCH 242 /* for telfunc calls */ | |||
#ifdef TELCMDS | |||
char *telcmds[] = { | |||
"EOF", "SUSP", "ABORT", "EOR", | |||
"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", | |||
"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0, | |||
}; | |||
#else | |||
extern char *telcmds[]; | |||
#endif | |||
#define TELCMD_FIRST xEOF | |||
#define TELCMD_LAST IAC | |||
#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ | |||
(unsigned int)(x) >= TELCMD_FIRST) | |||
#define TELCMD(x) telcmds[(x)-TELCMD_FIRST] | |||
/* telnet options */ | |||
#define TELOPT_BINARY 0 /* 8-bit data path */ | |||
#define TELOPT_ECHO 1 /* echo */ | |||
#define TELOPT_RCP 2 /* prepare to reconnect */ | |||
#define TELOPT_SGA 3 /* suppress go ahead */ | |||
#define TELOPT_NAMS 4 /* approximate message size */ | |||
#define TELOPT_STATUS 5 /* give status */ | |||
#define TELOPT_TM 6 /* timing mark */ | |||
#define TELOPT_RCTE 7 /* remote controlled transmission and echo */ | |||
#define TELOPT_NAOL 8 /* negotiate about output line width */ | |||
#define TELOPT_NAOP 9 /* negotiate about output page size */ | |||
#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ | |||
#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ | |||
#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ | |||
#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ | |||
#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ | |||
#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ | |||
#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ | |||
#define TELOPT_XASCII 17 /* extended ascii character set */ | |||
#define TELOPT_LOGOUT 18 /* force logout */ | |||
#define TELOPT_BM 19 /* byte macro */ | |||
#define TELOPT_DET 20 /* data entry terminal */ | |||
#define TELOPT_SUPDUP 21 /* supdup protocol */ | |||
#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ | |||
#define TELOPT_SNDLOC 23 /* send location */ | |||
#define TELOPT_TTYPE 24 /* terminal type */ | |||
#define TELOPT_EOR 25 /* end or record */ | |||
#define TELOPT_TUID 26 /* TACACS user identification */ | |||
#define TELOPT_OUTMRK 27 /* output marking */ | |||
#define TELOPT_TTYLOC 28 /* terminal location number */ | |||
#define TELOPT_3270REGIME 29 /* 3270 regime */ | |||
#define TELOPT_X3PAD 30 /* X.3 PAD */ | |||
#define TELOPT_NAWS 31 /* window size */ | |||
#define TELOPT_TSPEED 32 /* terminal speed */ | |||
#define TELOPT_LFLOW 33 /* remote flow control */ | |||
#define TELOPT_LINEMODE 34 /* Linemode option */ | |||
#define TELOPT_XDISPLOC 35 /* X Display Location */ | |||
#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */ | |||
#define TELOPT_AUTHENTICATION 37/* Authenticate */ | |||
#define TELOPT_ENCRYPT 38 /* Encryption option */ | |||
#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */ | |||
#define TELOPT_EXOPL 255 /* extended-options-list */ | |||
#define NTELOPTS (1+TELOPT_NEW_ENVIRON) | |||
#ifdef TELOPTS | |||
char *telopts[NTELOPTS+1] = { | |||
"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", | |||
"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", | |||
"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", | |||
"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", | |||
"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", | |||
"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", | |||
"TACACS UID", "OUTPUT MARKING", "TTYLOC", | |||
"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", | |||
"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", | |||
"ENCRYPT", "NEW-ENVIRON", | |||
0, | |||
}; | |||
#define TELOPT_FIRST TELOPT_BINARY | |||
#define TELOPT_LAST TELOPT_NEW_ENVIRON | |||
#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) | |||
#define TELOPT(x) telopts[(x)-TELOPT_FIRST] | |||
#endif | |||
/* sub-option qualifiers */ | |||
#define TELQUAL_IS 0 /* option is... */ | |||
#define TELQUAL_SEND 1 /* send option */ | |||
#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */ | |||
#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */ | |||
#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */ | |||
#define LFLOW_OFF 0 /* Disable remote flow control */ | |||
#define LFLOW_ON 1 /* Enable remote flow control */ | |||
#define LFLOW_RESTART_ANY 2 /* Restart output on any char */ | |||
#define LFLOW_RESTART_XON 3 /* Restart output only on XON */ | |||
/* | |||
* LINEMODE suboptions | |||
*/ | |||
#define LM_MODE 1 | |||
#define LM_FORWARDMASK 2 | |||
#define LM_SLC 3 | |||
#define MODE_EDIT 0x01 | |||
#define MODE_TRAPSIG 0x02 | |||
#define MODE_ACK 0x04 | |||
#define MODE_SOFT_TAB 0x08 | |||
#define MODE_LIT_ECHO 0x10 | |||
#define MODE_MASK 0x1f | |||
/* Not part of protocol, but needed to simplify things... */ | |||
#define MODE_FLOW 0x0100 | |||
#define MODE_ECHO 0x0200 | |||
#define MODE_INBIN 0x0400 | |||
#define MODE_OUTBIN 0x0800 | |||
#define MODE_FORCE 0x1000 | |||
#define SLC_SYNCH 1 | |||
#define SLC_BRK 2 | |||
#define SLC_IP 3 | |||
#define SLC_AO 4 | |||
#define SLC_AYT 5 | |||
#define SLC_EOR 6 | |||
#define SLC_ABORT 7 | |||
#define SLC_EOF 8 | |||
#define SLC_SUSP 9 | |||
#define SLC_EC 10 | |||
#define SLC_EL 11 | |||
#define SLC_EW 12 | |||
#define SLC_RP 13 | |||
#define SLC_LNEXT 14 | |||
#define SLC_XON 15 | |||
#define SLC_XOFF 16 | |||
#define SLC_FORW1 17 | |||
#define SLC_FORW2 18 | |||
#define NSLC 18 | |||
/* | |||
* For backwards compatibility, we define SLC_NAMES to be the | |||
* list of names if SLC_NAMES is not defined. | |||
*/ | |||
#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \ | |||
"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \ | |||
"LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0, | |||
#ifdef SLC_NAMES | |||
char *slc_names[] = { | |||
SLC_NAMELIST | |||
}; | |||
#else | |||
extern char *slc_names[]; | |||
#define SLC_NAMES SLC_NAMELIST | |||
#endif | |||
#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC) | |||
#define SLC_NAME(x) slc_names[x] | |||
#define SLC_NOSUPPORT 0 | |||
#define SLC_CANTCHANGE 1 | |||
#define SLC_VARIABLE 2 | |||
#define SLC_DEFAULT 3 | |||
#define SLC_LEVELBITS 0x03 | |||
#define SLC_FUNC 0 | |||
#define SLC_FLAGS 1 | |||
#define SLC_VALUE 2 | |||
#define SLC_ACK 0x80 | |||
#define SLC_FLUSHIN 0x40 | |||
#define SLC_FLUSHOUT 0x20 | |||
#define OLD_ENV_VAR 1 | |||
#define OLD_ENV_VALUE 0 | |||
#define NEW_ENV_VAR 0 | |||
#define NEW_ENV_VALUE 1 | |||
#define ENV_ESC 2 | |||
#define ENV_USERVAR 3 | |||
/* | |||
* AUTHENTICATION suboptions | |||
*/ | |||
/* | |||
* Who is authenticating who ... | |||
*/ | |||
#define AUTH_WHO_CLIENT 0 /* Client authenticating server */ | |||
#define AUTH_WHO_SERVER 1 /* Server authenticating client */ | |||
#define AUTH_WHO_MASK 1 | |||
/* | |||
* amount of authentication done | |||
*/ | |||
#define AUTH_HOW_ONE_WAY 0 | |||
#define AUTH_HOW_MUTUAL 2 | |||
#define AUTH_HOW_MASK 2 | |||
#define AUTHTYPE_NULL 0 | |||
#define AUTHTYPE_KERBEROS_V4 1 | |||
#define AUTHTYPE_KERBEROS_V5 2 | |||
#define AUTHTYPE_SPX 3 | |||
#define AUTHTYPE_MINK 4 | |||
#define AUTHTYPE_CNT 5 | |||
#define AUTHTYPE_TEST 99 | |||
#ifdef AUTH_NAMES | |||
char *authtype_names[] = { | |||
"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0, | |||
}; | |||
#else | |||
extern char *authtype_names[]; | |||
#endif | |||
#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT) | |||
#define AUTHTYPE_NAME(x) authtype_names[x] | |||
/* | |||
* ENCRYPTion suboptions | |||
*/ | |||
#define ENCRYPT_IS 0 /* I pick encryption type ... */ | |||
#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */ | |||
#define ENCRYPT_REPLY 2 /* Initial setup response */ | |||
#define ENCRYPT_START 3 /* Am starting to send encrypted */ | |||
#define ENCRYPT_END 4 /* Am ending encrypted */ | |||
#define ENCRYPT_REQSTART 5 /* Request you start encrypting */ | |||
#define ENCRYPT_REQEND 6 /* Request you send encrypting */ | |||
#define ENCRYPT_ENC_KEYID 7 | |||
#define ENCRYPT_DEC_KEYID 8 | |||
#define ENCRYPT_CNT 9 | |||
#define ENCTYPE_ANY 0 | |||
#define ENCTYPE_DES_CFB64 1 | |||
#define ENCTYPE_DES_OFB64 2 | |||
#define ENCTYPE_CNT 3 | |||
#ifdef ENCRYPT_NAMES | |||
char *encrypt_names[] = { | |||
"IS", "SUPPORT", "REPLY", "START", "END", | |||
"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID", | |||
0, | |||
}; | |||
char *enctype_names[] = { | |||
"ANY", "DES_CFB64", "DES_OFB64", 0, | |||
}; | |||
#else | |||
extern char *encrypt_names[]; | |||
extern char *enctype_names[]; | |||
#endif | |||
#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT) | |||
#define ENCRYPT_NAME(x) encrypt_names[x] | |||
#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT) | |||
#define ENCTYPE_NAME(x) enctype_names[x] | |||
#endif /* arpa/telnet.h */ |
@@ -0,0 +1,76 @@ | |||
/* | |||
* Copyright (c) 1983, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 4. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* @(#)tftp.h 8.1 (Berkeley) 6/2/93 | |||
*/ | |||
#ifndef _ARPA_TFTP_H | |||
#define _ARPA_TFTP_H 1 | |||
/* | |||
* Trivial File Transfer Protocol (IEN-133) | |||
*/ | |||
#define SEGSIZE 512 /* data segment size */ | |||
/* | |||
* Packet types. | |||
*/ | |||
#define RRQ 01 /* read request */ | |||
#define WRQ 02 /* write request */ | |||
#define DATA 03 /* data packet */ | |||
#define ACK 04 /* acknowledgement */ | |||
#define ERROR 05 /* error code */ | |||
struct tftphdr { | |||
short th_opcode; /* packet type */ | |||
union { | |||
unsigned short tu_block; /* block # */ | |||
short tu_code; /* error code */ | |||
char tu_stuff[1]; /* request packet stuff */ | |||
} __attribute__ ((__packed__)) th_u; | |||
char th_data[1]; /* data or error string */ | |||
} __attribute__ ((__packed__)); | |||
#define th_block th_u.tu_block | |||
#define th_code th_u.tu_code | |||
#define th_stuff th_u.tu_stuff | |||
#define th_msg th_data | |||
/* | |||
* Error codes. | |||
*/ | |||
#define EUNDEF 0 /* not defined */ | |||
#define ENOTFOUND 1 /* file not found */ | |||
#define EACCESS 2 /* access violation */ | |||
#define ENOSPACE 3 /* disk full or allocation exceeded */ | |||
#define EBADOP 4 /* illegal TFTP operation */ | |||
#define EBADID 5 /* unknown transfer ID */ | |||
#define EEXISTS 6 /* file already exists */ | |||
#define ENOUSER 7 /* no such user */ | |||
#endif /* arpa/tftp.h */ |
@@ -0,0 +1,78 @@ | |||
/* Copyright (C) 1991,1992,1994-2001,2003,2004 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
/* | |||
* ISO C99 Standard: 7.2 Diagnostics <assert.h> | |||
*/ | |||
#ifdef _ASSERT_H | |||
# undef _ASSERT_H | |||
# undef assert | |||
# undef __ASSERT_VOID_CAST | |||
#endif /* assert.h */ | |||
#define _ASSERT_H 1 | |||
#include <features.h> | |||
#if defined __cplusplus && __GNUC_PREREQ (2,95) | |||
# define __ASSERT_VOID_CAST static_cast<void> | |||
#else | |||
# define __ASSERT_VOID_CAST (void) | |||
#endif | |||
/* void assert (int expression); | |||
If NDEBUG is defined, do nothing. | |||
If not, and EXPRESSION is zero, print an error message and abort. */ | |||
#ifdef NDEBUG | |||
# define assert(expr) (__ASSERT_VOID_CAST (0)) | |||
#else /* Not NDEBUG. */ | |||
__BEGIN_DECLS | |||
/* This prints an "Assertion failed" message and aborts. */ | |||
extern void __assert(const char *, const char *, unsigned int, const char *) | |||
__THROW __attribute__ ((__noreturn__)); | |||
__END_DECLS | |||
# define assert(expr) \ | |||
(__ASSERT_VOID_CAST ((expr) ? 0 : \ | |||
(__assert (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION), 0))) | |||
/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' | |||
which contains the name of the function currently being defined. | |||
This is broken in G++ before version 2.6. | |||
C9x has a similar variable called __func__, but prefer the GCC one since | |||
it demangles C++ function names. */ | |||
# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) | |||
# define __ASSERT_FUNCTION __PRETTY_FUNCTION__ | |||
# else | |||
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L | |||
# define __ASSERT_FUNCTION __func__ | |||
# else | |||
# define __ASSERT_FUNCTION ((__const char *) 0) | |||
# endif | |||
# endif | |||
#endif /* NDEBUG. */ |
@@ -0,0 +1,108 @@ | |||
/* Macros to swap the order of bytes in integer values. | |||
Copyright (C) 1997,1998,2000,2001,2002,2005 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
#if !defined _BYTESWAP_H && !defined _NETINET_IN_H | |||
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead." | |||
#endif | |||
#ifndef _BITS_BYTESWAP_H | |||
#define _BITS_BYTESWAP_H 1 | |||
/* Swap bytes in 16 bit value. */ | |||
#define __bswap_constant_16(x) \ | |||
((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8)) | |||
#ifndef __bswap_non_constant_16 | |||
# define __bswap_non_constant_16(x) __bswap_constant_16(x) | |||
#endif | |||
#ifdef __GNUC__ | |||
# define __bswap_16(x) \ | |||
(__extension__ \ | |||
({ unsigned short int __bsv, __bsx = (x); \ | |||
if (__builtin_constant_p (__bsx)) \ | |||
__bsv = __bswap_constant_16 (__bsx); \ | |||
else \ | |||
__bsv = __bswap_non_constant_16 (__bsx); \ | |||
__bsv; })) | |||
#else | |||
static __inline unsigned short int | |||
__bswap_16 (unsigned short int __bsx) | |||
{ | |||
return __bswap_constant_16 (__bsx); | |||
} | |||
#endif | |||
/* Swap bytes in 32 bit value. */ | |||
#define __bswap_constant_32(x) \ | |||
((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \ | |||
(((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) | |||
#ifndef __bswap_non_constant_32 | |||
# define __bswap_non_constant_32(x) __bswap_constant_32(x) | |||
#endif | |||
#ifdef __GNUC__ | |||
# define __bswap_32(x) \ | |||
(__extension__ \ | |||
({ unsigned int __bsv, __bsx = (x); \ | |||
if (__builtin_constant_p (__bsx)) \ | |||
__bsv = __bswap_constant_32 (__bsx); \ | |||
else \ | |||
__bsv = __bswap_non_constant_32 (__bsx); \ | |||
__bsv; })) | |||
#else | |||
static __inline unsigned int | |||
__bswap_32 (unsigned int __bsx) | |||
{ | |||
return __bswap_constant_32 (__bsx); | |||
} | |||
#endif | |||
#if defined __GNUC__ && __GNUC__ >= 2 | |||
/* Swap bytes in 64 bit value. */ | |||
# define __bswap_constant_64(x) \ | |||
((((x) & 0xff00000000000000ull) >> 56) \ | |||
| (((x) & 0x00ff000000000000ull) >> 40) \ | |||
| (((x) & 0x0000ff0000000000ull) >> 24) \ | |||
| (((x) & 0x000000ff00000000ull) >> 8) \ | |||
| (((x) & 0x00000000ff000000ull) << 8) \ | |||
| (((x) & 0x0000000000ff0000ull) << 24) \ | |||
| (((x) & 0x000000000000ff00ull) << 40) \ | |||
| (((x) & 0x00000000000000ffull) << 56)) | |||
# ifndef __bswap_non_constant_64 | |||
# define __bswap_non_constant_64(x) \ | |||
(__extension__ \ | |||
({ union { __extension__ unsigned long long int __ll; \ | |||
unsigned int __l[2]; } __w, __r; \ | |||
__w.__ll = (x); \ | |||
__r.__l[0] = __bswap_non_constant_32 (__w.__l[1]); \ | |||
__r.__l[1] = __bswap_non_constant_32 (__w.__l[0]); \ | |||
__r.__ll; })) | |||
# endif | |||
# define __bswap_64(x) \ | |||
(__extension__ \ | |||
({ __extension__ unsigned long long int __ll; \ | |||
if (__builtin_constant_p (x)) \ | |||
__ll = __bswap_constant_64 (x); \ | |||
else \ | |||
__ll = __bswap_non_constant_64 (x); \ | |||
__ll; })) | |||
#endif | |||
#endif /* _BITS_BYTESWAP_H */ |
@@ -0,0 +1,68 @@ | |||
/* Macros to swap the order of bytes in integer values. | |||
Copyright (C) 1997, 1998, 2000, 2002, 2003 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
#ifndef _ASM_BITS_BYTESWAP_H | |||
#define _ASM_BITS_BYTESWAP_H 1 | |||
#include <bits/wordsize.h> | |||
#define __bswap_non_constant_16(x) \ | |||
(__extension__ \ | |||
({ register unsigned short int __v; \ | |||
__asm__ ("rorw $8, %w0" \ | |||
: "=r" (__v) \ | |||
: "0" (x) \ | |||
: "cc"); \ | |||
__v; })) | |||
#if __WORDSIZE == 64 || (defined __i486__ || defined __pentium__ \ | |||
|| defined __pentiumpro__ || defined __pentium4__ \ | |||
|| defined __k8__ || defined __athlon__ \ | |||
|| defined __k6__) | |||
/* To swap the bytes in a word the i486 processors and up provide the | |||
`bswap' opcode. On i386 we have to use three instructions. */ | |||
# define __bswap_non_constant_32(x) \ | |||
(__extension__ \ | |||
({ register unsigned int __v; \ | |||
__asm__ ("bswap %0" : "=r" (__v) : "0" (x)); \ | |||
__v; })) | |||
#else | |||
# define __bswap_non_constant_32(x) \ | |||
(__extension__ \ | |||
({ register unsigned int __v; \ | |||
__asm__ ("rorw $8, %w0;" \ | |||
"rorl $16, %0;" \ | |||
"rorw $8, %w0" \ | |||
: "=r" (__v) \ | |||
: "0" (x) \ | |||
: "cc"); \ | |||
__v; })) | |||
#endif | |||
#if __WORDSIZE == 64 | |||
# define __bswap_non_constant_64(x) \ | |||
(__extension__ \ | |||
({ register unsigned long __v; \ | |||
__asm__ ("bswap %q0" : "=r" (__v) : "0" (x)); \ | |||
__v; })) | |||
#endif | |||
#endif | |||
#include <bits/byteswap-common.h> |
@@ -0,0 +1,158 @@ | |||
/* Prototype declarations for complex math functions; | |||
helper file for <complex.h>. | |||
Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc. | |||
This file is part of the GNU C Library. | |||
The GNU C Library is free software; you can redistribute it and/or | |||
modify it under the terms of the GNU Lesser General Public | |||
License as published by the Free Software Foundation; either | |||
version 2.1 of the License, or (at your option) any later version. | |||
The GNU C Library is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public | |||
License along with the GNU C Library; if not, write to the Free | |||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |||
02111-1307 USA. */ | |||
/* NOTE: Because of the special way this file is used by <complex.h>, this | |||
file must NOT be protected from multiple inclusion as header files | |||
usually are. | |||
This file provides prototype declarations for the math functions. | |||
Most functions are declared using the macro: | |||
__MATHCALL (NAME, (ARGS...)); | |||
This means there is a function `NAME' returning `double' and a function | |||
`NAMEf' returning `float'. Each place `_Mdouble_' appears in the | |||
prototype, that is actually `double' in the prototype for `NAME' and | |||
`float' in the prototype for `NAMEf'. Reentrant variant functions are | |||
called `NAME_r' and `NAMEf_r'. | |||
Functions returning other types like `int' are declared using the macro: | |||