+ * The general format of an SMB URI is explain in Christopher Hertel's CIFS
+ * book, at http://ubiqx.org/cifs/Appendix-D.html. We accept a subset of the
+ * general format ("smb:" only; we do not look for "cifs:"), and expand on
+ * what he calls "context", herein called "options" to avoid conflict with the
+ * SMBCCTX context used throughout this library. We add the "mb" keyword
+ * which applies as follows:
+ *
+ *
+ * We accept:
+ * smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]][?options]
+ *
+ * Meaning of URLs:
+ *
+ * smb:// show all workgroups known by the first master browser found
+ * smb://?mb=.any same as smb:// (i.e. without any options)
+ *
+ * smb://?mb=.all show all workgroups known by every master browser found.
+ * Why might you want this? In an "appliance" application
+ * where the workgroup/domain being used on the local network
+ * is not known ahead of time, but where one wanted to
+ * provide network services via samba, a unique workgroup
+ * could be used. However, when the appliance is first
+ * started, the local samba instance's master browser has not
+ * synchronized with the other master browser(s) on the
+ * network (and might not synchronize for 12 minutes) and
+ * therefore is not aware of the workgroup/ domain names
+ * available on the network. This option may be used to
+ * overcome the problem of a libsmbclient application
+ * arbitrarily selecting the local (still ignorant) master
+ * browser to obtain its list of workgroups/domains and
+ * getting back a practically emmpty list. By requesting
+ * the list of workgroups/domains from each found master
+ * browser on the local network, a complete list of
+ * workgroups/domains can be built.
+ *
+ * smb://?mb=name NOT YET IMPLEMENTED -- show all workgroups known by the
+ * master browser whose name is "name"
+ *
+ * smb://name/ if name<1D> or name<1B> exists, list servers in
+ * workgroup, else, if name<20> exists, list all shares
+ * for server ...
+ *
+ * If "options" are provided, this function returns the entire option list as
+ * a string, for later parsing by the caller.