From ee937667fd0ecd82faab4c88d756b906fb625f1a Mon Sep 17 00:00:00 2001 From: sc Date: Tue, 28 Nov 2000 17:07:47 +0000 Subject: Integration into IvyLeague Uvh -> Ivl Multiplexer.* is renamed into Scheduler.* A few name conflicts in the merger with ex-DNN have been solved Imakefile is replaced by Makefile Created InetAddress.* and UnixAddress.* from Address.* Created IrdaAddress.* OLD/TextStream has been updated --- comm/UnixAddress.cc | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 comm/UnixAddress.cc (limited to 'comm/UnixAddress.cc') diff --git a/comm/UnixAddress.cc b/comm/UnixAddress.cc new file mode 100644 index 0000000..469fa2e --- /dev/null +++ b/comm/UnixAddress.cc @@ -0,0 +1,86 @@ +/* + * The Unix Channel + * + * by Michel Beaudouin-Lafon + * + * Copyright 1990-1997 + * Laboratoire de Recherche en Informatique (LRI) + * + * Unix Addresses + * + * $Id$ + * $CurLog$ + * Created from Address.cc + */ + +#include "UnixAddress.h" +#include "error.h" + +#include + +// constructors for Unix addresses +// a Unix domain address is just a filename +// -> some problems: check for access, when to unlink it ? +// to do : generate name from a template (for uniqueness) +// + +/*?nodoc?*/ +IvlUnixAddress :: IvlUnixAddress () +: IvlAddress () +{ +} + +/*? +Create a Unix domain address associated to file \var{filename}. +The file is not unlinked when the address is destroyed; +it should be unlinked by the application whenever the last socket using this address is closed. +?*/ +IvlUnixAddress :: IvlUnixAddress (const char* filename) +: IvlAddress () +{ + Addr.sun_family = AF_UNIX; + strcpy (Addr.sun_path, filename); + Valid = true; + // should check access to file ??? + // unlink if already there ? +} + +/*?nodoc?*/ +IvlUnixAddress :: ~IvlUnixAddress () +{ + // how to unlink the file ?? +} + +/*?nodoc?*/ +int +IvlUnixAddress :: Family () +{ + return AF_UNIX; +} + +/*?nodoc?*/ +int +IvlUnixAddress :: Length () +{ + if (Valid) + return (Addr.sun_path + strlen (Addr.sun_path)) - (char*) &Addr; + return 0; +} + +/*?nodoc?*/ +SockAddr* +IvlUnixAddress :: GetSockAddr () +{ + return (SockAddr*) &Addr; +} + +/*?nodoc?*/ +char* +IvlUnixAddress :: StrRepr (char* buf) +{ + sprintf (buf, "%s", Addr.sun_path); + return buf; +} + + + -- cgit v1.1