1. 24 Nov, 2010 1 commit
    • Mike Hibler's avatar
      First crack at a frisbee "master server" for handling GET (download) requests. · a2a896ab
      Mike Hibler authored
      There are a couple of new packet types in the frisbee protocol which are
      exchanged via TCP with the master server: GETREQUEST and GETREPLY.  The
      client passes to the master server an opaque imageid and a couple of options
      and gets back the addr/port to use to actually download the image.  The
      implementation of the master server is fragile and is more of a test
      framework, Grant is working on a more robust master server.  I am mostly
      doing a backend that communicates with the Emulab DB to do its authentication
      and making the client changes.
      
      The client now uses the -S option to specify the IP address of the master
      server and the -F option to specify an imageid.  If no error is returned,
      the image is downloaded using the returned addr/port.  If -Q is used in place
      of -F, then the client makes a "status only" call getting back info about
      whether the named image is accessible to the client and whether a server is
      currently running.
      
      On the server side, the new master server (mserver.c) has an Emulab
      configuration "backend" that supports host-based authentication.
      The IP address of the caller is mapped to a node_id/pid/gid/eid combo
      that is used to determine access.  On a request, the specified imageid is
      treated either as a pathname (if it starts with '/') or an image identifier
      of the form "<pid>/<imagename>".  If it is a pathname, we check to make
      sure that pathname (after running through "realpath") is contained in one
      of the directories accessible to that node in its current experiment context;
      i.e., /share, /proj/<pid>, /groups/<pid>/<gid>, or /users/<swapper-uid>.
      If it is an image identifier, the DB is queried to ensure that access is
      allowed to that image; i.e., it must be "global" or in the appropriate
      project/group.
      
      The master server forks a frisbeed for each valid request, if one is not
      already running.  The multicast address selection is still based on the
      emulab_indicies.frisbee_index field, but the address/port/server info is no
      longer stored in the frisbee_blobs table (frisbee_pid, load_address,
      load_busy are not set).
      
      Note that this is not yet integrated in the os_load path.  Further work is
      required to replace frisbeelauncher.
      a2a896ab
  2. 23 Nov, 2010 1 commit
  3. 22 Nov, 2010 4 commits
  4. 20 Nov, 2010 1 commit
    • Ryan Jackson's avatar
      Fixed segfault in event/new_sched · 15fc15b7
      Ryan Jackson authored
      Fixed a segfault in the new event scheduler
      
      Cleaned up some code that dealt with converting
      xmlrpc_c::value_strings to C string constants to avoid further memory
      corruption issues.
      
      Also converted AddAgent(), AddGroup(), AddUserEnv() to take 'const
      char *' pointers instead of 'char *'s to silence GCC's warnings about
      invalid conversions from 'const char *' to 'char *'.
      15fc15b7
  5. 18 Nov, 2010 2 commits
  6. 17 Nov, 2010 5 commits
  7. 16 Nov, 2010 7 commits
  8. 15 Nov, 2010 1 commit
  9. 12 Nov, 2010 16 commits
  10. 11 Nov, 2010 1 commit
  11. 10 Nov, 2010 1 commit