bug-fileutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mknod for type 'SOCKET'


From: Bob Proulx
Subject: Re: mknod for type 'SOCKET'
Date: Wed, 5 Jun 2002 10:34:15 -0600

> Hi there,
> Facts:
> 1.    Our product is a Backup-Restore product. 
> 2.    On HP11.00 Platforms, when Unix Domain Sockets are created, there is
> a /tmp/<socket_path_name> created for the UNIX PATH.
> 
> Issue: Our Backup Products are able to backup this empty file with type
> "SOCK" (I_ISSOCK = TRUE). But when we restore, the same file, system
> does not let us create a file with MODE as SOCKET... (As that is what is

How are you trying to create the socket?  You are using the the
socket(2) system call?  That is the normal way to create unix domain
sockets.  I personally had never considered it possible to create unix
domain sockets with mknod, either system call or shell command.

I am shocked and amazed that you are trying to do this with shell
scripts and are using the external GNU mknod(1) command and not using
a C program which would use the operating system kernel's mknod(2) or
socket(2) commands.  That is truly remarkable!  The GNU mknod(1)
command just calls the kernel mknod(2) command and will do whatever
the kernel allows it to do.

> backed up). But what we find from our experience is: the same types are
> able to be restored successfully on Solaris and Linux. WHy we can't do that
> on HP or is there any way of doing it?

Could you furnish an example of creating a unix domain socket using
the standalone GNU mknod command?  That sounds interesting and I did
not realize that was possible.  On the systems where this works can
you furnish the version of the command that you are using?

While the mknod command was designed to make 'special files' the BSD
folks who created BSD network sockets created their own interface and
I don't think any of that interface ever made it back into the mknod
command.  I am probably wrong here, though.  It just does not seem too
useful to create a unix domain socket using a shell command since you
would not be able to keep hold of the file descriptor.  You would need
to create an interface where it passed the file descriptor to child
processes or some such and that gets messy really fast.  Unix domain
sockets are not like pipes where you can just open and close them
later on by random processes.

Thanks
Bob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]