1*8ccd4a63SDavid du Colombier #include "headers.h"
2*8ccd4a63SDavid du Colombier
3*8ccd4a63SDavid du Colombier void
threadmain(int argc,char * argv[])4*8ccd4a63SDavid du Colombier threadmain(int argc, char *argv[])
5*8ccd4a63SDavid du Colombier {
6*8ccd4a63SDavid du Colombier SmbClient *c;
7*8ccd4a63SDavid du Colombier char *errmsg;
8*8ccd4a63SDavid du Colombier if (argc != 2 && argc != 3) {
9*8ccd4a63SDavid du Colombier print("usage: testconnect to [share]\n");
10*8ccd4a63SDavid du Colombier exits("args");
11*8ccd4a63SDavid du Colombier }
12*8ccd4a63SDavid du Colombier smbglobalsguess(1);
13*8ccd4a63SDavid du Colombier errmsg = nil;
14*8ccd4a63SDavid du Colombier c = smbconnect(argv[1], argc == 3 ? argv[2] : nil, &errmsg);
15*8ccd4a63SDavid du Colombier if (c) {
16*8ccd4a63SDavid du Colombier int i, rv;
17*8ccd4a63SDavid du Colombier int entries;
18*8ccd4a63SDavid du Colombier SmbRapServerInfo1 *si = nil;
19*8ccd4a63SDavid du Colombier SmbFindFileBothDirectoryInfo ip[10];
20*8ccd4a63SDavid du Colombier char *errmsg;
21*8ccd4a63SDavid du Colombier ushort sid, searchcount, endofsearch;
22*8ccd4a63SDavid du Colombier errmsg = nil;
23*8ccd4a63SDavid du Colombier rv = smbnetserverenum2(c, SV_TYPE_SERVER, "PLAN9", &entries, &si, &errmsg);
24*8ccd4a63SDavid du Colombier if (rv < 0)
25*8ccd4a63SDavid du Colombier print("error: %s\n", errmsg);
26*8ccd4a63SDavid du Colombier else if (rv > 0)
27*8ccd4a63SDavid du Colombier print("error code %d\n", rv);
28*8ccd4a63SDavid du Colombier else
29*8ccd4a63SDavid du Colombier for (i = 0; i < entries; i++)
30*8ccd4a63SDavid du Colombier print("%s: %d.%d 0x%.8lux %s\n", si[i].name, si[i].vmaj, si[i].vmin, si[i].type, si[i].remark);
31*8ccd4a63SDavid du Colombier free(si);
32*8ccd4a63SDavid du Colombier if (rv == 0) {
33*8ccd4a63SDavid du Colombier rv = smbnetserverenum2(c, SV_TYPE_DOMAIN_ENUM, nil, &entries, &si, &errmsg);
34*8ccd4a63SDavid du Colombier if (rv < 0)
35*8ccd4a63SDavid du Colombier print("error: %s\n", errmsg);
36*8ccd4a63SDavid du Colombier else if (rv > 0)
37*8ccd4a63SDavid du Colombier print("error code %d\n", rv);
38*8ccd4a63SDavid du Colombier else
39*8ccd4a63SDavid du Colombier for (i = 0; i < entries; i++)
40*8ccd4a63SDavid du Colombier print("%s: %d.%d 0x%.8lux %s\n", si[i].name, si[i].vmaj, si[i].vmin, si[i].type, si[i].remark);
41*8ccd4a63SDavid du Colombier free(si);
42*8ccd4a63SDavid du Colombier }
43*8ccd4a63SDavid du Colombier rv = smbclienttrans2findfirst2(c, nelem(ip), "\\LICENSE",
44*8ccd4a63SDavid du Colombier &sid, &searchcount, &endofsearch, ip, &errmsg);
45*8ccd4a63SDavid du Colombier if (rv) {
46*8ccd4a63SDavid du Colombier print("sid 0x%.4ux\n", sid);
47*8ccd4a63SDavid du Colombier print("searchcount 0x%.4ux\n", searchcount);
48*8ccd4a63SDavid du Colombier print("endofsearch 0x%.4ux\n", endofsearch);
49*8ccd4a63SDavid du Colombier }
50*8ccd4a63SDavid du Colombier else
51*8ccd4a63SDavid du Colombier print("search failed %s\n", errmsg);
52*8ccd4a63SDavid du Colombier smbclientfree(c);
53*8ccd4a63SDavid du Colombier }
54*8ccd4a63SDavid du Colombier else
55*8ccd4a63SDavid du Colombier print("failed to connect: %s\n", errmsg);
56*8ccd4a63SDavid du Colombier }
57