7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
|
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
|
+
-
-
+
+
+
|
remid = ssh_pkt_getuint32(pktin);
winsize = ssh_pkt_getuint32(pktin);
pktsize = ssh_pkt_getuint32(pktin);
if (typelen == 3 && !memcmp(type, "x11", 3)) {
char *addrstr;
const char *x11err;
ssh_pkt_getstring(pktin, &peeraddr, &peeraddrlen);
addrstr = snewn(peeraddrlen+1, char);
memcpy(addrstr, peeraddr, peeraddrlen);
addrstr[peeraddrlen] = '\0';
peerport = ssh_pkt_getuint32(pktin);
logeventf(ssh, "Received X11 connect request from %s:%d",
addrstr, peerport);
if (!ssh->X11_fwd_enabled)
error = "X11 forwarding is not enabled";
else if (x11_init(&c->u.x11.s, ssh->x11disp, c,
addrstr, peerport, &ssh->cfg) != NULL) {
else if ((x11err = x11_init(&c->u.x11.s, ssh->x11disp, c,
addrstr, peerport, &ssh->cfg)) != NULL) {
logeventf(ssh, "Local X11 connection failed: %s", x11err);
error = "Unable to open an X11 connection";
} else {
logevent("Opening X11 forward connection succeeded");
c->type = CHAN_X11;
}
sfree(addrstr);
|