1. 16 Jan, 2018 1 commit
    • Leigh Stoller's avatar
      Lots of changes for SSL enabled pubsub: · e44fc90d
      Leigh Stoller authored
      Pubsub libraries are now SSL enabled by default, so that we can talk SSL
      from a perl client. To do this we need another entry point from SWIG
      into the event code, event_register_withssl. At the same time there is a
      new entry point called event_set_sockbufsizes that calls a new pubsub
      entry point pubsub_set_sockbufsizes.
      
      The problem is that current swig generates code that does not compile,
      and since I don't know nothing about swig, I just hand crafted the two
      new routines that needed in event_wrap.c and the few extra lines that go
      into event.pm.
      
      Also change all the link lines to include the ssl/crypto libraries when
      linking.
      e44fc90d
  2. 24 Sep, 2012 1 commit
    • Eric Eide's avatar
      Replace license symbols with {{{ }}}-enclosed license blocks. · 6df609a9
      Eric Eide authored
      This commit is intended to makes the license status of Emulab and
      ProtoGENI source files more clear.  It replaces license symbols like
      "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited
      blocks that contain actual license statements.
      
      This change was driven by the fact that today, most people acquire and
      track Emulab and ProtoGENI sources via git.
      
      Before the Emulab source code was kept in git, the Flux Research Group
      at the University of Utah would roll distributions by making tar
      files.  As part of that process, the Flux Group would replace the
      license symbols in the source files with actual license statements.
      
      When the Flux Group moved to git, people outside of the group started
      to see the source files with the "unexpanded" symbols.  This meant
      that people acquired source files without actual license statements in
      them.  All the relevant files had Utah *copyright* statements in them,
      but without the expanded *license* statements, the licensing status of
      the source files was unclear.
      
      This commit is intended to clear up that confusion.
      
      Most Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the Affero GNU General Public License, version 3
      (AGPLv3).
      
      Most Utah-copyrighted files related to ProtoGENI are distributed under
      the terms of the GENI Public License, which is a BSD-like open-source
      license.
      
      Some Utah-copyrighted files in the Emulab source tree are distributed
      under the terms of the GNU Lesser General Public License, version 2.1
      (LGPL).
      6df609a9
  3. 27 Jul, 2011 1 commit
  4. 19 Jul, 2011 2 commits
  5. 17 Jan, 2011 1 commit
    • Mike Hibler's avatar
      Random Windows (Cygwin) fixes. · 975cc86e
      Mike Hibler authored
      Client-side builds again, but haven't got node to boot correctly.
      Need to get pubsubd installed correctly as a service in place of elvind.
      975cc86e
  6. 18 Sep, 2010 1 commit
    • Mike Hibler's avatar
      Add -ltb to link line. · 0d1f2b6a
      Mike Hibler authored
      This is part of cleaning up the name space of pubsub.  Previously, this
      program was getting the "info" call from libpubsub and that version is going
      to become private.  So use the one in libtb instead.
      0d1f2b6a
  7. 23 Aug, 2010 1 commit
    • Mike Hibler's avatar
      Don't build delay-agent on FreeBSD 8. · 250a633c
      Mike Hibler authored
      Delay agent won't build on FreeBSD 8.x right now due to dummynet API changes.
      Not even sure we will bother to fix this since we have a newer, more OS
      independent agent.
      250a633c
  8. 14 Jul, 2010 1 commit
  9. 23 Feb, 2010 1 commit
  10. 25 Jan, 2010 1 commit
    • Mike Hibler's avatar
      Fixes for Fedora 10. · 9e9c658b
      Mike Hibler authored
      Fix obvious typo in liblocsetup.pm which was getting perl5.10 all cranky.
      Stop statically linking a couple of proxy pieces.  In general, it is/was
      a bad idea, and Fedora 10 doesn't have a static libz anyway.
      9e9c658b
  11. 07 Jul, 2009 1 commit
  12. 11 Jun, 2009 1 commit
  13. 10 Feb, 2009 1 commit
  14. 28 Nov, 2007 1 commit
    • Leigh Stoller's avatar
      Add some small stuff to support the current implementation of the plab · b30e4f95
      Leigh Stoller authored
      evproxy, which uses set_failover and set_connection_retries. The event
      library had these as noops, so that was an easy change. Also, add back
      in the async add/remove subscription stuff, which was already
      implemented in pubsub but not hooked up from the event library.
      
      In the tmcd/plab directory I purged all mention of elvin and changed it
      to "event server". I also renamed the runelvin script to runevents.
      
      In events/proxy I cleaned up the makefile and added evproxyplab to the
      targets list since it should now build okay (no longer needs to link
      against elvin stuff). Renamed elvindtest program to eventping, and
      otherwise purged lots of "elvin" tokens.
      b30e4f95
  15. 25 May, 2007 1 commit
  16. 24 Apr, 2007 1 commit
  17. 23 Apr, 2007 1 commit
  18. 02 Feb, 2007 1 commit
    • Mike Hibler's avatar
      The paint wasn't even dry on the last plab tarball before I have moved on... · c2570cfc
      Mike Hibler authored
      Rev 20 of the tarball has no new function, it is just slimmed down.
      I replaced our large statically linked binaries with dynamically linked ones.
      Also found and stripped a couple of other binaries.
      
      The resulting tarball goes from 5.7MB to 0.9MB.
      
      The Makefile changes are to incorporate the NOSTATIC=1 environment hack
      to enable building the dynamic binaries above.
      c2570cfc
  19. 29 Jan, 2006 1 commit
    • Sachin Goyal's avatar
      · 92a687b9
      Sachin Goyal authored
      Added 2 new programs:
      
      1- elvindtest: a simple program to verify if a particular
          elvindserver is up or not
      
      2- evproxyplab.cc: evproxy for planetlab nodes. It subscribes
         to the following events:
         host = node's ip addr
         objtype = EVPROXY
         objname = __$nodeid_proxy
         eventtype = UPDATE | CLEAR | RELOAD
      
         On UPDATE, it adds a new subscription to listen to an
         experiment conveyed by EXPT field of UPDATE message.
      
         On CLEAR, it removes the subscription for a experiment
         experiment conveyed by EXPT field of CLEAR message.
      
         On RELOAD, it removes all active experiment subscriptions.
      
         Also, while it comes up, it sends a RELAOD event to emulab's
         event-server to reload it with all existing experiments:
      
         host = node's ip addr
         objtype = EVPROXY
         objname = __$nodeid_proxy
         eventtype = RELOAD
      92a687b9
  20. 14 Jan, 2005 1 commit
    • Timothy Stack's avatar
      · dee46d59
      Timothy Stack authored
      Cross compilation fixes for the stargates, 'gmake client' should now
      build, link, and install properly.  Haven't really tried to run stuff though.
      
      	* GNUmakerules: Add target for stripping executables, used instead
      	of "install -s" since that doesn't work for cross-compiling.
      
      	* Makeconf.in: Add ELVIN_CONFIG variable that refers to
      	'elvin-config'.
      
      	* configure, configure.in: Detect and save the elvin-config path
      	since we need a different one for cross-compiling.
      
      	* event/lib/GNUmakefile.in, event/link-agent/GNUmakefile.in,
      	event/linktest/GNUmakefile.in, event/program-agent/GNUmakefile.in,
      	event/proxy/GNUmakefile.in, event/tbgen/GNUmakefile.in,
      	event/trafgen/GNUmakefile.in, os/dijkstra/GNUmakefile.in,
      	os/syncd/GNUmakefile.in, sensors/slothd/GNUmakefile.in,
      	tmcd/GNUmakefile.in, tmcd/linux/GNUmakefile.in: Cross compilation
      	fixes, don't statically link on arm, create "foo-debug"
      	executables with debugging info and install separately stripped
      	ones instead of passing "-s" to install.
      dee46d59
  21. 03 Jan, 2005 1 commit
  22. 24 Jun, 2004 1 commit
    • Mike Hibler's avatar
      Improve the client-side install. With these changes, it should now be · 976133e4
      Mike Hibler authored
      possible to:
      
      	gmake client
      	sudo gmake client-install
      
      on a FBSD4, FBSD5, RHL7.3, and RHL9.0 client node.
      
      There are still some dependencies that are not explicit and which would
      prevent a build/install from working on a "clean" OS.  Two that I know of are:
      you must install our version of the elvin libraries and you must install boost.
      976133e4
  23. 11 May, 2004 1 commit
  24. 20 Apr, 2004 1 commit
    • Mike Hibler's avatar
      Improve the client-install. You can now do a "make client-install" from · 361ee691
      Mike Hibler authored
      the top level.  This will build all the necessary binaries and then install
      them.  This works on FBSD4 and RHL7.3.  It still doesn't work on FBSD5
      (newer compiler that no longer supports a style of use of _FUNCTION_ in the
      event lib) or RHL9 (event lib needs SSL lib which has a bad dependency
      on Kerberos).  Notes:
      
      - requires that elvin libraries be installed on nodes (they are) to build
        event agents, requires linuxthreads be installed on FBSD (it is now) to
        build imagezip (which is installed, but is not strictly necessary)
      
      - installed event-agents and other binaries are stripped
      
      - added a few missing files to the source tree for bsd (healthd.conf)
        and linux (healthd.conf, rc.local)
      
      - the only thing that doesn't get rebuilt in /usr/local/etc/emulab is
        healthd, I couldn't quickly find how it gets built
      
      - uses a scaled down version of libtb with no DB functions (since mysql
        isn't installed on nodes).  N.B. DO NOT DO A CLIENT INSTALL FROM YOUR
        REGULAR OBJ TREE OR ELSE YOU MAY WIND UP WITH A NEUTERED VERSION OF
        libtb.a!
      
      The build-as-well-as-install semantics are counter to the regular install
      targets, but this is what we gotta do for now.  Once the TB source builds
      under Linux and newer BSDs, we could undo this and just require that people
      do a regular "make" followed by "make client-install"  OTOH, there should
      be no reason to require installation of mysql and other server-side packages
      just to build clients (or make them sit through the compilation of assign),
      so maybe we will keep the client build special.
      361ee691
  25. 06 Nov, 2003 1 commit
  26. 05 Nov, 2003 1 commit
    • Leigh Stoller's avatar
      Middle part of the event system changes. The main part of this change · 54bc15c4
      Leigh Stoller authored
      is to add HMACs to events to ensure they that events cannot be
      injected into an experiment by an unauthorized client.
      
      * The frontend now generates a secret key for each experiment and
        stores that into a file and in the DB.
      
      * Each of the event clients, as well as the event producers
        (scheduler, tevc) have a new -k option to specify the name of the
        file. Two new event library functions were added for clients to give
        the key:
      
          event_handle_t
          event_register_withkeyfile(char *name, int threaded, char *keyfile);
      
          event_handle_t
          event_register_withkeydata(char *name, int threaded,
      	   		       unsigned char *keydata, int keylen);
      
      * When the library is in possesion of a key, it will generate an HMAC
        and attach it to outgoing notifications. A client receiving a
        notification will compute an HMAC and compare it against the HMAC in
        the notification. If they do not compare, the notification is
        dropped with a warning message printed (the client callback never
        gets the notification). If the client has not provided a key, then
        the HMAC in the incoming notification is ignored.
      
      * The scheduler also takes a -k option, and will compute HMACs for all
        of the static events ahead of time. That keeps it off the critical
        path.
      
      * The tevc client also takes a -k option. However, tevc will always
        try to find the keyfile (default path) so that it can attach the
        HMAC to dynamic events before sending them to the scheduler (which
        will check to make sure it matches). The scheduler will not accept
        dynamic events without unless the HMAC is present and matches.
      
      * I have rebuilt the elvin librarys, removing all of the X goop and
        the SSL goop. Smaller binaries. So, I had to add -lcrypto to all of
        the client makefiles to that programs link.
      
      * The program-agent got a few more changes. The command string is no
        longer passed inside the event; it comes in when the program agent
        is started, via a config file generated from tmcd data. This gets
        rid of our mostly insecure remote execution facility.
      54bc15c4
  27. 05 Jun, 2003 1 commit
    • Leigh Stoller's avatar
      New event proxy. This proxy is used in lieu of Elvin clustering or · b5d82850
      Leigh Stoller authored
      federation, which is not supported in the version we have source to.
      Basically, we run an elvind on each node. The proxy on each node
      subscribes to all events for that node from the boss elvind, and hands
      them to the local elvind, Each client on the node subscribes to the
      local elvind, and gets its events via the proxy. This should reduce
      the number of connections to boss, and makes it possible to run agents
      inside each virtual node without an FD explosion on boss.
      b5d82850
  28. 28 Apr, 2003 1 commit
  29. 11 Mar, 2003 1 commit
  30. 18 Dec, 2002 1 commit
  31. 13 Aug, 2002 1 commit
  32. 31 Jul, 2002 1 commit
  33. 26 Jul, 2002 1 commit
  34. 10 Jul, 2002 1 commit
  35. 18 Mar, 2002 2 commits
  36. 07 Mar, 2002 1 commit
    • Leigh Stoller's avatar
      Isolate the pain of building threaded (and statically linked) event · 4dad8ebe
      Leigh Stoller authored
      system programs. Build two versions of the event library, one for non
      threaded programs and another (libevent_r.a) for threaded versions.
      Remove all that -pthread goo from all of the makefiles, except for the
      scheduler (which is threaded); it gets linked as before, but with
      -levent_r instead. If you try and use the threaded API without the
      proper link, the library will print an error message and quit.
      4dad8ebe
  37. 26 Feb, 2002 1 commit
  38. 24 Feb, 2002 1 commit