[BACK]Return to yp_passwd.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / passwd

Diff for /src/usr.bin/passwd/Attic/yp_passwd.c between version 1.30 and 1.31

version 1.30, 2007/08/14 13:30:45 version 1.31, 2008/11/06 05:35:56
Line 61 
Line 61 
 extern int      pwd_check(login_cap_t *, char *);  extern int      pwd_check(login_cap_t *, char *);
 extern int      pwd_gettries(login_cap_t *);  extern int      pwd_gettries(login_cap_t *);
 extern void     kbintr(int);  extern void     kbintr(int);
   int             yp_passwd(char *);
   
 char            *ypgetnewpasswd(struct passwd *, login_cap_t *, char **);  char            *ypgetnewpasswd(struct passwd *, login_cap_t *, char **);
 struct passwd   *ypgetpwnam(char *, int);  struct passwd   *ypgetpwnam(char *, int);
   struct passwd   *interpret(struct passwd *, char *, int);
   
 char *domain;  char *domain;
   
 static int  static int
 pw_error(char *name, int err, int eval)  pw_error(char *name, int error, int eval)
 {  {
         if (err) {          if (error) {
                 if (name)                  if (name)
                         warn("%s", name);                          warn("%s", name);
                 else                  else
Line 84 
Line 86 
 int  int
 yp_passwd(char *username)  yp_passwd(char *username)
 {  {
         struct yppasswd yppasswd;          struct yppasswd yppwd;
         int r, rpcport, status, secure=0;          int r, rpcport, status, secure=0;
         struct passwd *pw;          struct passwd *pw;
         struct timeval tv;          struct timeval tv;
Line 150 
Line 152 
         }          }
   
         /* prompt for new password */          /* prompt for new password */
         yppasswd.newpw.pw_passwd = ypgetnewpasswd(pw, lc, &yppasswd.oldpass);          yppwd.newpw.pw_passwd = ypgetnewpasswd(pw, lc, &yppwd.oldpass);
   
         /* tell rpc.yppasswdd */          /* tell rpc.yppasswdd */
         yppasswd.newpw.pw_name  = pw->pw_name;          yppwd.newpw.pw_name     = pw->pw_name;
         yppasswd.newpw.pw_uid   = pw->pw_uid;          yppwd.newpw.pw_uid      = pw->pw_uid;
         yppasswd.newpw.pw_gid   = pw->pw_gid;          yppwd.newpw.pw_gid      = pw->pw_gid;
         yppasswd.newpw.pw_gecos = pw->pw_gecos;          yppwd.newpw.pw_gecos = pw->pw_gecos;
         yppasswd.newpw.pw_dir   = pw->pw_dir;          yppwd.newpw.pw_dir      = pw->pw_dir;
         yppasswd.newpw.pw_shell = pw->pw_shell;          yppwd.newpw.pw_shell    = pw->pw_shell;
   
         client = clnt_create(master, YPPASSWDPROG, YPPASSWDVERS, "udp");          client = clnt_create(master, YPPASSWDPROG, YPPASSWDVERS, "udp");
         if (client==NULL) {          if (client==NULL) {
                 warnx("cannot contact yppasswdd on %s: Reason: %s",                  warnx("cannot contact yppasswdd on %s: Reason: %s",
                     master, yperr_string(YPERR_YPBIND));                      master, yperr_string(YPERR_YPBIND));
                 free(yppasswd.newpw.pw_passwd);                  free(yppwd.newpw.pw_passwd);
                 return (YPERR_YPBIND);                  return (YPERR_YPBIND);
         }          }
         client->cl_auth = authunix_create_default();          client->cl_auth = authunix_create_default();
         tv.tv_sec = 2;          tv.tv_sec = 2;
         tv.tv_usec = 0;          tv.tv_usec = 0;
         r = clnt_call(client, YPPASSWDPROC_UPDATE,          r = clnt_call(client, YPPASSWDPROC_UPDATE,
             xdr_yppasswd, &yppasswd, xdr_int, &status, tv);              xdr_yppasswd, &yppwd, xdr_int, &status, tv);
         if (r) {          if (r) {
                 printf("rpc to yppasswdd failed.\n");                  printf("rpc to yppasswdd failed.\n");
                 free(yppasswd.newpw.pw_passwd);                  free(yppwd.newpw.pw_passwd);
                 return (1);                  return (1);
         } else if (status) {          } else if (status) {
                 printf("Couldn't change YP password.\n");                  printf("Couldn't change YP password.\n");
                 free(yppasswd.newpw.pw_passwd);                  free(yppwd.newpw.pw_passwd);
                 return (1);                  return (1);
         } else {          } else {
                 printf("The YP password has been changed on %s, "                  printf("The YP password has been changed on %s, "
                     "the master YP passwd server.\n", master);                      "the master YP passwd server.\n", master);
                 free(yppasswd.newpw.pw_passwd);                  free(yppwd.newpw.pw_passwd);
                 return (0);                  return (0);
         }          }
 }  }

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31