diff -r -c --new-file vrdm-0.27-1/Fldm.cxx vrdm-0.27-1.auth+key/Fldm.cxx *** vrdm-0.27-1/Fldm.cxx Wed Apr 25 17:17:02 2001 --- vrdm-0.27-1.auth+key/Fldm.cxx Sat May 12 04:13:02 2001 *************** *** 28,34 **** #include "Fldm.h" #include ! const char* XServer[] = { "/usr/X11R6/bin/X", NULL }; int Fldm::server_pid; FldmUI* Fldm::fldmui; --- 28,34 ---- #include "Fldm.h" #include ! const char* XServer[] = { "/usr/X11R6/bin/X","-terminate", NULL }; int Fldm::server_pid; FldmUI* Fldm::fldmui; *************** *** 114,121 **** #endif // Hack: no authentication for user default. ! if(strcmp(name, "default") == 0) ! return 1; char* correct; --- 114,122 ---- #endif // Hack: no authentication for user default. ! /* not exactly. */ ! // if(strcmp(name, "default") == 0) ! // return 1; char* correct; *************** *** 138,145 **** void Fldm::su_login() { // Do everything necessary for a login. su_enviro(); ! su_uid(); ! su_execv(); } void Fldm::su_enviro() { --- 139,157 ---- void Fldm::su_login() { // Do everything necessary for a login. su_enviro(); ! { ! pid_t child; ! int *status=0; ! if (!(child=fork())) ! if (su_uid()) ! su_execv(); ! if (child < 0) ! perror("fork"); ! else ! wait(status); ! } ! server_stop(); ! server_start(); } void Fldm::su_enviro() { *************** *** 164,172 **** // putenv(StrConcat("MAIL="_PATH_MAILDIR"/", Pw->pw_name)); chdir(Pw->pw_dir); term = getenv("TERM"); } ! void Fldm::su_uid() { // Change the user ID and group id to the correct values for // the new user that cleared the checkpasswd function --- 176,185 ---- // putenv(StrConcat("MAIL="_PATH_MAILDIR"/", Pw->pw_name)); chdir(Pw->pw_dir); term = getenv("TERM"); + system("killall vrsm keyboard"); } ! int Fldm::su_uid() { // Change the user ID and group id to the correct values for // the new user that cleared the checkpasswd function *************** *** 180,187 **** (setuid(Pw->pw_uid) != 0) ) { syslog(LOG_ERR, "initgroups or setgid/uid failed, name %s, gid %d, uid %d", Pw->pw_name, Pw->pw_gid, Pw->pw_uid); ! exit(ERR_EXIT); } } void Fldm::su_execv() { --- 193,202 ---- (setuid(Pw->pw_uid) != 0) ) { syslog(LOG_ERR, "initgroups or setgid/uid failed, name %s, gid %d, uid %d", Pw->pw_name, Pw->pw_gid, Pw->pw_uid); ! // exit(ERR_EXIT); ! return 0; } + return 1; } void Fldm::su_execv() { *************** *** 211,217 **** #ifdef FLDM_DEBUG fprintf(stderr, "vrdm: execing %s %s\n", args[0], args[1]); #endif - execv(args[0], args); #ifdef FLDM_DEBUG --- 226,231 ---- diff -r -c --new-file vrdm-0.27-1/Fldm.h vrdm-0.27-1.auth+key/Fldm.h *** vrdm-0.27-1/Fldm.h Wed Apr 25 17:17:02 2001 --- vrdm-0.27-1.auth+key/Fldm.h Thu May 10 17:08:15 2001 *************** *** 49,55 **** static int checkpasswd(const char*, const char*); static void su_login(); ! static void su_uid(); static void su_enviro(); static void su_execv(); static int server_start(); --- 49,55 ---- static int checkpasswd(const char*, const char*); static void su_login(); ! static int su_uid(); static void su_enviro(); static void su_execv(); static int server_start(); diff -r -c --new-file vrdm-0.27-1/FldmUI.cxx vrdm-0.27-1.auth+key/FldmUI.cxx *** vrdm-0.27-1/FldmUI.cxx Wed Apr 25 17:17:02 2001 --- vrdm-0.27-1.auth+key/FldmUI.cxx Sat May 12 04:12:52 2001 *************** *** 24,30 **** #include "FldmUI.h" #include #include ! // #include "linux_vr.xpm" #include "agenda-login.xpm" #include #include --- 24,30 ---- #include "FldmUI.h" #include #include ! #include "linux_vr.xpm" #include "agenda-login.xpm" #include #include *************** *** 51,64 **** --- 51,78 ---- ((FldmUI*)(o->parent()->user_data()))->cb_DoRestart_i(o,v); } + inline void FldmUI::cb_DoKeyboard_i(Fl_Widget*, void*) { + if (!fork()) + execlp("vrsm",NULL); + if (!fork()) + execl("/usr/bin/keyboard",NULL); + } + + void FldmUI::cb_DoKeyboard(Fl_Widget* o, void* v) { + ((FldmUI*)(o->parent()->user_data()))->cb_DoKeyboard_i(o,v); + } + + Fl_Menu_Item FldmUI::menu_ActionMenu[] = { {"Halt", 0, (Fl_Callback*)FldmUI::cb_DoHalt, 0, 0, 0, 0, 14, 0}, {"Restart", 0, (Fl_Callback*)FldmUI::cb_DoRestart, 0, 0, 0, 0, 14, 0}, + {"Keyboard", 0, (Fl_Callback*)FldmUI::cb_DoKeyboard, 0, 0, 0, 0, 14, 0}, {0} }; Fl_Menu_Item* FldmUI::DoHalt = FldmUI::menu_ActionMenu + 0; Fl_Menu_Item* FldmUI::DoRestart = FldmUI::menu_ActionMenu + 1; + Fl_Menu_Item* FldmUI::DoKeyboard = FldmUI::menu_ActionMenu + 2; inline void FldmUI::cb_AttemptLogin_i(Fl_Widget*, void*) { fldmp->do_login(Login->value(), Password->value()); *************** *** 102,112 **** Login->value("default"); Password = new Fl_Input(40, y + base_height + 5, base_width, base_height, "Pass:"); Password->labelsize(WidgetFactory::labelsize()); Password->textsize(WidgetFactory::textsize()); ! AttemptLogin = WidgetFactory::new_button(0, Fl::h() - base_height, "Login", cb_AttemptLogin); ! ActionMenu = WidgetFactory::new_menu_button(WidgetFactory::buttonwidth(), Fl::h() - base_height, "Sys"); ActionMenu->menu(menu_ActionMenu); } else // skip the login screen!!! --- 116,127 ---- Login->value("default"); Password = new Fl_Input(40, y + base_height + 5, base_width, base_height, "Pass:"); + Password->type(FL_SECRET_INPUT); Password->labelsize(WidgetFactory::labelsize()); Password->textsize(WidgetFactory::textsize()); ! AttemptLogin = WidgetFactory::new_button(0, /*Fl::h() - base_height*/0, "Login", cb_AttemptLogin); ! ActionMenu = WidgetFactory::new_menu_button(WidgetFactory::buttonwidth(),/* Fl::h() - base_height*/0, "Sys"); ActionMenu->menu(menu_ActionMenu); } else // skip the login screen!!! diff -r -c --new-file vrdm-0.27-1/FldmUI.h vrdm-0.27-1.auth+key/FldmUI.h *** vrdm-0.27-1/FldmUI.h Wed Apr 25 17:17:02 2001 --- vrdm-0.27-1.auth+key/FldmUI.h Thu May 10 15:11:40 2001 *************** *** 40,45 **** --- 40,47 ---- static void cb_DoHalt(Fl_Widget*, void*); inline void cb_DoRestart_i(Fl_Widget*, void*); static void cb_DoRestart(Fl_Widget*, void*); + inline void cb_DoKeyboard_i(Fl_Widget*, void*); + static void cb_DoKeyboard(Fl_Widget*, void*); inline void cb_AttemptLogin_i(Fl_Widget*, void*); static void cb_AttemptLogin(Fl_Widget*, void*); Fl_Button *AttemptLogin; *************** *** 49,54 **** --- 51,57 ---- static Fl_Menu_Item menu_ActionMenu[]; static Fl_Menu_Item *DoHalt; static Fl_Menu_Item *DoRestart; + static Fl_Menu_Item *DoKeyboard; class Fldm * fldmp; public: diff -r -c --new-file vrdm-0.27-1/config.site vrdm-0.27-1.auth+key/config.site *** vrdm-0.27-1/config.site Thu Jan 1 01:00:00 1970 --- vrdm-0.27-1.auth+key/config.site Thu May 10 14:32:56 2001 *************** *** 0 **** --- 1,22 ---- + # config.site for configure + HOSTCC=gcc + CC=mipsel-linux-gcc + CXX=mipsel-linux-gcc + CFLAGS="-msoft-float -s -mips2 -O2 -fno-exceptions" + CXXFLAGS="-msoft-float -s -mips2 -O2 -fno-exceptions -I/usr/mipsel-linux/include/g++" + CPPFLAGS="-msoft-float -s -mips2 -O2 -fno-exceptions -I/usr/mipsel-linux/include/g++" + LDFLAGS="-msoft-float -s -mips2" + AR=mipsel-linux-ar + RANLIB=mipsel-linux-ranlib + NM=mipsel-linux-nm + ac_cv_path_NM=mipsel-linux-nm + ac_cv_func_setpgrp_void=yes + host=mipsel-linux + prefix=/usr/mipsel-linux + x_includes=/usr/mipsel-linux/include + x_libraries=/usr/mipsel-linux/lib/X11 + + + # These are for GNU shellutils + jm_cv_have_proc_uptime=yes + jm_cv_func_working_gnu_strftime=yes diff -r -c --new-file vrdm-0.27-1/configure vrdm-0.27-1.auth+key/configure *** vrdm-0.27-1/configure Wed Apr 25 17:17:02 2001 --- vrdm-0.27-1.auth+key/configure Thu May 10 14:29:35 2001 *************** *** 1361,1367 **** echo $ac_n "(cached) $ac_c" 1>&6 else ac_save_LIBS="$LIBS" ! LIBS="-lX11 $LIBS" cat > conftest.$ac_ext <&6 else ac_save_LIBS="$LIBS" ! LIBS="$LIBS -lX11 " cat > conftest.$ac_ext <