+ desc->service = NULL;
+ memset(&desc->ditf, 0, sizeof desc->ditf);
+ desc->count = count;
+
+ /* fill the verbs sorted */
+ for (i = 0 ; i < count ; i++) {
+ desc->verbs[i].perm = NULL;
+ j = i;
+ bv = &binding->verbs[j];
+ while (j && strcasecmp(bv->verb, desc->verbs[j-1].verb->verb) < 0) {
+ desc->verbs[j].verb = desc->verbs[j-1].verb;
+ j--;
+ }
+ desc->verbs[j].verb = bv;
+ }
+
+ /* makes the permissions */
+ for (i = 0 ; i < count ; i++) {
+ if (desc->verbs[i].verb->permissions) {
+ desc->verbs[i].perm = afb_perm_parse(desc->verbs[i].verb->permissions);
+ if (!desc->verbs[i].perm) {
+ ERROR("Bad permission specification for verb %s of api %s: %s",
+ desc->verbs[i].verb->verb, binding->api,
+ desc->verbs[i].verb->permissions);
+ goto error2;
+ }
+ }
+ }