vx32

Local 9vx git repository for patches.
git clone git://r-36.net/vx32
Log | Files | Refs

commit 9887fadf490258ebd78f9e7390544e1bb6bebc4b
parent 0ce207018eb7537dda4e246cbe26c682474080b2
Author: Jesus Galan Lopez (yiyus) <yiyu.jgl@gmail.com>
Date:   Sat,  5 Jun 2010 10:21:11 +0200

do not panic after an error initializing the network device

Diffstat:
src/9vx/etherve.c | 18+++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/9vx/etherve.c b/src/9vx/etherve.c @@ -47,6 +47,13 @@ eafrom(char *ma) return 0; } +static void * +veerror(char* err) +{ + iprint("ve: %s\n", err); + return nil; +} + static pcap_t * setup(void) { @@ -57,20 +64,21 @@ setup(void) bpf_u_int32 net; bpf_u_int32 mask; - if(macaddr) + if(macaddr){ if(strlen(macaddr)>17) - panic("wrong mac address"); + return veerror("wrong mac address"); else if(sprintf(filter, "ether dst %s", macaddr) == -1) - panic("cannot create pcap filter"); + return veerror("cannot create pcap filter"); + } if (!netdev && (netdev = pcap_lookupdev(errbuf)) == nil) - panic("cannot find network device: %s", errbuf); + return veerror("cannot find network device"); if ((pd = pcap_open_live(netdev, 1514, 1, 1, errbuf)) == nil) return nil; if (macaddr && (eafrom(macaddr) == -1)) - panic("cannot read mac address"); + return veerror("cannot read mac address"); pcap_lookupnet(netdev, &net, &mask, errbuf); pcap_compile(pd, &prog, filter, 0, net);