summaryrefslogtreecommitdiff
path: root/sys/netatalk
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2014-12-02 19:33:44 +0000
committerchristos <christos@NetBSD.org>2014-12-02 19:33:44 +0000
commita2ac27f0de51f94c43528c6a1bd9cf9772fd2192 (patch)
treea3cce1bb12e53369419fad016e880dd1c2043f8d /sys/netatalk
parentb3158f1522dc060937f2e3f2e86a65ed89ef3b74 (diff)
- s/u_intX/uintX/
- add routines to print sockaddr_at and ataddr.
Diffstat (limited to 'sys/netatalk')
-rw-r--r--sys/netatalk/at.h32
-rw-r--r--sys/netatalk/at_print.c59
-rw-r--r--sys/netatalk/files.netatalk3
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