[Vm-dev] [commit][3748] Mantis 0007819: Add Systemd socket activation patch for the VM in SocketPlugin

David T. Lewis lewis at mail.msen.com
Sun Aug 28 22:56:17 UTC 2016


On Sun, Aug 28, 2016 at 04:56:10PM +0000, Fabio Niephaus wrote:
>  
> Shouldn't this patch go to the new OpenSmalltalk-VM repository at:
> https://github.com/OpenSmalltalk/opensmalltalk-vm ?

Is anyone interested in building context interpreter VMs from the
platforms tree on Github and/or making the Cmake build process work
in that environment?

The Cmake build for interpreter VM expects to use the SVN repository,
and I certainly would like to keep that healthy if possible. I don't
know if there is any interest in updating that code in Github, given
that stack interpreter VMs are intended to replace the context interpreter
anyway.

Comments?

Dave

> 
> Best,
> Fabio
> 
> -- 
> 
> On Sun, Aug 28, 2016 at 5:56 PM <commits at squeakvm.org> wrote:
> 
> >
> > Revision: 3748
> > Author:   lewis
> > Date:     2016-08-28 08:56:19 -0700 (Sun, 28 Aug 2016)
> > Log Message:
> > -----------
> > Mantis 0007819: Add Systemd socket activation patch for the VM in
> > SocketPlugin
> >
> > Patch by Max Leske <maxleske at gmail.com> and Nik Lutz, with socket type
> > definitions as per oscog branch.
> >
> > Note that ProvidedTCPSocketType is now defined as 65536, whereas the
> > original patch (as implemented for cmsbox) defined it as 2.
> >
> > This update is already present in oscog for Cog and Spur VMs.
> >
> > Modified Paths:
> > --------------
> >     trunk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c
> >
> > Modified: trunk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c
> > ===================================================================
> > --- trunk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c    2016-08-10
> > 19:32:25 UTC (rev 3747)
> > +++ trunk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c    2016-08-28
> > 15:56:19 UTC (rev 3748)
> > @@ -93,6 +93,12 @@
> >  # define MAXHOSTNAMELEN        256
> >  #endif
> >
> > +#ifdef HAVE_SD_DAEMON
> > +# include <systemd/sd-daemon.h>
> > +#else
> > +# define SD_LISTEN_FDS_START 3
> > +# define sd_listen_fds(u) 0
> > +#endif
> >
> >  /* debugging stuff. can probably be deleted */
> >
> > @@ -117,10 +123,22 @@
> >
> >  /*** Socket types ***/
> >
> > -#define TCPSocketType          0
> > -#define UDPSocketType          1
> > +#define TCPSocketType                  0 /* SOCK_STREAM on AF_INET or
> > AF_INET6 */
> > +#define UDPSocketType                  1 /* SOCK_DGRAM on AF_INET or
> > AF_INET6 */
> > +#define RAWSocketType                  2 /* SOCK_RAW on AF_INET or
> > AF_INET6 */
> > +#define SeqPacketSocketType            3 /* SOCK_SEQPACKET on AF_INET or
> > AF_INET6 */
> > +#define ReliableDGramSocketType        4 /* SOCK_RDM on AF_INET or
> > AF_INET6 */
> >
> > +#define ReuseExistingSocket            65536
> >
> > +#define ProvidedTCPSocketType          (TCPSocketType +
> > ReuseExistingSocket)
> > +#define ProvidedUDPSocketType          (UDPSocketType +
> > ReuseExistingSocket)
> > +#define ProvidedRAWSocketType          (RAWSocketType +
> > ReuseExistingSocket)
> > +#define ProvidedSeqPacketSocketType    (SeqPacketSocketType +
> > ReuseExistingSocket)
> > +#define ProvidedReliableDGramSocketType        (ReliableDGramSocketType +
> > ReuseExistingSocket)
> > +
> > +
> > +
> >  /*** Resolver states ***/
> >
> >  #define ResolverUninitialised  0
> > @@ -549,6 +567,20 @@
> >        /* --- UDP --- */
> >        newSocket= socket(domain, SOCK_DGRAM, 0);
> >      }
> > +  else if (ProvidedTCPSocketType == socketType)
> > +    {
> > +      /* --- Existing socket --- */
> > +      if (sd_listen_fds(0) == 0)
> > +        {
> > +          socketType = TCPSocketType;
> > +          newSocket= SD_LISTEN_FDS_START + 0;
> > +        }
> > +      else
> > +        {
> > +          interpreterProxy->success(false);
> > +          return;
> > +        }
> > +    }
> >    if (-1 == newSocket)
> >      {
> >        /* socket() failed, or incorrect socketType */
> >
> >



More information about the Vm-dev mailing list