From ccb7b913d54fafdf08b36ac7eb36e462b1ecc9eb Mon Sep 17 00:00:00 2001 From: Ondrej Fabry Date: Mon, 9 Sep 2019 09:56:59 +0200 Subject: Fix compatibility with latest master (20.01-rc0) - fixed generator for new string types - update simple client example - regenerate examples binapi for VPP 19.08 Change-Id: If4fe78c130d95641f35f75cd0262b35b032acaf8 Signed-off-by: Ondrej Fabry --- cmd/binapi-generator/generate.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'cmd/binapi-generator/generate.go') diff --git a/cmd/binapi-generator/generate.go b/cmd/binapi-generator/generate.go index e386f8d..cb1f470 100644 --- a/cmd/binapi-generator/generate.go +++ b/cmd/binapi-generator/generate.go @@ -568,26 +568,31 @@ func generateField(ctx *context, w io.Writer, fields []Field, i int) { fieldName := strings.TrimPrefix(field.Name, "_") fieldName = camelCaseName(fieldName) + dataType := convertToGoType(ctx, field.Type) + fieldType := dataType + // generate length field for strings - if field.Type == "string" { + if field.Type == "string" && field.Length == 0 { fmt.Fprintf(w, "\tXXX_%sLen uint32 `struc:\"sizeof=%s\"`\n", fieldName, fieldName) } - dataType := convertToGoType(ctx, field.Type) - fieldType := dataType - // check if it is array if field.Length > 0 || field.SizeFrom != "" { if dataType == "uint8" { dataType = "byte" } - fieldType = "[]" + dataType + if dataType == "string" && field.SpecifiedLen { + fieldType = "string" + dataType = "byte" + } else { + fieldType = "[]" + dataType + } } fmt.Fprintf(w, "\t%s %s", fieldName, fieldType) fieldTags := map[string]string{} - if field.Length > 0 { + if field.Length > 0 && field.SpecifiedLen { // fixed size array fieldTags["struc"] = fmt.Sprintf("[%d]%s", field.Length, dataType) } else { -- cgit 1.2.3-korg