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; }
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; }
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 ); }
/** * 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; } } }
/*! \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; }
/*! \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; }
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"); }