diff --git a/src/xmlout.c b/src/xmlout.c index d90e046..26994a0 100644 --- a/src/xmlout.c +++ b/src/xmlout.c @@ -676,6 +676,30 @@ xmlRoleEventlist (const System sys, Roledef rd, int index) xmlPrint (""); } +//! Output a protocol description +void +xmlProtocol (const System sys, Protocol p) +{ + Role r; + + xmlPrint (""); + xmlindent++; + xmlOutTerm ("name", p->nameterm); + r = p->roles; + while (r != NULL) + { + xmlPrint (""); + xmlindent++; + xmlRoleTermPrint (r->nameterm); + xmlRoleEventlist (sys, r->roledef, 0); + xmlindent--; + xmlPrint (""); + r = r->next; + } + xmlindent--; + xmlPrint (""); +} + //! Show all protocol roles that are in the attack. void xmlInvolvedProtocolRoles (const System sys) @@ -687,24 +711,7 @@ xmlInvolvedProtocolRoles (const System sys) { if (isProtocolInvolved (sys, p)) { - Role r; - - xmlPrint (""); - xmlindent++; - xmlOutTerm ("name", p->nameterm); - r = p->roles; - while (r != NULL) - { - xmlPrint (""); - xmlindent++; - xmlRoleTermPrint (r->nameterm); - xmlRoleEventlist (sys, r->roledef, 0); - xmlindent--; - xmlPrint (""); - r = r->next; - } - xmlindent--; - xmlPrint (""); + xmlProtocol (sys, p); } p = p->next; }