#include "headers.h" void threadmain(int argc, char *argv[]) { SmbClient *c; char *errmsg; if (argc != 2 && argc != 3) { print("usage: testconnect to [share]\n"); exits("args"); } smbglobalsguess(1); errmsg = nil; c = smbconnect(argv[1], argc == 3 ? argv[2] : nil, &errmsg); if (c) { int i, rv; int entries; SmbRapServerInfo1 *si = nil; SmbFindFileBothDirectoryInfo ip[10]; char *errmsg; ushort sid, searchcount, endofsearch; errmsg = nil; rv = smbnetserverenum2(c, SV_TYPE_SERVER, "PLAN9", &entries, &si, &errmsg); if (rv < 0) print("error: %s\n", errmsg); else if (rv > 0) print("error code %d\n", rv); else for (i = 0; i < entries; i++) print("%s: %d.%d 0x%.8lux %s\n", si[i].name, si[i].vmaj, si[i].vmin, si[i].type, si[i].remark); free(si); if (rv == 0) { rv = smbnetserverenum2(c, SV_TYPE_DOMAIN_ENUM, nil, &entries, &si, &errmsg); if (rv < 0) print("error: %s\n", errmsg); else if (rv > 0) print("error code %d\n", rv); else for (i = 0; i < entries; i++) print("%s: %d.%d 0x%.8lux %s\n", si[i].name, si[i].vmaj, si[i].vmin, si[i].type, si[i].remark); free(si); } rv = smbclienttrans2findfirst2(c, nelem(ip), "\\LICENSE", &sid, &searchcount, &endofsearch, ip, &errmsg); if (rv) { print("sid 0x%.4ux\n", sid); print("searchcount 0x%.4ux\n", searchcount); print("endofsearch 0x%.4ux\n", endofsearch); } else print("search failed %s\n", errmsg); smbclientfree(c); } else print("failed to connect: %s\n", errmsg); }