Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

cmmServer.h File Reference

#include "vltPort.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <pwd.h>
#include <errno.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <memory.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <sys/param.h>
#include <netdb.h>
#include <arpa/inet.h>

Include dependency graph for cmmServer.h:

Include dependency graph

Go to the source code of this file.

Defines

#define __EXTENSIONS__
#define _POSIX_SOURCE   1
#define NO_CMM_ROOT   "CMM_ROOT not supplied as required."
#define NO_CMM_PORT   "CMM_PORT not supplied as required."
#define CMM_ADMIN   "vltsccm"
#define CMM_LOGFILE   "cmm.log"
#define CMM_PIDFILE   "cmmServer.pid"
#define CMM_USERLIST   "userlist"
#define CMM_GROUPLIST   "grouplist"
#define CMM_MODLIST   "modlist"
#define CMM_RCFILE   ".cmmrc"
#define CMM_WELCOME   "+OK CMM Server (Version 3.8) at %s starting."
#define CMM_GOODBYE   "+OK CMM Server (Version 3.8) at %s signing off."
#define CMM_COMMAND_OK   "+OK Command accepted."
#define CMM_PROTVERS   "1.0"
#define CMM_TIMEOUT   300 /* 5 minutes */
#define CMM_OK   "+OK"
#define CMM_ERR   "-ERR"
#define MAXLINE   1025 /* 1024 + trailing '\0' */
#define BUFFLEN   256
#define USERNAMELEN   16
#define PASSWORDLEN   16
#define MODULELEN   32
#define PACKET_SIZE   1024 /* for data transfers */
#define CMM_SEPARATORS   " \t\r\n"
#define CMM_VERSION   "VER "
#define CMM_USERNAME   "USER "
#define CMM_PASSWORD   "PASS "
#define ERR_TIMEOUT   "CMM timeout."
#define ERR_PEER_DIED   "connection dropped by peer."
#define ERR_NO_PROTOCOL   "No protocol specified."
#define ERR_WRONG_PROTVERS   "Wrong CMM version."
#define ERR_NO_USER   "No user specified."
#define ERR_WRONG_USERNAME   "Unknown user: \"%s\"."
#define ERR_NO_PASSWORD   "No password supplied."
#define ERR_WRONG_PASSWORD1   "Password supplied for \""
#define ERR_WRONG_PASSWORD2   "\" is incorrect."
#define ERR_WRONG_COMMAND   "-ERR Unknown command: \"%s\"."
#define ERR_MODULE_EXISTS   "-ERR \"%s\" already exists."
#define ERR_MODULE_UNKNOWN   "-ERR \"%s\" is not a known module."
#define ERR_MODULE_MISMATCH   "-ERR Version \"%s\" of module \"%s\" doesn't exist."
#define ERR_SERVER_FAILURE   "-ERR Server internal error: notify vltsccm@eso.org"
#define OK_LOGIN   "Please supply username and password."
#define OK_PASSWORD_REQUIRED   "Password required for"
#define OK_GOOD_USER   "User logged in as"

Functions

int check_env (void)
void init_daemon (void)
void init_log (char *logname)
void cmm_log (char *message, pid_t sid)
void log_pid (void)
void signal_setup (void)
void cmm_shutdown (int sig)
void do_loop (int master_socket)
void handle_it (int conn, struct sockaddr_in *peer)
int socket_setup (int port)
int readn (int fd, char *buffer, int n)
int writen (int fd, char *buffer, int n)
int getaline (int fd, char *buffer, int maxlen)
void load_userlist (void)
void fill_userdata (char *name, char *pass)
void clear_userdata (void)
int check_user (char *user, char *pass)
void load_grouplist (void)
void fill_groupdata (char *name, char *groups)
void clear_groupdata (void)
void load_modlist (void)
void fill_moddata (char *mod, char *rgroups, char *wgroups, char *keyword)
void clear_moddata (void)
int check_access (char *user, char *module, char *command)
int login (int socket, pid_t sid)
int send_to_peer (int s, char *message)
int get_from_peer (int s, char *buffer, int max)
int parse_command (int socket, pid_t sid)
int my_system (char *command, pid_t sid)
int get_module (int socket, char *logheader, char *module, pid_t sid, char *command)
int check_module (int socket, char *buffer, char *logheader, char *module, char *version, pid_t sid, char *command)
int send_module (int socket, char *logheader, char *module, pid_t sid)


Define Documentation

#define __EXTENSIONS__
 

#define _POSIX_SOURCE   1
 

#define BUFFLEN   256
 

#define CMM_ADMIN   "vltsccm"
 

