Enlightenment CVS committal

Author  : mekius
Project : e17
Module  : proto

Dir     : e17/proto/empower/src/bin/ewl


Modified Files:
        Empower.h empower.c empower_cb_ewl.c 


Log Message:
Fixed disabled window when an empty password was submitted.
Added ssh-askpass support.  For now the -p option can be passed to make empower 
act as ssh-askpass.  Soon a busybox style symlink will be created called 
empower-askpass which will also start empower in ssh-askpass mode.  This mode 
can also be useful for script writers who need to grab passwords.  The password 
is just written to stdout while in this mode.

===================================================================
RCS file: /cvs/e/e17/proto/empower/src/bin/ewl/Empower.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- Empower.h   30 May 2007 03:30:31 -0000      1.8
+++ Empower.h   30 May 2007 17:51:36 -0000      1.9
@@ -18,6 +18,8 @@
 char cmd[1024];
 Ecore_Exe *sudo;
 
+enum{SUDO,PASS} mode;
+
 /* empower_cb prototypes */
 void key_down_cb(Ewl_Widget *w, void *event, void *data);
 void destroy_cb(Ewl_Widget *w, void *event, void *data);
===================================================================
RCS file: /cvs/e/e17/proto/empower/src/bin/ewl/empower.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- empower.c   30 May 2007 03:30:31 -0000      1.4
+++ empower.c   30 May 2007 17:51:36 -0000      1.5
@@ -2,30 +2,45 @@
 
 int main(int argc, char** argv)
 {
-       --argc; ++argv;         //pop off program name
        sudo = NULL;
        
+       if(!strcmp(*argv,"empower-askpass"))
+               mode = PASS;
+       else if(!strcmp(*argv, "./empower-askpass"))
+               mode = PASS;
+       else
+               mode = SUDO;
+
+       --argc; ++argv;         //pop off program name
+       
+       if(mode != PASS && !strcmp(*argv, "-p"))
+               mode = PASS;
+       
        if(!ecore_init())
        {
                printf("Unable to init ecore\n");
                return 1;
        }
        
-       if(argc)        //commands
+       if(argc || mode == PASS)        //commands
        {               
                int i;
 
                ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT,exit_cb,NULL);
                
-               snprintf(cmd, 1024, "sudo");
+               if(mode == SUDO)
+                       snprintf(cmd, 1024, "sudo");
                
                while(argc)
                {
-                       if(strcmp(*argv, "--"))         //-- is used to stop 
sudo options, lets use that
+                       if(strcmp(*argv, "--"))
                        {
-                               strncat(cmd, " ", 1024);
-                               strncat(cmd, *argv, 1024);
-                               --argc; ++argv;         //pop these options off 
so ewl just gets its options
+                               if(mode == SUDO)
+                               {
+                                       strncat(cmd, " ", 1024);
+                                       strncat(cmd, *argv, 1024);
+                                       --argc; ++argv;
+                               }
                        }
                        else
                                break;
@@ -37,15 +52,21 @@
                        return;
                }
                
-               ecore_job_add(check_sudo_timeout_job, NULL);
+               if(mode == SUDO)
+                       ecore_job_add(check_sudo_timeout_job, NULL);
+               else if(mode == PASS)
+                       display_window();
                
                ewl_main();
        
-               ecore_exe_run(cmd,NULL);
+               if(mode == SUDO)
+                       ecore_exe_run(cmd,NULL);
        }
        else
        {
-               printf("Usage: ./empower [SUDO OPTIONS] <program name> [PROGRAM 
OPTIONS] -- [EWL OPTIONS]\n");
+               printf("-=Usage=-\n");
+               printf("    Sudo:  empower [SUDO OPTIONS] <program> [PROGRAM 
OPTIONS] -- [EWL OPTIONS]\n");
+               printf("    AskPass:  empower-askpass -- [EWL OPTIONS] or 
empower -p -- [EWL OPTIONS]\n");
                return 1;
        }
        
===================================================================
RCS file: /cvs/e/e17/proto/empower/src/bin/ewl/empower_cb_ewl.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- empower_cb_ewl.c    30 May 2007 03:30:31 -0000      1.6
+++ empower_cb_ewl.c    30 May 2007 17:51:36 -0000      1.7
@@ -34,8 +34,18 @@
 {      
        char *pass = ewl_password_text_get(EWL_PASSWORD(data));
 
-       authorize(pass);
-       ewl_widget_disable(win);
+       if(pass && strlen(pass))
+       {
+               ewl_widget_disable(win);
+               
+               if(mode == SUDO)
+                       authorize(pass);
+               else
+               {
+                       printf("%s",pass);
+                       ewl_main_quit();
+               }
+       }
 }
 
 int sudo_done_cb(void *data, int type, void *event)



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to