aboutsummaryrefslogtreecommitdiff
path: root/sys/net/if_ethersubr.c
diff options
context:
space:
mode:
authorBoris Popov <bp@FreeBSD.org>2000-04-27 10:13:52 +0000
committerBoris Popov <bp@FreeBSD.org>2000-04-27 10:13:52 +0000
commit5accfb8c14f4a067fd923b46926ec2d94828bc8e (patch)
tree49e4a5c4b2fd5abc8fe9327b0c57e20b20372183 /sys/net/if_ethersubr.c
parent68924308074fd0d005fc0f0feae9fb84066280c9 (diff)
downloadsrc-5accfb8c14f4a067fd923b46926ec2d94828bc8e.tar.gz
src-5accfb8c14f4a067fd923b46926ec2d94828bc8e.zip
Fix support for 802.2 and SNAP frames. Bug was introduced during
initial import. Tested by: Jorge P Vasquez <jorge@acron.ind.br>
Notes
Notes: svn path=/head/; revision=59681
Diffstat (limited to 'sys/net/if_ethersubr.c')
-rw-r--r--sys/net/if_ethersubr.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c
index 4042028009e2..a1a17d1dda4f 100644
--- a/sys/net/if_ethersubr.c
+++ b/sys/net/if_ethersubr.c
@@ -71,7 +71,7 @@
#include <netipx/ipx.h>
#include <netipx/ipx_if.h>
int (*ef_inputp)(struct ifnet*, struct ether_header *eh, struct mbuf *m);
-int (*ef_outputp)(struct ifnet *ifp, struct mbuf *m,
+int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp,
struct sockaddr *dst, short *tp);
#endif
@@ -220,11 +220,9 @@ ether_output(ifp, m, dst, rt0)
#ifdef IPX
case AF_IPX:
if (ef_outputp) {
- error = ef_outputp(ifp, m, dst, &type);
- if (error < 0)
- senderr(EPFNOSUPPORT);
- if (error > 0)
- type = htons(ETHERTYPE_IPX);
+ error = ef_outputp(ifp, &m, dst, &type);
+ if (error)
+ goto bad;
} else
type = htons(ETHERTYPE_IPX);
bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),