]>
Commit | Line | Data |
---|---|---|
70ab085a | 1 | /* |
4ac4a490 | 2 | * Copyright (C) 1996-2017 The Squid Software Foundation and contributors |
70ab085a AJ |
3 | * |
4 | * Squid software is distributed under GPLv2+ license and includes | |
5 | * contributions from numerous individuals and organizations. | |
6 | * Please see the COPYING and CONTRIBUTORS files for details. | |
7 | */ | |
8 | ||
7c16470c AJ |
9 | SMBlib 0.20 |
10 | Richard Sharpe | |
11 | Digital Equipment Corporation | |
12 | ||
13 | This is a first attempt at an SMBlibrary, and is incomplete. | |
14 | ||
15 | I wrote it in an attempt to understand more about the SMB protocol and | |
16 | the RFCNB (NBT) protocol underlying it. My manager approved my posting this | |
17 | as long as there was no suggestion that Digital is responsible for this code | |
18 | not that any warranties are offered by Digital. So, I put a GPL on the code. | |
19 | ||
20 | DISCLAIMER | |
21 | ||
22 | To restate, this code is offered as is, and no warranties are implied, either | |
23 | by Digital Equipment Corporation or by Richard Sharpe. Neither | |
24 | Digital Equipment Corporation nor Richard Sharpe can be held liable for | |
25 | any consequences resulting from the use of this code. | |
26 | ||
27 | END Disclaimer | |
28 | ||
29 | At the moment, it can connect to Windows NT servers, Windows 95 servers, | |
30 | PATHWORKS 4 VMS and PATHWORKS 4 Ultrix servers, as well as Samba. | |
31 | ||
32 | It can Connect, Negotiate a protocol, logon to a Samba Server, Logon to | |
33 | Windows NT, Logon to LAN Manager 2.2 (for UNIX) server, connect to a tree, | |
34 | open a file, create a file, read a file, write a file, delete a file, | |
35 | close a file, disconnect a tree connection, create a directory, delete a | |
36 | directory, check a directory. | |
37 | This represents about 75% of the core protocol. | |
38 | ||
39 | It has a number of deficiencies: | |
40 | ||
41 | a. It does not do any more than the Core Protocol (except for logon). | |
42 | ||
43 | b. Because of the structure of the code, it is not going to be easy to use | |
44 | the And_X commands properly. | |
45 | ||
46 | c. It will not be easy to use OPLOCKS (if I understand them well) as they | |
47 | will result in unsolicited SMBs from the server to break locks. | |
48 | ||
49 | d. It does not check that SMBs received are in response to SMBs sent. This | |
50 | is a lack of defensive programming. | |
51 | ||
52 | e. It is not thread safe. | |
53 | ||
54 | It is offered as an example for those who might want to take things | |
55 | further. I am unhappy about the way that some things have panned out, | |
56 | and may tinker with this some more over time. I am also happy to answer | |
57 | questions, time permitting. | |
58 | ||
59 | The files here are: | |
60 | ||
61 | Makefile: a small makefile to build things in this dir ... | |
62 | ||
63 | smblib.h: include file of interface routines for SMBlib | |
64 | ||
65 | smblib-priv.h: include file of internal stuff to SMBlib | |
66 | ||
67 | std-defines.h: some standard defines I needed. | |
68 | ||
69 | smblib.c: the beginnings of routines that connect and logon | |
70 | ||
71 | file.c: the beginings of routines that do SMB file ops | |
72 | ||
73 | smblib-util.c: utility routines for SMBlib | |
74 | ||
75 | test_smblib.c: a small test program | |
76 | ||
77 | test_perf.c: the beginings of a performance test routine ... | |
78 | ||
79 | usage.txt: some documentation on using all the routines ... | |
80 | ||
81 | Testing: | |
82 | ||
83 | This has been compiled and tested on ULTRIX and Digital UNIX, and some | |
84 | testing has been done on Linux, but I have not tested it on any other | |
85 | versions of UNIX. | |
86 | ||
87 | Regards | |
88 | Richard Sharpe | |
89 | sharpe@nmesis.enet.dec.com | |
90 | ||
91 | ||
92 | ||
93 |