[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
smbfs smb.c smbfs.c smbnetfs.c
From: |
Giuseppe Scrivano |
Subject: |
smbfs smb.c smbfs.c smbnetfs.c |
Date: |
Tue, 14 Jul 2009 17:44:31 +0000 |
CVSROOT: /sources/hurdextras
Module name: smbfs
Changes by: Giuseppe Scrivano <gscrivano> 09/07/14 17:44:31
Modified files:
. : smb.c smbfs.c smbnetfs.c
Log message:
Code cleaning
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/smbfs/smb.c?cvsroot=hurdextras&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/smbfs/smbfs.c?cvsroot=hurdextras&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/smbfs/smbnetfs.c?cvsroot=hurdextras&r1=1.4&r2=1.5
Patches:
Index: smb.c
===================================================================
RCS file: /sources/hurdextras/smbfs/smb.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- smb.c 29 Jun 2007 17:28:48 -0000 1.4
+++ smb.c 14 Jul 2009 17:44:31 -0000 1.5
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2004, 2007 Free Software Foundation, Inc.
- Copyright (C) 2004, 2007 Giuseppe Scrivano.
+ Copyright (C) 2004, 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007, 2009 Giuseppe Scrivano.
Written by Giuseppe Scrivano <address@hidden>
This program is free software; you can redistribute it and/or
Index: smbfs.c
===================================================================
RCS file: /sources/hurdextras/smbfs/smbfs.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- smbfs.c 29 Jun 2007 17:28:48 -0000 1.4
+++ smbfs.c 14 Jul 2009 17:44:31 -0000 1.5
@@ -1,6 +1,6 @@
/*
- Copyright (C) 2004, 2007 Free Software Foundation, Inc.
- Copyright (C) 2004, 2007 Giuseppe Scrivano.
+ Copyright (C) 2004, 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007, 2009 Giuseppe Scrivano.
Written by Giuseppe Scrivano <address@hidden>
This program is free software; you can redistribute it and/or
@@ -75,9 +75,8 @@
int err;
task_get_bootstrap_port (mach_task_self (), &bootstrap);
if (bootstrap == MACH_PORT_NULL)
- {
- error (1, errno, "You need to run this as a translator!");
- }
+ error (EXIT_FAILURE, errno, "You need to run this as a translator!");
+
credentials.server = 0;
credentials.share = 0;
credentials.workgroup = 0;
@@ -86,22 +85,23 @@
argp_parse(&smb_argp, argc, argv, 0, 0, &credentials);
- if((credentials.server == 0) || (credentials.share == 0)||
(credentials.workgroup == 0)|| (credentials.username == 0)||
(credentials.password == 0))
- {
- error(2 , EINVAL, "You must specify server - share - workgroup -
username - password !!!\n");
- }
+ if(!credentials.server || !credentials.share || !credentials.workgroup
+ || !credentials.username || !credentials.password)
+ error (EXIT_FAILURE, EINVAL, "You must specify server - share - workgroup
- username "
+ " - password !!!\n");
err = init_smb ();
if (err < 0)
- {
- error(3, errno, "Error init_smb\n");
- }
+ error (EXIT_FAILURE, errno, "Error init_smb\n");
+
netfs_init();
netfs_startup(bootstrap, 0);
smbfs_init();
+
for(;;)
netfs_server_loop ();
+
smbfs_terminate ();
return 0;
}
Index: smbnetfs.c
===================================================================
RCS file: /sources/hurdextras/smbfs/smbnetfs.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- smbnetfs.c 29 Jun 2007 17:28:48 -0000 1.4
+++ smbnetfs.c 14 Jul 2009 17:44:31 -0000 1.5
@@ -1,6 +1,6 @@
/*
- Copyright (C) 1997, 2002, 2004, 2007 Free Software Foundation, Inc.
- Copyright (C) 2004, 2007 Giuseppe Scrivano.
+ Copyright (C) 1997, 2002, 2004, 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2007, 2009 Giuseppe Scrivano.
Written by Giuseppe Scrivano <address@hidden>
This program is free software; you can redistribute it and/or
@@ -32,11 +32,13 @@
#define DIRENT_NAME_OFFS offsetof (struct dirent, d_name)
/* Length is structure before the name + the name + '\0', all
padded to a four-byte alignment. */
-#define DIRENT_LEN(name_len) ((DIRENT_NAME_OFFS + (name_len) + 1 +
(DIRENT_ALIGN - 1)) & ~(DIRENT_ALIGN - 1))
+#define DIRENT_LEN(name_len) ((DIRENT_NAME_OFFS + (name_len) + 1 \
+ + (DIRENT_ALIGN - 1)) & ~(DIRENT_ALIGN - 1))
struct smb_credentials credentials;
static volatile struct mapped_time_value *maptime;
static struct mutex smb_mutex;
+
char *netfs_server_name = "smbfs";
char *netfs_server_version = "0.1";
int netfs_maxsymlinks = 0;
@@ -71,32 +73,34 @@
free (pt2);
}
else
- {
break;
}
- }
nodes = 0;
}
+
void
-append_node_to_list(struct netnode *n)
+append_node_to_list (struct netnode *n)
{
- n->next=nodes;
- nodes=n;
+ n->next = nodes;
+ nodes = n;
}
+
/* Create a new node and initialize it with default values. */
int
-create_node(struct node **node)
+create_node (struct node **node)
{
struct netnode *n = malloc (sizeof (struct netnode));
+
if(!n)
return ENOMEM;
+
*node = n->node = netfs_make_node (n);
if (!(*node))
{
free (n);
return ENOMEM;
}
- append_node_to_list(n);
+ append_node_to_list (n);
return 0;
}
@@ -104,17 +108,16 @@
search_node (char *filename, struct node *dir)
{
struct netnode *pt = nodes;
+
while (pt)
{
- if ((pt->parent) && (dir == pt->parent->node))
- {
- if (!strcmp (pt->filename, filename))
- {
+ if ((pt->parent) && (dir == pt->parent->node)
+ && !strcmp (pt->filename, filename))
return pt;
- }
- }
+
pt = pt->next;
}
+
return 0;
}
@@ -131,10 +134,12 @@
free (pt->node);
free (pt->filename);
free (pt);
+
if (prevpt)
prevpt->next = pt->next;
else
nodes = pt->next;
+
break;
}
else
@@ -146,16 +151,16 @@
create_root_node ()
{
struct node *node;
- int err=create_node(&node);
- if(err)
+ int err = create_node (&node);
+ if (err)
return;
netfs_root_node = node;
node->nn->parent = 0;
- node->nn->filename = malloc(strlen(credentials.share)+1);
- if(node->nn->filename)
- strcpy(node->nn->filename,credentials.share);
+ node->nn->filename = malloc (strlen (credentials.share) + 1);
+ if (node->nn->filename)
+ strcpy (node->nn->filename, credentials.share);
- netfs_validate_stat (node,0);
+ netfs_validate_stat (node, 0);
}
@@ -167,36 +172,40 @@
struct netnode *n;
struct node *newnode;
io_statbuf_t st;
+
n = search_node (filename, top);
if (n)
{
- *nn=n;
+ *nn = n;
return 0;
}
- err=create_node (&newnode);
- if(err)
+ err = create_node (&newnode);
+ if (err)
return err;
n = newnode->nn;
n->node = newnode;
- if(top)
+
+ if (top)
n->parent = top->nn;
else
n->parent = 0;
+
n->filename = malloc ( strlen(top->nn->filename) + strlen (filename) + 1);
- if(!n->filename)
+ if (!n->filename)
return 0;
- sprintf (n->filename, "%s/%s", top->nn->filename , filename);
+
+ sprintf (n->filename, "%s/%s", top->nn->filename, filename);
mutex_lock (&smb_mutex);
- err = smbc_stat(n->filename, &st);
+ err = smbc_stat (n->filename, &st);
mutex_unlock (&smb_mutex);
- if(err)
+ if (err)
return errno;
/* Consider only directories and regular files. */
- if(((st.st_mode & S_IFDIR) == 0) && ((st.st_mode & S_IFREG) == 0))
+ if (((st.st_mode & S_IFDIR) == 0) && ((st.st_mode & S_IFREG) == 0))
err=-1;
if(err)
{
@@ -204,7 +213,7 @@
return errno;
}
- *nn=n;
+ *nn = n;
return 0;
}
@@ -212,9 +221,9 @@
netfs_validate_stat (struct node * np, struct iouser *cred)
{
mutex_lock (&smb_mutex);
- int err = smbc_stat(np->nn->filename, &np->nn_stat);
+ int err = smbc_stat (np->nn->filename, &np->nn_stat);
mutex_unlock (&smb_mutex);
- if(err)
+ if (err)
return errno;
return 0;
@@ -238,9 +247,10 @@
{
int err;
mutex_lock (&smb_mutex);
- err=smbc_chmod(np->nn->filename,mode);
+ err=smbc_chmod (np->nn->filename,mode);
mutex_unlock (&smb_mutex);
- if(err)
+
+ if (err)
return errno;
else
return 0;
@@ -282,14 +292,16 @@
{
int err;
struct timeval tv;
- tv.tv_usec=0;/* Not used by samba. */
- if(mtime)
- tv.tv_sec=mtime->tv_sec;
+ tv.tv_usec = 0;/* Not used by samba. */
+ if (mtime)
+ tv.tv_sec = mtime->tv_sec;
else
- maptime_read(maptime, &tv);
+ maptime_read (maptime, &tv);
+
mutex_lock (&smb_mutex);
- err=smbc_utimes(np->nn->filename,&tv);
+ err = smbc_utimes (np->nn->filename, &tv);
mutex_unlock (&smb_mutex);
+
if(err)
return errno;
else
@@ -299,37 +311,44 @@
error_t
netfs_attempt_set_size (struct iouser * cred, struct node * np, loff_t size)
{
+ int ret = 0;
+ int fd;
+ int current_filesize;
mutex_lock (&smb_mutex);
- int fd = smbc_open (np->nn->filename, O_WRONLY | O_CREAT, O_RDWR);
+ fd = smbc_open (np->nn->filename, O_WRONLY | O_CREAT, O_RDWR);
mutex_unlock (&smb_mutex);
- int ret=0;
+
if (fd < 0)
- {
return errno;
- }
+
mutex_lock (&smb_mutex);
- int current_filesize = smbc_lseek (fd, 0, SEEK_END);
+
+ current_filesize = smbc_lseek (fd, 0, SEEK_END);
+
mutex_unlock (&smb_mutex);
- if(current_filesize<0)
+
+ if (current_filesize < 0)
{
mutex_lock (&smb_mutex);
smbc_close (fd);
mutex_unlock (&smb_mutex);
return errno;
}
- if(current_filesize<size)
+
+ if (current_filesize < size)
{
/* FIXME. trunc here. */
mutex_lock (&smb_mutex);
smbc_close (fd);
fd = smbc_open (np->nn->filename, O_WRONLY | O_TRUNC, O_RDWR);
mutex_unlock (&smb_mutex);
- current_filesize=0;
+ current_filesize = 0;
}
mutex_lock (&smb_mutex);
ret=smbc_lseek (fd, size, SEEK_SET);
mutex_unlock (&smb_mutex);
+
if (ret < 0)
{
mutex_lock (&smb_mutex);
@@ -337,6 +356,7 @@
mutex_unlock (&smb_mutex);
return errno;
}
+
mutex_lock (&smb_mutex);
smbc_close (fd);
mutex_unlock (&smb_mutex);
@@ -367,7 +387,9 @@
netfs_attempt_lookup (struct iouser * user, struct node * dir, char *name,
struct node ** np)
{
+ struct netnode *n;
error_t err = 0;
+
if (*name == '\0' || strcmp (name, ".") == 0) /*Current directory */
{
netfs_nref (dir);/*Add a reference to current directory */
@@ -383,7 +405,7 @@
if (*np)
{
netfs_nref (*np);
- err=0;
+ err = 0;
}
else
err = ENOENT;
@@ -393,20 +415,24 @@
err = ENOENT;
*np = 0;
}
+
mutex_unlock (&dir->lock);
return err;
}
- mutex_unlock (&dir->lock);
- struct netnode *n;
+ mutex_unlock (&dir->lock);
err = add_node (name, dir,&n);
+
if(err)
return err;
+
*np = n->node;
netfs_nref (*np);
+
if (*np)
err = 0;
+
return err;
}
@@ -419,6 +445,7 @@
filename = malloc (strlen (dir->nn->filename) + strlen (name) + 2);
else
filename = malloc (strlen (credentials.share) + strlen (name) + 1);
+
if (!filename)
return ENOMEM;
@@ -432,7 +459,8 @@
mutex_unlock (&smb_mutex);
free (filename);
- if(err)
+
+ if (err)
return errno;
else
return 0;
@@ -447,14 +475,15 @@
char *filename2; /* Destination file name. */
if (fromdir->nn->filename)
- filename =malloc ( strlen (fromdir->nn->filename) +strlen (fromname) + 2);
+ filename = malloc (strlen (fromdir->nn->filename) + strlen (fromname) + 2);
else
filename = malloc (strlen (credentials.share) + strlen (fromname) + 1);
+
if (!filename)
return ENOMEM;
if (todir->nn->filename)
- filename2 =malloc ( strlen (todir->nn->filename) +strlen (toname) + 2);
+ filename2 =malloc (strlen (todir->nn->filename) + strlen (toname) + 2);
else
filename2 = malloc (strlen (credentials.share) + strlen (toname) + 1);
@@ -480,7 +509,7 @@
free (filename);
free (filename2);
- return err?errno:0;
+ return err ? errno : 0;
}
error_t
@@ -506,14 +535,15 @@
err = smbc_mkdir (filename, mode);
mutex_unlock (&smb_mutex);
- free(filename);
- return err?errno:0;
+ free (filename);
+ return err ? errno : 0;
}
error_t
netfs_attempt_rmdir (struct iouser * user, struct node * dir, char *name)
{
char *filename;
+ error_t err;
if (dir->nn->filename)
filename = malloc (strlen (dir->nn->filename) +strlen (name) + 2);
@@ -528,11 +558,11 @@
sprintf (filename, "%s/%s", credentials.share, name);
mutex_lock (&smb_mutex);
- error_t err = smbc_rmdir (filename);
+ err = smbc_rmdir (filename);
mutex_unlock (&smb_mutex);
free(filename);
- return err?errno:0;
+ return err ? errno : 0;
}
error_t
@@ -554,9 +584,12 @@
netfs_attempt_create_file (struct iouser * user, struct node * dir,
char *name, mode_t mode, struct node ** np)
{
- *np = 0;
- error_t err=0;
+ error_t err = 0;
char *filename;
+ struct netnode *nn;
+ int fd;
+ *np = 0;
+
if (dir->nn->filename)
filename = malloc ( strlen (dir->nn->filename) +strlen (name) + 2);
else
@@ -570,7 +603,7 @@
sprintf (filename, "%s/%s", credentials.share, name);
mutex_lock (&smb_mutex);
- int fd = smbc_open (filename,O_WRONLY | O_CREAT , O_RDWR);
+ fd = smbc_open (filename,O_WRONLY | O_CREAT , O_RDWR);
if (fd < 0)
{
mutex_unlock (&smb_mutex);
@@ -580,13 +613,14 @@
smbc_close (fd);
mutex_unlock (&smb_mutex);
- struct netnode *nn;
- err=add_node (name, dir,&nn);
- if(err)
+ err = add_node (name, dir, &nn);
+
+ if (err)
{
mutex_unlock (&dir->lock);
return err;
}
+
*np = nn->node;
mutex_unlock (&dir->lock);
@@ -611,9 +645,7 @@
mutex_unlock (&smb_mutex);
if (err)
- {
return errno;
- }
if (flags & O_READ)
err = !(S_IREAD & nn_stat.st_mode);
@@ -629,17 +661,19 @@
netfs_attempt_read (struct iouser * cred, struct node * np, loff_t offset,
size_t * len, void *data)
{
+ int fd;
+ int ret = 0;
+
mutex_lock (&smb_mutex);
- int fd = smbc_open (np->nn->filename, O_RDONLY, O_RDWR);
+ fd = smbc_open (np->nn->filename, O_RDONLY, O_RDWR);
mutex_unlock (&smb_mutex);
- int ret = 0;
-
if (fd < 0)
{
*len = 0;
return errno;
}
+
mutex_lock (&smb_mutex);
ret = smbc_lseek (fd, offset, SEEK_SET);
mutex_unlock (&smb_mutex);
@@ -652,9 +686,11 @@
mutex_unlock (&smb_mutex);
return errno;
}
+
mutex_lock (&smb_mutex);
ret = smbc_read (fd, data, *len);
mutex_unlock (&smb_mutex);
+
if (ret < 0)
{
*len = 0;
@@ -663,7 +699,8 @@
mutex_unlock (&smb_mutex);
return errno;
}
- *len=ret;
+
+ *len = ret;
mutex_lock (&smb_mutex);
smbc_close (fd);
mutex_unlock (&smb_mutex);
@@ -674,10 +711,13 @@
netfs_attempt_write (struct iouser * cred, struct node * np, loff_t offset,
size_t * len, void *data)
{
+ int ret = 0;
+ int fd;
+
mutex_lock (&smb_mutex);
- int fd = smbc_open (np->nn->filename, O_WRONLY, O_RDWR);
+ fd = smbc_open (np->nn->filename, O_WRONLY, O_RDWR);
mutex_unlock (&smb_mutex);
- int ret=0;
+
if (fd < 0)
{
*len = 0;
@@ -686,6 +726,7 @@
mutex_lock (&smb_mutex);
ret = smbc_lseek (fd, offset, SEEK_SET) < 0;
mutex_unlock (&smb_mutex);
+
if ((ret < 0) || (ret != offset))
{
*len = 0;
@@ -697,6 +738,7 @@
mutex_lock (&smb_mutex);
ret = smbc_write (fd, data, *len);
mutex_unlock (&smb_mutex);
+
if (ret < 0)
{
*len = 0;
@@ -705,7 +747,8 @@
mutex_unlock (&smb_mutex);
return errno;
}
- *len=ret;
+
+ *len = ret;
mutex_lock (&smb_mutex);
smbc_close (fd);
mutex_unlock (&smb_mutex);
@@ -717,12 +760,14 @@
netfs_report_access (struct iouser * cred, struct node * np, int *types)
{
*types = 0;
- if(fshelp_access(&np->nn_stat, S_IREAD, cred) == 0)
+
+ if (fshelp_access (&np->nn_stat, S_IREAD, cred) == 0)
*types |= O_READ;
- if(fshelp_access(&np->nn_stat, S_IWRITE, cred) == 0)
+ if (fshelp_access (&np->nn_stat, S_IWRITE, cred) == 0)
*types |= O_WRITE;
- if(fshelp_access(&np->nn_stat, S_IEXEC, cred) == 0)
+ if (fshelp_access (&np->nn_stat, S_IEXEC, cred) == 0)
*types |= O_EXEC;
+
return 0;
}
@@ -744,44 +789,46 @@
mach_msg_type_number_t * datacnt, vm_size_t bufsize,
int *amt)
{
- if (!dir)
- return ENOTDIR;
io_statbuf_t st;
struct smbc_dirent * dirent;
int size = 0, dd;
- int nreturningentries=0;
- int err=0;
- int add_dir_entry_size=0;
+ int nreturningentries = 0;
+ int err = 0;
+ int add_dir_entry_size = 0;
char *p = 0;
+ if (!dir)
+ return ENOTDIR;
+
mutex_lock (&smb_mutex);
dd = smbc_opendir (dir->nn->filename);
mutex_unlock (&smb_mutex);
- if (dd<0)
+ if (dd < 0)
return ENOTDIR;
mutex_lock (&smb_mutex);
- err=smbc_lseekdir(dd, entry);
+ err = smbc_lseekdir (dd, entry);
mutex_unlock (&smb_mutex);
if(err)
{
if(errno == EINVAL)
{
- *datacnt=0;
- *amt=0;
+ *datacnt = 0;
+ *amt = 0;
mutex_lock (&smb_mutex);
- smbc_closedir(dd);
+ smbc_closedir (dd);
mutex_unlock (&smb_mutex);
return 0;
}
return errno;
}
- int addSize (char *filename)
+ int
+ addSize (char *filename)
{
- if(nentries == -1 || nreturningentries < nentries)
+ if (nentries == -1 || nreturningentries < nentries)
{
size_t new_size = size + DIRENT_LEN (strlen (filename));
if (bufsize > 0 && new_size > bufsize)
@@ -793,22 +840,26 @@
else
return 1;
}
+
for(;;)
{
mutex_lock (&smb_mutex);
- dirent = smbc_readdir(dd);
+ dirent = smbc_readdir (dd);
mutex_unlock (&smb_mutex);
+
if(!dirent)
break;
- if( (dirent->smbc_type == SMBC_DIR) || (dirent->smbc_type == SMBC_FILE)
)/* Add only files and directories. */
- if(addSize(dirent->name))/* bufsize or nentries reached. */
+
+ /* Add only files and directories. */
+ if ((dirent->smbc_type == SMBC_DIR) || (dirent->smbc_type == SMBC_FILE)
)
+ if (addSize(dirent->name))/* bufsize or nentries reached. */
break;
}
+
if(size > *datacnt) /* if the supplied buffer isn't large enough. */
- {
*data = mmap (0, size, PROT_READ|PROT_WRITE, MAP_ANONYMOUS, 0, 0);
- }
+
if (!(*data) || (*data == (void *) -1))
{
mutex_lock (&smb_mutex);
@@ -816,27 +867,32 @@
mutex_unlock (&smb_mutex);
return ENOMEM;
}
+
mutex_lock (&smb_mutex);
- err=smbc_lseekdir(dd, entry);
+ err=smbc_lseekdir (dd, entry);
mutex_unlock (&smb_mutex);
- if(err)
+
+ if (err)
{
- if(errno == EINVAL)
+ if (errno == EINVAL)
{
- *datacnt=0;
- *amt=0;
+ *datacnt = 0;
+ *amt = 0;
mutex_lock (&smb_mutex);
- smbc_closedir(dd);
+ smbc_closedir (dd);
mutex_unlock (&smb_mutex);
return 0;
}
+
return errno;
}
- add_dir_entry_size=size;
+ add_dir_entry_size = size;
p = *data;
- int count=0;
- int add_dir_entry (const char *name, ino_t fileno, int type)
+ int count = 0;
+
+ int
+ add_dir_entry (const char *name, ino_t fileno, int type)
{
if(count < nreturningentries)
{
@@ -867,9 +923,9 @@
for(;;)
{
mutex_lock (&smb_mutex);
- dirent = smbc_readdir(dd);
- mutex_unlock(&smb_mutex);
- if(!dirent)
+ dirent = smbc_readdir (dd);
+ mutex_unlock (&smb_mutex);
+ if (!dirent)
break;
int type = 0;
if (dirent->smbc_type == SMBC_DIR)
@@ -878,8 +934,10 @@
type = DT_REG;
else
continue;
+
char *stat_file_name;
-
stat_file_name=malloc(strlen(dir->nn->filename)+strlen(dirent->name)+2);
+ stat_file_name = malloc (strlen (dir->nn->filename)
+ + strlen (dirent->name) + 2);
if(!stat_file_name)
{
mutex_lock (&smb_mutex);
@@ -887,30 +945,32 @@
mutex_unlock (&smb_mutex);
return ENOMEM;
}
- if(!strcmp(dirent->name,"."))
+
+ if (!strcmp (dirent->name, "."))
{
- sprintf(stat_file_name,"%s",dir->nn->filename);
+ sprintf (stat_file_name, "%s", dir->nn->filename);
mutex_lock (&smb_mutex);
- err=smbc_stat(stat_file_name, &st);
+ err=smbc_stat (stat_file_name, &st);
mutex_unlock (&smb_mutex);
}
- else if(!strcmp(dirent->name,".."))
+ else if (!strcmp (dirent->name,".."))
{
- if(dir->nn->parent)
- sprintf(stat_file_name,"%s/%s",dir->nn->filename,dirent->name);
+ if (dir->nn->parent)
+ sprintf (stat_file_name, "%s/%s", dir->nn->filename,
dirent->name);
else
- st.st_ino=0;
+ st.st_ino = 0;
}
else
{
- sprintf(stat_file_name,"%s/%s",dir->nn->filename,dirent->name);
+ sprintf (stat_file_name,"%s/%s", dir->nn->filename, dirent->name);
mutex_lock (&smb_mutex);
- err=smbc_stat(stat_file_name, &st);
- mutex_unlock(&smb_mutex);
+ err=smbc_stat (stat_file_name, &st);
+ mutex_unlock (&smb_mutex);
}
- free(stat_file_name);
- if(err)
+ free (stat_file_name);
+
+ if (err)
{
mutex_lock (&smb_mutex);
smbc_closedir(dd);
@@ -918,15 +978,15 @@
return errno;
}
- err=add_dir_entry (dirent->name, st.st_ino, type);
+ err = add_dir_entry (dirent->name, st.st_ino, type);
if (err)
break;
}
- *datacnt=size;
- *amt=nreturningentries;
+ *datacnt = size;
+ *amt = nreturningentries;
mutex_lock (&smb_mutex);
- smbc_closedir(dd);
+ smbc_closedir (dd);
mutex_unlock (&smb_mutex);
return 0;
}
@@ -936,7 +996,8 @@
{
int err;
nodes = 0;
- err = maptime_map(0,0, &maptime);
+ err = maptime_map (0, 0, &maptime);
+
if(err)
return;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- smbfs smb.c smbfs.c smbnetfs.c,
Giuseppe Scrivano <=