diff options
| author | christos <christos@NetBSD.org> | 2014-12-02 19:33:44 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 2014-12-02 19:33:44 +0000 |
| commit | a2ac27f0de51f94c43528c6a1bd9cf9772fd2192 (patch) | |
| tree | a3cce1bb12e53369419fad016e880dd1c2043f8d /sys/netatalk | |
| parent | b3158f1522dc060937f2e3f2e86a65ed89ef3b74 (diff) | |
- s/u_intX/uintX/
- add routines to print sockaddr_at and ataddr.
Diffstat (limited to 'sys/netatalk')
| -rw-r--r-- | sys/netatalk/at.h | 32 | ||||
| -rw-r--r-- | sys/netatalk/at_print.c | 59 | ||||
| -rw-r--r-- | sys/netatalk/files.netatalk | 3 |
3 files changed, 81 insertions, 13 deletions
diff --git a/sys/netatalk/at.h b/sys/netatalk/at.h index 950b510b8a0..e369937d4ab 100644 --- a/sys/netatalk/at.h +++ b/sys/netatalk/at.h @@ -1,4 +1,4 @@ -/* $NetBSD: at.h,v 1.7 2005/12/10 23:29:05 elad Exp $ */ +/* $NetBSD: at.h,v 1.8 2014/12/02 19:33:44 christos Exp $ */ /* * Copyright (c) 1990,1991 Regents of The University of Michigan. @@ -59,19 +59,19 @@ typedef __sa_family_t sa_family_t; * AppleTalk address. */ struct at_addr { - u_int16_t s_net; - u_int8_t s_node; + uint16_t s_net; + uint8_t s_node; }; -#define ATADDR_ANYNET (u_int16_t)0x0000 -#define ATADDR_ANYNODE (u_int8_t)0x00 -#define ATADDR_ANYPORT (u_int8_t)0x00 -#define ATADDR_BCAST (u_int8_t)0xff /* There is no BCAST for NET */ +#define ATADDR_ANYNET (uint16_t)0x0000 +#define ATADDR_ANYNODE (uint8_t)0x00 +#define ATADDR_ANYPORT (uint8_t)0x00 +#define ATADDR_BCAST (uint8_t)0xff /* There is no BCAST for NET */ struct netrange { - u_int8_t nr_phase; - u_int16_t nr_firstnet; - u_int16_t nr_lastnet; + uint8_t nr_phase; + uint16_t nr_firstnet; + uint16_t nr_lastnet; }; /* @@ -82,9 +82,9 @@ struct netrange { * by the kernel. */ struct sockaddr_at { - u_int8_t sat_len; + uint8_t sat_len; sa_family_t sat_family; - u_int8_t sat_port; + uint8_t sat_port; struct at_addr sat_addr; union { struct netrange r_netrange; @@ -102,4 +102,12 @@ extern struct domain atalkdomain; extern const struct protosw atalksw[]; #endif +#if defined(_KERNEL) || defined(_TEST) +#define ATALK_ADDRSTRLEN 10 + +extern struct domain atalkdomain; +int at_print(char *, size_t, const struct at_addr *); +int sat_print(char *, size_t, const void *); +#endif + #endif /* !_NETATALK_AT_H_ */ diff --git a/sys/netatalk/at_print.c b/sys/netatalk/at_print.c new file mode 100644 index 00000000000..430c853ab90 --- /dev/null +++ b/sys/netatalk/at_print.c @@ -0,0 +1,59 @@ +/* $NetBSD: at_print.c,v 1.1 2014/12/02 19:33:44 christos Exp $ */ + +/*- + * Copyright (c) 2014 The NetBSD Foundation, Inc. + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ +#include <sys/cdefs.h> + +#include <sys/types.h> +#ifdef _KERNEL +__KERNEL_RCSID(0, "$NetBSD: at_print.c,v 1.1 2014/12/02 19:33:44 christos Exp $"); +#include <sys/systm.h> +#else +__RCSID("$NetBSD: at_print.c,v 1.1 2014/12/02 19:33:44 christos Exp $"); +#include <stdio.h> +#endif +#include <netatalk/at.h> + +int +at_print(char *buf, size_t len, const struct at_addr *aa) +{ + return snprintf(buf, len, "%hu.%hhu", ntohs(aa->s_net), aa->s_node); +} + +// XXX: netrange +int +sat_print(char *buf, size_t len, const void *v) +{ + const struct sockaddr_at *sat = v; + const struct at_addr *aa = &sat->sat_addr; + char abuf[ATALK_ADDRSTRLEN]; + + if (!sat->sat_port) + return at_print(buf, len, aa); + + at_print(abuf, sizeof(abuf), aa); + return snprintf(buf, len, "%s:%hhu", abuf, sat->sat_port); +} diff --git a/sys/netatalk/files.netatalk b/sys/netatalk/files.netatalk index 49380e3eb87..bba3768c7b4 100644 --- a/sys/netatalk/files.netatalk +++ b/sys/netatalk/files.netatalk @@ -1,9 +1,10 @@ -# $NetBSD: files.netatalk,v 1.1 2002/10/10 22:10:53 thorpej Exp $ +# $NetBSD: files.netatalk,v 1.2 2014/12/02 19:33:44 christos Exp $ defflag opt_atalk.h NETATALK file netatalk/aarp.c netatalk file netatalk/at_control.c netatalk +file netatalk/at_print.c file netatalk/at_proto.c netatalk file netatalk/at_rmx.c netatalkdebug file netatalk/ddp_input.c netatalk |
