Zdravím,
myslíš následující dokumentaci a program checkpassword?

    http://cr.yp.to/checkpwd/interface.html

Pokud ano, tak tohle je začátek programu checkpassword:

    int main(int argc,char* argv[]) {
      char buf[513];
      char* last;
      int len;
      char *login,*passwd,*ptr;
      struct passwd *pw;
      struct spwd *spw;

      if (!argv[1]) return 2;
      for (len=0; len<512; ) {
        int tmp;
        tmp=read(3,buf+len,512-len);
        if (tmp==-1) return 111;
        if (tmp==0) break;
        len+=tmp;
      }
      close(3);

Ve svém programu tedy nejprve musíš připravit fd 3 pro checkpassword.
Takže rešení může být např.:

    import os

    r_fd, w_fd = os.pipe()
    os.write(w_fd, "username\0password\0")

    retcode = os.fork()

    if (retcode == 0):
        os.close(w_fd)
        os.execlp("checkpassword", "checkpassword", "/bin/date")
    else:
        os.close(r_fd)
        os.close(w_fd)

Jelikoz jsou na zacatku otevreny pouze deskriptory 0, 1, 2 tj. stdin,
stdout, stderr, tak fce pipe() vrati pro cteci fd 3, takze neni treba
resit prirazeni pomoci dup(), dup2(). Dulezite je uzavrit zapisovaci
cast roury, jinak zustane checkpassword "viset" ve fci read().

           S pozdravem Jan Fuchs

Snažím se napsat si autentikační plugin pro BINCimap. V dokumentaci je
napsáno, že jméno a heslo je odesíláno na deskriptor 3.

--
/**************************************************************
*   _    Žádný program není bezchybný, dokonalý ani nejlepší, *
*  °v°   to samé platí i o lidech a nejen o nich.             *
* /(_)\                                      -- Jan Fuchs --  *
*  ^ ^                                                        *
*        http://www.fuky.org   Jabber: [email protected] *
**************************************************************/
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem