vncv: handle [] enclosed literal ipv6 addresses in host
This commit is contained in:
parent
43636dbb7f
commit
d263134394
|
@ -53,7 +53,6 @@ vncauth(Vnc *v, char *keypattern)
|
|||
char *reason;
|
||||
uchar chal[VncChalLen];
|
||||
ulong auth;
|
||||
char *p, *server;
|
||||
|
||||
if(keypattern == nil)
|
||||
keypattern = "";
|
||||
|
@ -79,16 +78,10 @@ vncauth(Vnc *v, char *keypattern)
|
|||
|
||||
case AVncAuth:
|
||||
vncrdbytes(v, chal, VncChalLen);
|
||||
server = strdup(serveraddr);
|
||||
p = strrchr(server, ':');
|
||||
if(p)
|
||||
*p = 0;
|
||||
if(auth_respond(chal, VncChalLen, nil, 0, chal, VncChalLen, auth_getkey,
|
||||
"proto=vnc role=client server=%s %s", server, keypattern) != VncChalLen){
|
||||
free(server);
|
||||
"proto=vnc role=client server=%s %s", serveraddr, keypattern) != VncChalLen){
|
||||
return -1;
|
||||
}
|
||||
free(server);
|
||||
vncwrbytes(v, chal, VncChalLen);
|
||||
vncflush(v);
|
||||
|
||||
|
|
|
@ -51,7 +51,9 @@ netmkvncaddr(char *server)
|
|||
port = 5900;
|
||||
if(tls)
|
||||
port = 35729;
|
||||
if(p = strchr(server, ':')) {
|
||||
if((p = strchr(server, ']')) == nil)
|
||||
p = server;
|
||||
if((p = strchr(p, ':')) != nil) {
|
||||
*p++ = '\0';
|
||||
port += atoi(p);
|
||||
}
|
||||
|
@ -110,7 +112,7 @@ main(int argc, char **argv)
|
|||
usage();
|
||||
|
||||
serveraddr = strdup(argv[0]);
|
||||
dfd = dial(netmkvncaddr(argv[0]), nil, nil, &cfd);
|
||||
dfd = dial(netmkvncaddr(serveraddr), nil, nil, &cfd);
|
||||
if(dfd < 0)
|
||||
sysfatal("cannot dial %s: %r", serveraddr);
|
||||
if(tls){
|
||||
|
@ -132,7 +134,7 @@ main(int argc, char **argv)
|
|||
if(vncstart(vnc, shared) < 0)
|
||||
sysfatal("init failure: %r");
|
||||
|
||||
label = smprint("vnc %s", serveraddr);
|
||||
label = smprint("vnc %s", argv[0]);
|
||||
if(initdraw(0, 0, label) < 0)
|
||||
sysfatal("initdraw: %r");
|
||||
free(label);
|
||||
|
|
Loading…
Reference in a new issue