int smbc_open(const char *fname, int flags, mode_t mode)
{
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
struct smbc_server *srv = NULL;
int fd;
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_unlink(const char *fname)
{
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
struct smbc_server *srv = NULL;
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_rename(const char *oname, const char *nname)
{
- fstring server1, share1, server2, share2, user1, user2, password1, password2;
+ fstring server1, share1, server2, share2, user1, user2, password1, password2, workgroup;
pstring path1, path2;
struct smbc_server *srv = NULL;
}
- srv = smbc_server(server1, share1, lp_workgroup(), user1, password1);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server1, share1, workgroup, user1, password1);
if (!srv) {
return -1;
int smbc_stat(const char *fname, struct stat *st)
{
struct smbc_server *srv;
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
time_t m_time = 0, a_time = 0, c_time = 0;
size_t size = 0;
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_opendir(const char *fname)
{
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
struct smbc_server *srv = NULL;
struct in_addr rem_ip;
if (user[0] == (char)0) pstrcpy(user, smbc_user);
+ pstrcpy(workgroup, lp_workgroup());
+
/* Get a file entry ... */
slot = 0;
/* We have server and share and path empty ... so list the workgroups */
- /*cli_get_backup_server(my_netbios_name, lp_workgroup(), server, sizeof(server));*/
+ /*cli_get_backup_server(my_netbios_name, workgroup, server, sizeof(server));*/
if (!resolve_name(lp_workgroup(), &rem_ip, 0x1d)) {
* Get a connection to IPC$ on the server if we do not already have one
*/
- srv = smbc_server(server, "IPC$", lp_workgroup(), user, password);
+ srv = smbc_server(server, "IPC$", workgroup, user, password);
if (!srv) {
/* Now, list the stuff ... */
- if (!cli_NetServerEnum(&srv->cli, lp_workgroup(), 0x80000000, list_fn,
+ if (!cli_NetServerEnum(&srv->cli, workgroup, 0x80000000, list_fn,
(void *)smbc_file_table[slot])) {
if (smbc_file_table[slot]) {
}
/* Check to see if <server><1D> translates, or <server><20> translates */
+ /* However, we check to see if <server> is an IP address first */
- if (resolve_name(server, &rem_ip, 0x1d)) { /* Found LMB */
+ if (!is_ipaddress(server) && /* Not an IP addr so check next */
+ resolve_name(server, &rem_ip, 0x1d)) { /* Found LMB */
pstring buserver;
smbc_file_table[slot]->dir_type = SMBC_SERVER;
* Get a connection to IPC$ on the server if we do not already have one
*/
- srv = smbc_server(buserver, "IPC$", lp_workgroup(), user, password);
+ srv = smbc_server(buserver, "IPC$", workgroup, user, password);
if (!srv) {
smbc_file_table[slot]->dir_type = SMBC_FILE_SHARE;
- srv = smbc_server(server, "IPC$", lp_workgroup(), user, password);
+ srv = smbc_server(server, "IPC$", workgroup, user, password);
if (!srv) {
smbc_file_table[slot]->dir_type = SMBC_FILE_SHARE;
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_mkdir(const char *fname, mode_t mode)
{
struct smbc_server *srv;
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
if (!smbc_initialized) {
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_rmdir(const char *fname)
{
struct smbc_server *srv;
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
if (!smbc_initialized) {
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_list_print_jobs(const char *fname, void (*fn)(struct print_job_info *))
{
struct smbc_server *srv;
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
if (!smbc_initialized) {
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {
int smbc_unlink_print_job(const char *fname, int id)
{
struct smbc_server *srv;
- fstring server, share, user, password;
+ fstring server, share, user, password, workgroup;
pstring path;
int err;
if (user[0] == (char)0) pstrcpy(user, smbc_user);
- srv = smbc_server(server, share, lp_workgroup(), user, password);
+ pstrcpy(workgroup, lp_workgroup());
+
+ srv = smbc_server(server, share, workgroup, user, password);
if (!srv) {