Changeset - 7d0e4d9e6bc5
[Not reviewed]
default
0 1 0
Nathan Brink (binki) - 16 years ago 2009-07-03 13:44:07
ohnobinki@ohnopublishing.net
some sample pre-listening code
1 file changed with 36 insertions and 0 deletions:
0 comments (0 inline, 0 general)
src/server/distrend.c
Show inline comments
 
@@ -86,24 +86,60 @@ we get a key generated on the server, an
 
      
 
      distrend_accept(&action);
 
      cont = distrend_do(action);
 
      distrend_action_free(action);
 
    }
 
  
 
  distrend_unlisten(listenset);
 
  distrend_config_free(config);
 

	
 
  return 0;
 
}
 

	
 
struct distrend_config
 
{
 
  cfg_t *mycfg;
 
  struct options_common *options;
 
  
 
  struct distrend_listen **listens; /*< Null terminated array of structs */
 
  
 
}
 
  
 

	
 
int distrend_do_config(int argc, char *argv[], struct distrend_config *config)
 
{
 
  cfg_opt_t myopts = 
 
    {
 
      CFG_SEC("listen",  /* this must be imported into struct listens (which must still be declared) */
 
    {
 
      CFG_SIMPLE_STR("type", NULL),
 
	CFG_SIMPLE_STR("path", NULL),
 
	CFG_SIMPLE_INT("port", NULL)
 
	},
 
	      CFGF_MULTI),
 
      CFG_END
 
    };
 

	
 
  config = malloc(sizeof(struct distrend_config));
 
  options_init(argc, argv, &config->mycfg, &myopts, "server", &config->options);
 
  
 
  return 0;
 
}
 
int distrend_config_free(struct distrend_config *config)
 
{
 
  options_free(config->options);
 
  free(config);
 
  
 
  return 0;
 
}
 

	
 

	
 
// Registration on server. Needs attention. (e.g., people could make tons of accounts with the key we give them...
 
// Set up distrend -c username email@example.com
 
// We must prevent multi-user-creation abuse, too.
 
void registeruser(char *username, char *email){
 
  // Logs into sandboxed user on zserver2 and registers a user. Should eventually generate a key on the server and return it to the user.
 
  // All created user accounts should be sandboxed accordingly, requiring a different skel, and the default shell to be rbash. They also
 
  // need a custom path, which can be defined in the .bash_profile of the skel. All activity of server-side configuration should be documented
 
  // to ease the creation of new distren servers, or it should be automated and made much more all-inclusive, not requiring much config.
 
  char buf[10];
 
  struct execio *testrem;
0 comments (0 inline, 0 general)