| #include <u.h> |
| #include <libc.h> |
| #include <venti.h> |
| |
| int |
| vtfcallfmt(Fmt *f) |
| { |
| VtFcall *t; |
| |
| t = va_arg(f->args, VtFcall*); |
| if(t == nil){ |
| fmtprint(f, "<nil fcall>"); |
| return 0; |
| } |
| switch(t->msgtype){ |
| default: |
| return fmtprint(f, "%c%d tag %ud", "TR"[t->msgtype&1], t->msgtype>>1, t->tag); |
| case VtRerror: |
| return fmtprint(f, "Rerror tag %ud error %s", t->tag, t->error); |
| case VtTping: |
| return fmtprint(f, "Tping tag %ud", t->tag); |
| case VtRping: |
| return fmtprint(f, "Rping tag %ud", t->tag); |
| case VtThello: |
| return fmtprint(f, "Thello tag %ud vers %s uid %s strength %d crypto %d:%.*H codec %d:%.*H", t->tag, |
| t->version, t->uid, t->strength, t->ncrypto, t->ncrypto, t->crypto, |
| t->ncodec, t->ncodec, t->codec); |
| case VtRhello: |
| return fmtprint(f, "Rhello tag %ud sid %s rcrypto %d rcodec %d", t->tag, t->sid, t->rcrypto, t->rcodec); |
| case VtTgoodbye: |
| return fmtprint(f, "Tgoodbye tag %ud", t->tag); |
| case VtRgoodbye: |
| return fmtprint(f, "Rgoodbye tag %ud", t->tag); |
| case VtTauth0: |
| return fmtprint(f, "Tauth0 tag %ud auth %.*H", t->tag, t->nauth, t->auth); |
| case VtRauth0: |
| return fmtprint(f, "Rauth0 tag %ud auth %.*H", t->tag, t->nauth, t->auth); |
| case VtTauth1: |
| return fmtprint(f, "Tauth1 tag %ud auth %.*H", t->tag, t->nauth, t->auth); |
| case VtRauth1: |
| return fmtprint(f, "Rauth1 tag %ud auth %.*H", t->tag, t->nauth, t->auth); |
| case VtTread: |
| return fmtprint(f, "Tread tag %ud score %V blocktype %d count %d", t->tag, t->score, t->blocktype, t->count); |
| case VtRread: |
| return fmtprint(f, "Rread tag %ud count %d", t->tag, packetsize(t->data)); |
| case VtTwrite: |
| return fmtprint(f, "Twrite tag %ud blocktype %d count %d", t->tag, t->blocktype, packetsize(t->data)); |
| case VtRwrite: |
| return fmtprint(f, "Rwrite tag %ud score %V", t->tag, t->score); |
| case VtTsync: |
| return fmtprint(f, "Tsync tag %ud", t->tag); |
| case VtRsync: |
| return fmtprint(f, "Rsync tag %ud", t->tag); |
| } |
| } |