vnc.c (f6029bb614cebb0d6c9800990af49d55338231fd) vnc.c (54aa3de72ea2aaa2e903e7e879a4f3dda515a00e)
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 351 unchanged lines hidden (view full) ---

360 return vd;
361 }
362 }
363 return NULL;
364}
365
366static VncClientInfoList *qmp_query_client_list(VncDisplay *vd)
367{
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 351 unchanged lines hidden (view full) ---

360 return vd;
361 }
362 }
363 return NULL;
364}
365
366static VncClientInfoList *qmp_query_client_list(VncDisplay *vd)
367{
368 VncClientInfoList *cinfo, *prev = NULL;
368 VncClientInfoList *prev = NULL;
369 VncState *client;
370
371 QTAILQ_FOREACH(client, &vd->clients, next) {
369 VncState *client;
370
371 QTAILQ_FOREACH(client, &vd->clients, next) {
372 cinfo = g_new0(VncClientInfoList, 1);
373 cinfo->value = qmp_query_vnc_client(client);
374 cinfo->next = prev;
375 prev = cinfo;
372 QAPI_LIST_PREPEND(prev, qmp_query_vnc_client(client));
376 }
377 return prev;
378}
379
380VncInfo *qmp_query_vnc(Error **errp)
381{
382 VncInfo *info = g_malloc0(sizeof(*info));
383 VncDisplay *vd = vnc_display_find(NULL);

--- 64 unchanged lines hidden (view full) ---

448 bool *qmp_has_vencrypt);
449
450static VncServerInfo2List *qmp_query_server_entry(QIOChannelSocket *ioc,
451 bool websocket,
452 int auth,
453 int subauth,
454 VncServerInfo2List *prev)
455{
373 }
374 return prev;
375}
376
377VncInfo *qmp_query_vnc(Error **errp)
378{
379 VncInfo *info = g_malloc0(sizeof(*info));
380 VncDisplay *vd = vnc_display_find(NULL);

--- 64 unchanged lines hidden (view full) ---

445 bool *qmp_has_vencrypt);
446
447static VncServerInfo2List *qmp_query_server_entry(QIOChannelSocket *ioc,
448 bool websocket,
449 int auth,
450 int subauth,
451 VncServerInfo2List *prev)
452{
456 VncServerInfo2List *list;
457 VncServerInfo2 *info;
458 Error *err = NULL;
459 SocketAddress *addr;
460
461 addr = qio_channel_socket_get_local_address(ioc, NULL);
462 if (!addr) {
463 return prev;
464 }

--- 6 unchanged lines hidden (view full) ---

471 error_free(err);
472 return prev;
473 }
474 info->websocket = websocket;
475
476 qmp_query_auth(auth, subauth, &info->auth,
477 &info->vencrypt, &info->has_vencrypt);
478
453 VncServerInfo2 *info;
454 Error *err = NULL;
455 SocketAddress *addr;
456
457 addr = qio_channel_socket_get_local_address(ioc, NULL);
458 if (!addr) {
459 return prev;
460 }

--- 6 unchanged lines hidden (view full) ---

467 error_free(err);
468 return prev;
469 }
470 info->websocket = websocket;
471
472 qmp_query_auth(auth, subauth, &info->auth,
473 &info->vencrypt, &info->has_vencrypt);
474
479 list = g_new0(VncServerInfo2List, 1);
480 list->value = info;
481 list->next = prev;
482 return list;
475 QAPI_LIST_PREPEND(prev, info);
476 return prev;
483}
484
485static void qmp_query_auth(int auth, int subauth,
486 VncPrimaryAuth *qmp_auth,
487 VncVencryptSubAuth *qmp_vencrypt,
488 bool *qmp_has_vencrypt)
489{
490 switch (auth) {

--- 58 unchanged lines hidden (view full) ---

549 default:
550 *qmp_auth = VNC_PRIMARY_AUTH_NONE;
551 break;
552 }
553}
554
555VncInfo2List *qmp_query_vnc_servers(Error **errp)
556{
477}
478
479static void qmp_query_auth(int auth, int subauth,
480 VncPrimaryAuth *qmp_auth,
481 VncVencryptSubAuth *qmp_vencrypt,
482 bool *qmp_has_vencrypt)
483{
484 switch (auth) {

--- 58 unchanged lines hidden (view full) ---

543 default:
544 *qmp_auth = VNC_PRIMARY_AUTH_NONE;
545 break;
546 }
547}
548
549VncInfo2List *qmp_query_vnc_servers(Error **errp)
550{
557 VncInfo2List *item, *prev = NULL;
551 VncInfo2List *prev = NULL;
558 VncInfo2 *info;
559 VncDisplay *vd;
560 DeviceState *dev;
561 size_t i;
562
563 QTAILQ_FOREACH(vd, &vnc_displays, next) {
564 info = g_new0(VncInfo2, 1);
565 info->id = g_strdup(vd->id);

--- 12 unchanged lines hidden (view full) ---

578 info->server);
579 }
580 for (i = 0; vd->wslistener != NULL && i < vd->wslistener->nsioc; i++) {
581 info->server = qmp_query_server_entry(
582 vd->wslistener->sioc[i], true, vd->ws_auth,
583 vd->ws_subauth, info->server);
584 }
585
552 VncInfo2 *info;
553 VncDisplay *vd;
554 DeviceState *dev;
555 size_t i;
556
557 QTAILQ_FOREACH(vd, &vnc_displays, next) {
558 info = g_new0(VncInfo2, 1);
559 info->id = g_strdup(vd->id);

--- 12 unchanged lines hidden (view full) ---

572 info->server);
573 }
574 for (i = 0; vd->wslistener != NULL && i < vd->wslistener->nsioc; i++) {
575 info->server = qmp_query_server_entry(
576 vd->wslistener->sioc[i], true, vd->ws_auth,
577 vd->ws_subauth, info->server);
578 }
579
586 item = g_new0(VncInfo2List, 1);
587 item->value = info;
588 item->next = prev;
589 prev = item;
580 QAPI_LIST_PREPEND(prev, info);
590 }
591 return prev;
592}
593
594/* TODO
595 1) Get the queue working for IO.
596 2) there is some weirdness when using the -S option (the screen is grey
597 and not totally invalidated

--- 3548 unchanged lines hidden ---
581 }
582 return prev;
583}
584
585/* TODO
586 1) Get the queue working for IO.
587 2) there is some weirdness when using the -S option (the screen is grey
588 and not totally invalidated

--- 3548 unchanged lines hidden ---