X-Git-Url: http://git.ozlabs.org/?p=yaboot.git;a=blobdiff_plain;f=second%2Ffile.c;h=02b187231716e318964dc77681637d000ad2a35a;hp=a52b664e8900c6e789764c696f5d4e61ab9fab0d;hb=caa5b9fc39eab729963d70d9910b6319a866fae4;hpb=3cbe90093acba116c5fc46beaf50f74c7c8a1b69 diff --git a/second/file.c b/second/file.c index a52b664..02b1872 100644 --- a/second/file.c +++ b/second/file.c @@ -88,7 +88,7 @@ static char * is_valid_ipv4_str(char *str) /* - * Copy the string from source to dest till newline or comma(,) is seen + * Copy the string from source to dest until the end of string or comma is seen * in the source. * Move source and dest pointers respectively. * Returns pointer to the start of the string that has just been copied. @@ -104,9 +104,9 @@ scopy(char **dest, char **source) while (**source != ',' && **source != '\0') *(*dest)++ = *(*source)++; if (**source != '\0') - *(*source)++; + (void)*(*source)++; **dest = '\0'; - *(*dest)++; + (void)*(*dest)++; return ret; } @@ -163,9 +163,14 @@ extract_ipv4_args(char *imagepath, struct boot_fspec_t *result) args++; /* If comma(,) is not immediately followed by ':' then go past the , */ /* - * read the arguments in order: siaddr,filename,ciaddr,giaddr, + * read the arguments in order: vtag,siaddr,filename,ciaddr,giaddr, * bootp-retries,tftp-retries,addl_prameters */ + if ((tmp = strstr(imagepath, "vtag=")) != NULL) { + result->vtag = scopy(&str, &tmp); + args = tmp; + } + result->siaddr = is_valid_ipv4_str(scopy(&str, &args)); result->file = scopy(&str, &args); result->ciaddr = is_valid_ipv4_str(scopy(&str, &args)); @@ -331,6 +336,9 @@ extract_ipv6_args(char *imagepath, struct boot_fspec_t *result) if ((tmp = strstr(imagepath, "dhcpv6=")) != NULL) result->dhcpv6 = scopy(&str, &tmp); + if ((tmp = strstr(imagepath, "vtag=")) != NULL) + result->vtag = scopy(&str, &tmp); + if ((tmp = strstr(imagepath, "ciaddr=")) != NULL) result->ciaddr = scopy(&str, &tmp);