+
+#ifdef KERBEROS
+try_connect:
+ if (use_kerberos) {
+ rem = KSUCCESS;
+ errno = 0;
+ if (dest_realm == NULL)
+ dest_realm = krb_realmofhost(host);
+
+ if (encrypt) {
+ rem = krcmd_mutual(
+ &host, sp->s_port,
+ user ? user : pwd->pw_name,
+ args,
+ &rfd2,
+ dest_realm,
+ &cred, schedule);
+ } else {
+ rem = krcmd(
+ &host,
+ sp->s_port,
+ user ? user : pwd->pw_name,
+ args,
+ &rfd2,
+ dest_realm);
+ }
+ if (rem < 0) {
+ use_kerberos = 0;
+ sp = getservbyname("shell", "tcp");
+ if (sp == NULL) {
+ fprintf(stderr, "unknown service shell/tcp\n");
+ exit(1);
+ }
+ if (errno == ECONNREFUSED)
+ old_warning("remote host doesn't support Kerberos");
+ if (errno == ENOENT)
+ old_warning("Can't provide Kerberos auth data");
+ goto try_connect;
+ }
+ } else {
+ if (encrypt) {
+ fprintf(stderr,"The -x flag requires Kerberos authentication\n");
+ exit(1);
+ }
+ rem = rcmd(&host, sp->s_port, pwd->pw_name,
+ user ? user : pwd->pw_name, args, &rfd2);
+ }
+
+#else
+