mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
net: move parse_macaddr() to net/util.[ch]
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
d7539ab4bf
commit
f1d078c341
4 changed files with 95 additions and 34 deletions
35
net.c
35
net.c
|
|
@ -30,6 +30,7 @@
|
|||
#include "net/dump.h"
|
||||
#include "net/slirp.h"
|
||||
#include "net/vde.h"
|
||||
#include "net/util.h"
|
||||
#include "monitor.h"
|
||||
#include "sysemu.h"
|
||||
#include "qemu-common.h"
|
||||
|
|
@ -69,38 +70,6 @@ static void hex_dump(FILE *f, const uint8_t *buf, int size)
|
|||
}
|
||||
#endif
|
||||
|
||||
static int parse_macaddr(uint8_t *macaddr, const char *p)
|
||||
{
|
||||
int i;
|
||||
char *last_char;
|
||||
long int offset;
|
||||
|
||||
errno = 0;
|
||||
offset = strtol(p, &last_char, 0);
|
||||
if (0 == errno && '\0' == *last_char &&
|
||||
offset >= 0 && offset <= 0xFFFFFF) {
|
||||
macaddr[3] = (offset & 0xFF0000) >> 16;
|
||||
macaddr[4] = (offset & 0xFF00) >> 8;
|
||||
macaddr[5] = offset & 0xFF;
|
||||
return 0;
|
||||
} else {
|
||||
for(i = 0; i < 6; i++) {
|
||||
macaddr[i] = strtol(p, (char **)&p, 16);
|
||||
if (i == 5) {
|
||||
if (*p != '\0')
|
||||
return -1;
|
||||
} else {
|
||||
if (*p != ':' && *p != '-')
|
||||
return -1;
|
||||
p++;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int get_str_sep(char *buf, int buf_size, const char **pp, int sep)
|
||||
{
|
||||
const char *p, *p1;
|
||||
|
|
@ -858,7 +827,7 @@ static int net_init_nic(QemuOpts *opts,
|
|||
nd->macaddr[5] = 0x56 + idx;
|
||||
|
||||
if (qemu_opt_get(opts, "macaddr") &&
|
||||
parse_macaddr(nd->macaddr, qemu_opt_get(opts, "macaddr")) < 0) {
|
||||
net_parse_macaddr(nd->macaddr, qemu_opt_get(opts, "macaddr")) < 0) {
|
||||
qemu_error("invalid syntax for ethernet address\n");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue