View | Details | Raw Unified | Return to bug 1330 | Differences between
and this patch

Collapse All | Expand All

(-)openssh/clientloop.c~ (-1 / +21 lines)
Lines 1271-1278 static void Link Here
1271
client_channel_closed(int id, void *arg)
1271
client_channel_closed(int id, void *arg)
1272
{
1272
{
1273
	channel_cancel_cleanup(id);
1273
	channel_cancel_cleanup(id);
1274
	session_closed = 1;
1275
	leave_raw_mode();
1274
	leave_raw_mode();
1275
	if (options.control_persist && options.control_path != NULL && control_fd != -1) {
1276
		int pid = fork();
1277
1278
		if (pid < 0) {
1279
			error("fork: %.100s", strerror(errno));
1280
			/* Just exit */
1281
			session_closed = 1;
1282
			return;
1283
		}
1284
		if (pid != 0) {
1285
			/* We are the parent. Exit, leaving the child to continue serving */
1286
			exit(exit_status);
1287
		}
1288
		session_ident = -1;
1289
		/* We _must_ lose our controlling tty, else subsequent control_client
1290
		   invocations from the same tty will cause us to get -EIO when reading
1291
		   from the tty */
1292
		setsid();
1293
		return;
1294
	}
1295
	session_closed = 1;
1276
}
1296
}
1277
1297
1278
/*
1298
/*
(-)openssh/readconf.c~ (-1 / +6 lines)
Lines 106-112 typedef enum { Link Here
106
	oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout,
106
	oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout,
107
	oAddressFamily, oGssAuthentication, oGssDelegateCreds,
107
	oAddressFamily, oGssAuthentication, oGssDelegateCreds,
108
	oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly,
108
	oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly,
109
	oSendEnv, oControlPath, oControlMaster, oHashKnownHosts,
109
	oSendEnv, oControlPath, oControlMaster, oControlPersist, oHashKnownHosts,
110
	oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand,
110
	oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand,
111
	oDeprecated, oUnsupported
111
	oDeprecated, oUnsupported
112
} OpCodes;
112
} OpCodes;
Lines 197-202 static struct { Link Here
197
	{ "sendenv", oSendEnv },
197
	{ "sendenv", oSendEnv },
198
	{ "controlpath", oControlPath },
198
	{ "controlpath", oControlPath },
199
	{ "controlmaster", oControlMaster },
199
	{ "controlmaster", oControlMaster },
200
	{ "controlpersist", oControlPersist },
200
	{ "hashknownhosts", oHashKnownHosts },
201
	{ "hashknownhosts", oHashKnownHosts },
201
	{ NULL, oBadOption }
202
	{ NULL, oBadOption }
202
};
203
};
Lines 818-823 parse_int: Link Here
818
			*intptr = value;
819
			*intptr = value;
819
		break;
820
		break;
820
821
822
	case oControlPersist:
823
		intptr = &options->control_persist;
824
		goto parse_flag;
825
821
	case oHashKnownHosts:
826
	case oHashKnownHosts:
822
		intptr = &options->hash_known_hosts;
827
		intptr = &options->hash_known_hosts;
823
		goto parse_flag;
828
		goto parse_flag;
(-)openssh/readconf.h~ (+1 lines)
Lines 112-117 typedef struct { Link Here
112
112
113
	char	*control_path;
113
	char	*control_path;
114
	int	control_master;
114
	int	control_master;
115
	int	control_persist;
115
116
116
	int	hash_known_hosts;
117
	int	hash_known_hosts;
117
}       Options;
118
}       Options;

Return to bug 1330