#define CMM_COMMAND_OK   "+OK Command accepted."
 

#define CMM_ERR   "-ERR"
 

#define CMM_GOODBYE   "+OK CMM Server (Version 3.8) at %s signing off."
 

#define CMM_GROUPLIST   "grouplist"
 

#define CMM_LOGFILE   "cmm.log"
 

#define CMM_MODLIST   "modlist"
 

#define CMM_OK   "+OK"
 

#define CMM_PASSWORD   "PASS "
 

#define CMM_PIDFILE   "cmmServer.pid"
 

#define CMM_PROTVERS   "1.0"
 

#define CMM_RCFILE   ".cmmrc"
 

#define CMM_SEPARATORS   " \t\r\n"
 

#define CMM_TIMEOUT   300 /* 5 minutes */
 

#define CMM_USERLIST   "userlist"
 

#define CMM_USERNAME   "USER "
 

#define CMM_VERSION   "VER "
 

#define CMM_WELCOME   "+OK CMM Server (Version 3.8) at %s starting."
 

#define ERR_MODULE_EXISTS   "-ERR \"%s\" already exists."
 

#define ERR_MODULE_MISMATCH   "-ERR Version \"%s\" of module \"%s\" doesn't exist."
 

#define ERR_MODULE_UNKNOWN   "-ERR \"%s\" is not a known module."
 

#define ERR_NO_PASSWORD   "No password supplied."
 

#define ERR_NO_PROTOCOL   "No protocol specified."
 

#define ERR_NO_USER   "No user specified."
 

#define ERR_PEER_DIED   "connection dropped by peer."
 

#define ERR_SERVER_FAILURE   "-ERR Server internal error: notify vltsccm@eso.org"
 

#define ERR_TIMEOUT   "CMM timeout."
 

#define ERR_WRONG_COMMAND   "-ERR Unknown command: \"%s\"."
 

#define ERR_WRONG_PASSWORD1   "Password supplied for \""
 

#define ERR_WRONG_PASSWORD2   "\" is incorrect."
 

#define ERR_WRONG_PROTVERS   "Wrong CMM version."
 

#define ERR_WRONG_USERNAME   "Unknown user: \"%s\"."
 

#define MAXLINE   1025 /* 1024 + trailing '\0' */
 

#define MODULELEN   32
 

#define NO_CMM_PORT   "CMM_PORT not supplied as required."
 

#define NO_CMM_ROOT   "CMM_ROOT not supplied as required."
 

#define OK_GOOD_USER   "User logged in as"
 

#define OK_LOGIN   "Please supply username and password."
 

#define OK_PASSWORD_REQUIRED   "Password required for"
 

#define PACKET_SIZE   1024 /* for data transfers */
 

#define PASSWORDLEN   16
 

#define USERNAMELEN   16
 


Function Documentation

int check_access char *  user,
char *  module,
char *  command
 

int check_env void   ) 
 

int check_module int  socket,
char *  buffer,
char *  logheader,
char *  module,
char *  version,
pid_t  sid,
char *  command
 

int check_user char *  user,
char *  pass
 

void clear_groupdata void   ) 
 

void clear_moddata void   ) 
 

void clear_userdata void   ) 
 

void cmm_log char *  message,
pid_t  sid
 

void cmm_shutdown int  sig  ) 
 

void do_loop int  master_socket  ) 
 

void fill_groupdata char *  name,
char *  groups
 

void fill_moddata char *  mod,
char *  rgroups,
char *  wgroups,
char *  keyword
 

void fill_userdata char *  name,
char *  pass
 

int get_from_peer int  s,
char *  buffer,
int  max
 

int get_module int  socket,
char *  logheader,
char *  module,
pid_t  sid,
char *  command
 

int getaline int  fd,
char *  buffer,
int  maxlen
 

void handle_it int  conn,
struct sockaddr_in *  peer
 

void init_daemon void   ) 
 

void init_log char *  logname  ) 
 

void load_grouplist void   ) 
 

void load_modlist void   ) 
 

void load_userlist void   ) 
 

void log_pid void   ) 
 

int login int  socket,
pid_t  sid
 

int my_system char *  command,
pid_t  sid
 

int parse_command int  socket,
pid_t  sid
 

int readn int  fd,
char *  buffer,
int  n
 

int send_module int  socket,
char *  logheader,
char *  module,
pid_t  sid
 

int send_to_peer int  s,
char *  message
 

void signal_setup void   ) 
 

int socket_setup int  port  ) 
 

int writen int  fd,
char *  buffer,
int  n
 


Generated on Sun Oct 29 02:28:57 2006 for ACS C++ API by doxygen 1.3.6