summaryrefslogtreecommitdiffstats
path: root/ax25rtd/listener.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-08-10 05:46:32 +0200
committerRalf Baechle <ralf@linux-mips.org>1999-08-10 05:46:32 +0200
commit28280a70d9880c21efdff840246163a1b8e06a94 (patch)
treed95973ea267c755f349998bd9f8fd5706b334943 /ax25rtd/listener.c
parentaa112083f850e1b6c5c6ed9c9e59a568ff66a000 (diff)
Import ax25-apps 0.0.3 from tarballax25-apps-0.0.3
Diffstat (limited to 'ax25rtd/listener.c')
-rw-r--r--ax25rtd/listener.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/ax25rtd/listener.c b/ax25rtd/listener.c
index 27b8622..a687f89 100644
--- a/ax25rtd/listener.c
+++ b/ax25rtd/listener.c
@@ -1,4 +1,4 @@
-/* $Id: listener.c,v 1.9 1997/06/05 18:56:08 oe1kib Exp oe1kib $
+/* $Id: listener.c,v 1.9 1997/06/05 18:56:08 oe1kib Exp kudielka $
*
* Copyright (c) 1996 Jörg Reuter (jreuter@poboxes.com)
*
@@ -32,7 +32,13 @@
#include <net/route.h>
#include <net/if.h>
#include <net/if_arp.h>
+
+#include <config.h>
+#ifdef HAVE_NETAX25_AX25_H
#include <netax25/ax25.h>
+#else
+#include <netax25/kernel_ax25.h>
+#endif
#include "../pathnames.h"
#include "ax25rtd.h"
@@ -109,14 +115,11 @@ static inline void invert_digipeater_path(ax25_address *digipeater, int ndigi)
if (ndigi == 0)
return;
- ndigi--;
-
- memcpy(&fdigi, &digipeater[0], AXLEN);
-
- for (m = 0,k = ndigi; k > 0; k--, m++)
+ for (m = 0,k = ndigi-1; k > m; k--, m++) {
+ memcpy(&fdigi, &digipeater[m], AXLEN);
memcpy(&digipeater[m], &digipeater[k], AXLEN);
-
- memcpy(&digipeater[ndigi], &fdigi, AXLEN);
+ memcpy(&digipeater[k], &fdigi, AXLEN);
+ }
}
int set_arp(config *config, long ip, ax25_address *call)
@@ -329,7 +332,7 @@ int set_ipmode(config *config, ax25_address *call, int ipmode)
ax25_opt.port_addr = config->mycalls[0];
ax25_opt.dest_addr = *call;
ax25_opt.cmd = AX25_SET_RT_IPMODE;
- ax25_opt.arg = ipmode? 'V':'C';
+ ax25_opt.arg = ipmode? 'V':'D';
fds = socket(AF_AX25, SOCK_SEQPACKET, 0);
@@ -384,7 +387,7 @@ void ax25_receive(int sock)
* KISS data?
*/
- if (*data != 0)
+ if ((*data & 0x0f) != 0)
return;
SKIP(1);