コード例 #1
0
ファイル: login.c プロジェクト: rashadkm/grass_cmake
static int set_login(const char *driver, const char *database, const char *user,
                     const char *password, const char *host, const char *port,
                     int overwrite)
{
    int i, found;
    LOGIN login;

    G_debug(3, "db_set_login(): drv=[%s] db=[%s] usr=[%s] pwd=[%s] host=[%s] port=[%s]",
	    driver, database, user, password, host, port);

    init_login(&login);

    if (read_file(&login) == -1)
	return DB_FAILED;

    found = FALSE;
    for (i = 0; i < login.n; i++) {
	if (strcmp(login.data[i].driver, driver) == 0 &&
	    strcmp(login.data[i].database, database) == 0) {
	    if (user)
		login.data[i].user = G_store(user);
	    else
		login.data[i].user = G_store("");

	    if (password)
		login.data[i].password = G_store(password);
	    else
		login.data[i].password = G_store("");

	    found = TRUE;
	    break;
	}
    }

    if (found) {
        if (overwrite)
            G_warning(_("DB connection <%s/%s> already exists and will be overwritten"),
                      driver, database ? database : "");
        else
            G_fatal_error(_("DB connection <%s/%s> already exists. "
                            "Re-run '%s' with '--%s' flag to overwrite existing settings."),
                          driver, database ? database : "", G_program_name(), "overwrite");
    }
    
    if (!found)
	add_login(&login, driver, database, user, password, host, port, -1);
    else
        add_login(&login, driver, database, user, password, host, port, i);

    if (write_file(&login) == -1)
	return DB_FAILED;

    return DB_OK;
}
コード例 #2
0
ファイル: login.c プロジェクト: rashadkm/grass_cmake
static int get_login(const char *driver, const char *database, const char **user,
                     const char **password, const char **host, const char **port)
{
    int i;
    LOGIN login;

    G_debug(3, "db_get_login(): drv=[%s] db=[%s]", driver, database);

    user[0] = '\0';
    password[0] = '\0';
    host[0] = '\0';
    port[0] = '\0';
    
    init_login(&login);

    if (read_file(&login) == -1)
	return DB_FAILED;

    for (i = 0; i < login.n; i++) {
	if (strcmp(login.data[i].driver, driver) == 0 &&
	    (!database || strcmp(login.data[i].database, database) == 0)) {
	    if (login.data[i].user && strlen(login.data[i].user) > 0)
		*user = G_store(login.data[i].user);
	    else
		*user = NULL;

	    if (login.data[i].password && strlen(login.data[i].password) > 0)
		*password = G_store(login.data[i].password);
	    else
		*password = NULL;

            if (login.data[i].host && strlen(login.data[i].host) > 0 && host)
		*host = G_store(login.data[i].host);
	    else
		*host = NULL;

            if (login.data[i].port && strlen(login.data[i].port) > 0 && port)
		*port = G_store(login.data[i].port);
	    else
		*port = NULL;

	    break;
	}
    }

    return DB_OK;
}
コード例 #3
0
ファイル: main.c プロジェクト: laminic/cs
int main (int argc, char *argv[])
{

	GtkBuilder *login;
	GtkBuilder *builder;

	GtkWidget  *loginwindow;
    GtkWidget  *window;

	GtkButton 	*loginbtn;


    gtk_init( &argc, &argv );

    /* Create builder */

	builder = gtk_builder_new();
    gtk_builder_add_from_file( builder, "ui.glade", NULL );
    window   = GTK_WIDGET( gtk_builder_get_object( builder, "window1" ) );

	login = gtk_builder_new();
	gtk_builder_add_from_file(login, "login.glade", NULL);
	loginwindow = GTK_WIDGET(gtk_builder_get_object(login, "loginwindow"));

	loginbtn = GTK_BUTTON(gtk_builder_get_object(login, "loginbtn"));
	g_signal_connect(loginbtn, "clicked", G_CALLBACK(cb_login_button), NULL);

	init_db();
	init_login(login, loginwindow, window);
	init_user(builder);
	init_material(builder);
	init_auth(builder);
	init_inout(builder);

    gtk_builder_connect_signals( login, NULL);
    g_object_unref( G_OBJECT( login) );

    gtk_builder_connect_signals( builder, NULL);
    g_object_unref( G_OBJECT( builder ) );


	gtk_widget_show(loginwindow);

    gtk_main();

    return( 0 );
}
コード例 #4
0
/**
* menustate(void)
*
* @brief
* @param void
* @return void
*/
void menustate(void)
{
	sbool run = TRUE;

	while(run){
		if(widget_get_uip()->root->shown.count > 0 || widget_get_uip()->root->hidden.count > 0)
			widget_unload(widget_get_uip()->root);

		switch(menu_state){
		case MENU_STATE_MAIN:
			init_main_menu();//initializes the first menu for use.
			main_menu();//Start the First Menu, Menu main loop.
			break;
		case MENU_STATE_CREDITS:
			init_credits();
			credits();
			break;
		case MENU_STATE_LOGIN:
			init_login();
			login();
			break;
		case MENU_STATE_CREATE:
			init_new_account();
			new_account();
			break;
		case MENU_STATE_INGAME:
			init_ingame();
			ingame();
			break;
		case MENU_STATE_STATUS:
			if(!statusloader)
				init_status("Log in successful.");
			else {
				init_status("Widget System Initialized.");
				statusloader = FALSE;
			}

			status();
			break;
		case MENU_STATE_EXIT:
			run = FALSE;
			break;
		}
	}
}
コード例 #5
0
ファイル: login.c プロジェクト: imincik/pkg-grass
/*!
   \brief Set user/password for driver/database
   \return DB_OK
   \return DB_FAILED
 */
