summaryrefslogtreecommitdiffstats
path: root/src/libventi/fcallfmt.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-11-23 18:19:58 +0000
committerrsc <devnull@localhost>2003-11-23 18:19:58 +0000
commit056fe1ba7fa0b70f871dfb9005b24eb8e4cc230b (patch)
tree9ad42f31c3bc124cf6617cf9eb41dd525eccce83 /src/libventi/fcallfmt.c
parent9df487d720a59bf8cb0dc4ccffc30ad8eb48256a (diff)
downloadplan9port-056fe1ba7fa0b70f871dfb9005b24eb8e4cc230b.tar.gz
plan9port-056fe1ba7fa0b70f871dfb9005b24eb8e4cc230b.zip
new venti library.
Diffstat (limited to 'src/libventi/fcallfmt.c')
-rw-r--r--src/libventi/fcallfmt.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/libventi/fcallfmt.c b/src/libventi/fcallfmt.c
new file mode 100644
index 00000000..23e13eff
--- /dev/null
+++ b/src/libventi/fcallfmt.c
@@ -0,0 +1,55 @@
+#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->type){
+ default:
+ return fmtprint(f, "%c%d tag %ud", "TR"[t->type&1], t->type>>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 dtype %d count %d", t->tag, t->score, t->dtype, 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 dtype %d count %d", t->tag, t->dtype, 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);
+ }
+}