#include #include #include enum { Nsha = 5, }; typedef struct Tor Tor; struct Tor{ uchar sha1list[Nsha][SHA1dlen]; }; void sha1pr(uchar *u) { char buf[SHA1dlen*2 + 1]; int i; for(i = 0; i < SHA1dlen; i++) sprint(buf + 2*i, "%.2ux", u[i]); print("%s\n", buf); } void main(void) { char *addr, *port; int i, j, fd; Tor *tor; port = strdup("8088"); addr = strdup("ladd"); tor = malloc(sizeof *tor); if(tor == nil) sysfatal("malloc: %r"); memset(tor, 0, sizeof *tor); for(i = 0; i < Nsha; i++) for(j = 0; j < SHA1dlen; j++) tor->sha1list[i][j] = i*20 + j; for(i = 0; i < Nsha ; i++) sha1pr(tor->sha1list[i]); print("addr called: %s\n", netmkaddr(addr, "tcp", port)); fd = dial(netmkaddr(addr, "tcp", port), nil, nil, nil); if(fd < 0){ fprint(2, "can't dial %s: %r\n", addr); exits("dialing"); } close(fd); for(i = 0; i < Nsha; i++) sha1pr(tor->sha1list[i]); free(tor); free(addr); free(port); exits(""); };