Hello there!
  I am looking into possibility of sending multiple commands through one admin connection. Is it possible? Is there any documentation on the protocol?
 Normally racoonctl work by sending one command and pooling for events after. There is no cases with multiple commands per exec.
 Also next block of code (from the end of admin_process() func) looks quite suspicious for me:
        /* start pushing events if so requested */
        if ((l_ac_errno == 0) &&
            (com->ac_version >= 1) &&
            (com->ac_cmd == ADMIN_SHOW_EVT || event_list != NULL))
                error = evt_subscribe(event_list, so2);

  Maybe commentary misguiding me, but it is looks like event subscription happens even if no ADMIN_SHOW_EVT explicitly supplied. Is it the way it supposed to be?