int
db_set_login(const char *driver, const char *database, const char *user,
	     const char *password)
{
    int i, found;
    LOGIN login;

    G_debug(3, "db_set_login(): drv=[%s] db=[%s] usr=[%s] pwd=[%s]",
	    driver, database, user, password);

    init_login(&login);

    if (read_file(&login) == -1)
	return DB_FAILED;

    found = 0;
    for (i = 0; i < login.n; i++) {
	if (strcmp(login.data[i].driver, driver) == 0 &&
	    strcmp(login.data[i].database, database) == 0) {
	    if (user)
		login.data[i].user = G_store(user);
	    else
		login.data[i].user = G_store("");

	    if (password)
		login.data[i].password = G_store(password);
	    else
		login.data[i].password = G_store("");

	    found = 1;
	    break;
	}
    }

    if (!found)
	add_login(&login, driver, database, user, password);

    if (write_file(&login) == -1)
	return DB_FAILED;

    return DB_OK;
}
コード例 #6
0
ファイル: login.c プロジェクト: rashadkm/grass_cmake
/*!  
  \brief Print all connection settings to file
  
  \param fd file where to print settings
  
  \return DB_OK on success
  \return DB_FAILED on failure
*/
int db_get_login_dump(FILE *fd)
{
    int i;
    LOGIN login;
    
    G_debug(3, "db_get_login_dump()");
    
    init_login(&login);
    if (read_file(&login) == -1)
	return DB_FAILED;
    
    for (i = 0; i < login.n; i++) {
        fprintf(fd, "%s|%s|%s|%s|%s|%s\n",
                login.data[i].driver,
                login.data[i].database,
                login.data[i].user,
                login.data[i].password,
                login.data[i].host,
                login.data[i].port);
    }
    
    return DB_OK;
}
コード例 #7
0
ファイル: stupid-ftpd.c プロジェクト: gamman/stupid-FTPd
void listener_loop(void) 
{
  int i,n,addr;
  unsigned int sock_size;
  fd_set fds;
  struct timeval tv;
  char cmd[1024];
  struct sockaddr_in sa;
#ifdef __CYGWIN__
  WORD verreq;
  WSADATA wsadata;
#endif

  /* catch broken pipe ! */

#ifdef __SVR4 
  sigignore(SIGPIPE);
  sigset(SIGCHLD,cleanchild);
#else
  signal(SIGPIPE,SIG_IGN);
  signal(SIGCHLD,cleanchild);
#endif

  /*
  myip=getmyip();
  if (myip==NULL) {
    printf("Determining localhost-IP failed.\n");
    exit(1);
  }

#ifdef DEBUG
  printf("My IP is: %d.%d.%d.%d\n",
	 myip[0],myip[1],myip[2],myip[3]);
#endif
  */

  /* server init */

#ifdef __CYGWIN__
  verreq=MAKEWORD(1,1);
  i=WSAStartup(verreq,&wsadata);
  if (i!=0) {
    printf("Error: winsock-lib couldn't be initialized.");
  }
#endif

  if (!daemonmode)
    printf("Starting server ... ");
  if ((server_socket=socket(PF_INET,SOCK_STREAM,0))==INVALID_SOCKET) {
#ifdef __CYGWIN__
    i=WSAGetLastError();
#else
    i=errno;
#endif
    printf("Error: could not create server socket (%d).\n",i);
    exit(1);
  }

  i=1;
  if (setsockopt(server_socket,SOL_SOCKET,SO_REUSEADDR,(void *)&i,sizeof(i))<0)
    printf("setsockopt failed.\n");
  
  sock_size=sizeof(struct sockaddr_in);
  memset(&sa,0,sock_size);
  
  sa.sin_family=PF_INET;
  sa.sin_port=htons(serverport);
  addr=INADDR_ANY;
  memcpy(&sa.sin_addr.s_addr,&addr,sizeof(int));
  
  if (bind(server_socket,(struct sockaddr *)&sa,sock_size)<0) {
    printf("Error: bind failed.\n");
    printf("       port %i already in use ?\n",serverport);
    exit(1);
  }

  if (listen(server_socket,5)<0) {
    printf("Error: listen failed.\n");
    exit(1);
  }

  if (!daemonmode) {
    printf("OK\n\n");
    out_prompt();
  }

#ifdef DEBUG
  printf("Listening ...\n");
#endif

  serverstop=0;
  while (!serverstop) {
    FD_ZERO(&fds);
    if (!daemonmode) FD_SET(1,&fds);
    FD_SET(server_socket,&fds);
    for (i=0;i<maxusers;i++)
      if (pchild[i]->sock)
	FD_SET(pchild[i]->sock,&fds);

    /*    memset(&tv,0,sizeof(struct timeval)); */
    tv.tv_sec=REACTION_TIME;tv.tv_usec=0L;
    n=select(32+maxusers*4,&fds,NULL,NULL,&tv);

    if (n<0) {
      if (errno==EINTR) continue;
      if (
#ifdef __CYGWIN__
	  1) {
	i=WSAGetLastError();
#else
	!daemonmode) {
	i=errno;
#endif
	fprintf(stderr,"*** Fehler: select (ret: %d,errno=%d).\n",n,i);
      }
      exit(1);
    }

    if (!daemonmode)
      if (FD_ISSET(1,&fds)) {
	i=read(1,cmd,sizeof(cmd));
	if (i<1) continue;
	cmd[i-1]=0;
	execcmd(cmd);
	if (serverstop) break;
	out_prompt();
      }

    if (FD_ISSET(server_socket,&fds)) init_login();

    for (i=0;i<maxusers;i++) {
      if (pchild[i]->sock) {
	if (FD_ISSET(pchild[i]->sock,&fds))
	  serve_child(i);
      }
    }

    check_timeouts();
  }

  close(server_socket);
#ifdef __CYGWIN__
  WSACleanup();
#endif

  if (!daemonmode)
    printf("Server stopped.\n");
}