diff --git a/src/server/prot-a-output.c b/src/server/prot-a-output.c index 69ef44c183ed0a19884280f8e98bba603d40e3b6..afb53c033a7e281899e463bc9c6e51fe7acbef9f 100644 --- a/src/server/prot-a-output.c +++ b/src/server/prot-a-output.c @@ -1,5 +1,5 @@ /* - * $Id: prot-a-output.c,v 0.56 2002/11/12 17:41:33 ceder Exp $ + * $Id: prot-a-output.c,v 0.57 2002/11/13 00:40:52 ceder Exp $ * Copyright (C) 1991-2002 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -110,6 +110,37 @@ void prot_a_output_membership_type(Connection *fp, isc_putc(type.reserved5 + '0', fp->isc_session); } +void +prot_a_output_membership(Connection *fp, + const Membership *mship) +{ + unsigned int i; + + prot_a_output_ul(fp, mship->position); + prot_a_output_time(fp, mship->last_time_read); + prot_a_output_ul(fp, mship->conf_no); + prot_a_output_ul(fp, mship->priority); + + prot_a_output_ul(fp, mship->no_of_read_ranges); + if (mship->read_ranges != NULL && mship->no_of_read_ranges > 0) + { + isc_puts(" {", fp->isc_session); + for (i = 0; i < mship->no_of_read_ranges; i++) + { + prot_a_output_ul(fp, mship->read_ranges[i].first_read); + prot_a_output_ul(fp, mship->read_ranges[i].last_read); + } + isc_puts(" }", fp->isc_session); + } + else + isc_puts(" *", fp->isc_session); + + prot_a_output_ul(fp, mship->added_by); + prot_a_output_time(fp, mship->added_at); + prot_a_output_membership_type(fp, mship->type); +} + + void prot_a_output_membership_10(Connection *fp, const Membership *mship) { @@ -187,6 +218,25 @@ prot_a_output_membership_old(Connection *fp, } +void +prot_a_output_membership_list(Connection *fp, + Membership_list mlist) +{ + int i; + + prot_a_output_ul(fp, mlist.no_of_confs); + + if ( mlist.confs != NULL && mlist.no_of_confs > 0 ) + { + isc_puts(" {", fp->isc_session); + for ( i = 0; i < mlist.no_of_confs; i++) + prot_a_output_membership(fp, mlist.confs + i); + isc_puts(" }", fp->isc_session); + } + else + isc_puts(" *", fp->isc_session); +} + void prot_a_output_membership_list_old (Connection * fp, Membership_list mlist) diff --git a/src/server/prot-a-output.h b/src/server/prot-a-output.h index ad02c81a20e6c4c2ca40814fddd8135dfed95f23..936079050c8f9fe073aa8a62b66c2011273124fd 100644 --- a/src/server/prot-a-output.h +++ b/src/server/prot-a-output.h @@ -1,5 +1,5 @@ /* - * $Id: prot-a-output.h,v 0.27 2002/11/12 17:41:14 ceder Exp $ + * $Id: prot-a-output.h,v 0.28 2002/11/13 00:40:48 ceder Exp $ * Copyright (C) 1991-1992, 1994-1999 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -23,7 +23,7 @@ * Please mail bug reports to bug-lyskom@lysator.liu.se. */ /* - * $Id: prot-a-output.h,v 0.27 2002/11/12 17:41:14 ceder Exp $ + * $Id: prot-a-output.h,v 0.28 2002/11/13 00:40:48 ceder Exp $ * */ extern void @@ -39,6 +39,10 @@ prot_a_output_person_old(Connection *fp, Person *person); +extern void +prot_a_output_membership(Connection *fp, + const Membership *mship); + extern void prot_a_output_membership_10(Connection *fp, const Membership *mship); @@ -47,6 +51,10 @@ extern void prot_a_output_membership_old(Connection *fp, const Membership *mship); +extern void +prot_a_output_membership_list(Connection *fp, + Membership_list mlist); + extern void prot_a_output_membership_list_10(Connection *fp, Membership_list mlist);