TBR: veyron/services/wsprd/ipc/server: Update with
https://veyron-review.googlesource.com/#/c/7090/

Change-Id: Ife1ce356a0276dca31877f4078105543072244c8
diff --git a/services/wsprd/ipc/server/server.go b/services/wsprd/ipc/server/server.go
index ab263f6..e3cb87e 100644
--- a/services/wsprd/ipc/server/server.go
+++ b/services/wsprd/ipc/server/server.go
@@ -78,7 +78,7 @@
 	Method                string                    `json:"method"`
 	Name                  string                    `json:"name"`
 	Suffix                string                    `json:"suffix"`
-	Label                 security.Label            `json:"label"`
+	Label                 security.Label            `json:"label"` // TODO(bjornick,ashankar): This should be method tags!
 	LocalBlessings        principal.BlessingsHandle `json:"localBlessings"`
 	LocalBlessingStrings  []string                  `json:"localBlessingStrings"`
 	RemoteBlessings       principal.BlessingsHandle `json:"remoteBlessings"`
@@ -264,7 +264,7 @@
 				Method:                lib.LowercaseFirstCharacter(ctx.Method()),
 				Name:                  ctx.Name(),
 				Suffix:                ctx.Suffix(),
-				Label:                 ctx.Label(),
+				Label:                 labelFromMethodTags(ctx.MethodTags()),
 				LocalEndpoint:         ctx.LocalEndpoint().String(),
 				RemoteEndpoint:        ctx.RemoteEndpoint().String(),
 				LocalBlessings:        s.convertBlessingsToHandle(ctx.LocalBlessings()),
@@ -425,3 +425,12 @@
 func (s *Server) RemoveName(name string) error {
 	return s.server.RemoveName(name)
 }
+
+func labelFromMethodTags(tags []interface{}) security.Label {
+	for _, t := range tags {
+		if l, ok := t.(security.Label); ok {
+			return l
+		}
+	}
+	return security.AdminLabel
+}