Update of /cvsroot/linux-decnet/dnprogs/dapfs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17195
Modified Files:
dapfs.c dapfs_dap.cc
Log Message:
A couple of dapfs fixes:
- fix editors. by assiming that files opened with O_WRONLY create a new version.
- fix find, the DIR attribute was being applied to the wrong file!
Index: dapfs.c
===================================================================
RCS file: /cvsroot/linux-decnet/dnprogs/dapfs/dapfs.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -r1.25 -r1.26
*** dapfs.c 4 Apr 2008 13:47:22 -0000 1.25
--- dapfs.c 26 Apr 2008 13:37:18 -0000 1.26
***************
*** 354,361 ****
--- 354,368 ----
fab.fab$b_shr = FAB$M_GET;
}
+ /* O_WRONLY also means CREAT (well here it does anyway) */
+ if (fi->flags & O_WRONLY)
+ fi->flags |= O_CREAT;
h->rmsh = rms_open(fullname, fi->flags, &fab);
if (!h->rmsh) {
int saved_errno = errno;
+
+ if (debuglevel)
+ fprintf(stderr, "rms_open returned NULL, errno=%d (rmserror: %s)\n", errno, rms_openerror());
+
free(h);
***************
*** 388,392 ****
if (debuglevel&1)
! fprintf(stderr, "dapfs_read: %s offset=%lld\n", path, offset);
if (!h) {
--- 395,399 ----
if (debuglevel&1)
! fprintf(stderr, "dapfs_read (%p): %s offset=%lld\n", h->rmsh, path, offset);
if (!h) {
***************
*** 395,398 ****
--- 402,408 ----
return res;
h = (struct dapfs_handle *)fi->fh;
+ if (debuglevel&1)
+ fprintf(stderr, "dapfs_read (%p)\n", h->rmsh);
+
}
***************
*** 496,500 ****
}
! syslog(LOG_DEBUG, "dapfs_write. offset=%d, (%p) fh->offset=%d\n", (int)offset, h, (int)h->offset);
memset(&rab, 0, sizeof(rab));
if (offset && offset != h->offset) {
--- 506,511 ----
}
! if (debuglevel)
! fprintf(stderr, "dapfs_write (%p). offset=%d, (%p) fh->offset=%d\n", h->rmsh, (int)offset, h, (int)h->offset);
memset(&rab, 0, sizeof(rab));
if (offset && offset != h->offset) {
***************
*** 506,516 ****
res = rms_write(h->rmsh, (char *)buf, size, &rab);
if (res == -1) {
! syslog(LOG_DEBUG, "rms_write returned %d, errno=%d\n", res, errno);
res = -errno;
}
else {
h->offset += size;
res = size;
- syslog(LOG_DEBUG, "rms_write returned 0, offset (%p) now=%d\n", h, (int)h->offset);
}
return res;
--- 517,529 ----
res = rms_write(h->rmsh, (char *)buf, size, &rab);
if (res == -1) {
! if (debuglevel)
! fprintf(stderr, "rms_write returned %d, errno=%d (rmserror: %s)\n", res, errno, rms_lasterror(h->rmsh));
res = -errno;
}
else {
h->offset += size;
+ if (debuglevel)
+ fprintf(stderr, "rms_write returned %d, offset now=%d\n", res, (int)h->offset);
res = size;
}
return res;
***************
*** 523,527 ****
if (debuglevel&1)
! fprintf(stderr, "dapfs_release: %s\n", path);
if (!h)
--- 536,540 ----
if (debuglevel&1)
! fprintf(stderr, "dapfs_release (%p): %s \n", h->rmsh, path);
if (!h)
Index: dapfs_dap.cc
===================================================================
RCS file: /cvsroot/linux-decnet/dnprogs/dapfs/dapfs_dap.cc,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** dapfs_dap.cc 28 Mar 2008 07:50:21 -0000 1.14
--- dapfs_dap.cc 26 Apr 2008 13:37:18 -0000 1.15
***************
*** 325,331 ****
switch (m->get_type())
{
! case dap_message::NAME:
! {
! // Got a new name, send the old stuff.
if (name_pending)
{
--- 325,330 ----
switch (m->get_type())
{
! case dap_message::ACK:
! // Got all the file info
if (name_pending)
{
***************
*** 346,350 ****
--- 345,352 ----
memset(&stbuf, 0, sizeof(stbuf));
}
+ break;
+ case dap_message::NAME:
+ {
dap_name_message *nm = (dap_name_message *)m;
|