1. 05 Nov, 2003 1 commit
    • Leigh B. Stoller's avatar
      Middle part of the event system changes. The main part of this change · 54bc15c4
      Leigh B. 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
  2. 27 Oct, 2003 1 commit
  3. 06 Jan, 2003 1 commit
  4. 10 Jul, 2002 1 commit
  5. 29 Mar, 2002 2 commits
    • Robert Ricci's avatar
      Comment out the target that runs swig, as gmake seems to be invoking · bbd6db94
      Robert Ricci authored
      it even though it doesn't need to be.
      bbd6db94
    • Robert Ricci's avatar
      Remove SWIG from the build process - unfortunately, it's slightly · 8ffb8cf4
      Robert Ricci authored
      broken. Also, it made me slightly uneasy that there was no way to
      prevent swig from putting one of its generated files in sorce
      directory. So, I've just checked in the two major files that get
      generated by SWIG, so that the make rule that runs it never gets
      invoked.
      
      One of the reasons for doing this is that swig generates slightly
      broken code when the -exportall (which does perl module exports
      correctly) arugment is given. A very minor amount of manual tweaking
      of the generated .pm file can fix this problem. So, the checked in
      copy of event.pm has these tweaks applied.
      
      As a result of all of this, exports work correctly in the event perl
      module, so the hacky practice of putting your program in the event
      namespace is no longer necessary.
      8ffb8cf4
  6. 28 Mar, 2002 1 commit
  7. 25 Mar, 2002 1 commit
    • Robert Ricci's avatar
      Perl module for the event system. · 53955f50
      Robert Ricci authored
      This is accomplished with SWIG, so that we can basically just call the
      C functions from perl, and avoid a parllel implementation. Some glue
      code is required, particularly for callbacks, macros, and functions
      that return data through arguments.
      
      Currently lacks support for a few functions, but is functional enough
      to re-write the example C programs.
      53955f50
  8. 07 Mar, 2002 1 commit
    • Leigh B. Stoller's avatar
      Isolate the pain of building threaded (and statically linked) event · 4dad8ebe
      Leigh B. 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
  9. 05 Mar, 2002 1 commit
  10. 26 Feb, 2002 1 commit
  11. 19 Feb, 2002 1 commit