plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

fcallfmt.c (1912B)


      1 #include <u.h>
      2 #include <libc.h>
      3 #include <venti.h>
      4 
      5 int
      6 vtfcallfmt(Fmt *f)
      7 {
      8 	VtFcall *t;
      9 
     10 	t = va_arg(f->args, VtFcall*);
     11 	if(t == nil){
     12 		fmtprint(f, "<nil fcall>");
     13 		return 0;
     14 	}
     15 	switch(t->msgtype){
     16 	default:
     17 		return fmtprint(f, "%c%d tag %ud", "TR"[t->msgtype&1], t->msgtype>>1, t->tag);
     18 	case VtRerror:
     19 		return fmtprint(f, "Rerror tag %ud error %s", t->tag, t->error);
     20 	case VtTping:
     21 		return fmtprint(f, "Tping tag %ud", t->tag);
     22 	case VtRping:
     23 		return fmtprint(f, "Rping tag %ud", t->tag);
     24 	case VtThello:
     25 		return fmtprint(f, "Thello tag %ud vers %s uid %s strength %d crypto %d:%.*H codec %d:%.*H", t->tag,
     26 			t->version, t->uid, t->strength, t->ncrypto, t->ncrypto, t->crypto,
     27 			t->ncodec, t->ncodec, t->codec);
     28 	case VtRhello:
     29 		return fmtprint(f, "Rhello tag %ud sid %s rcrypto %d rcodec %d", t->tag, t->sid, t->rcrypto, t->rcodec);
     30 	case VtTgoodbye:
     31 		return fmtprint(f, "Tgoodbye tag %ud", t->tag);
     32 	case VtRgoodbye:
     33 		return fmtprint(f, "Rgoodbye tag %ud", t->tag);
     34 	case VtTauth0:
     35 		return fmtprint(f, "Tauth0 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
     36 	case VtRauth0:
     37 		return fmtprint(f, "Rauth0 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
     38 	case VtTauth1:
     39 		return fmtprint(f, "Tauth1 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
     40 	case VtRauth1:
     41 		return fmtprint(f, "Rauth1 tag %ud auth %.*H", t->tag, t->nauth, t->auth);
     42 	case VtTread:
     43 		return fmtprint(f, "Tread tag %ud score %V blocktype %d count %d", t->tag, t->score, t->blocktype, t->count);
     44 	case VtRread:
     45 		return fmtprint(f, "Rread tag %ud count %d", t->tag, packetsize(t->data));
     46 	case VtTwrite:
     47 		return fmtprint(f, "Twrite tag %ud blocktype %d count %d", t->tag, t->blocktype, packetsize(t->data));
     48 	case VtRwrite:
     49 		return fmtprint(f, "Rwrite tag %ud score %V", t->tag, t->score);
     50 	case VtTsync:
     51 		return fmtprint(f, "Tsync tag %ud", t->tag);
     52 	case VtRsync:
     53 		return fmtprint(f, "Rsync tag %ud", t->tag);
     54 	}
     55 }