mirror of
https://github.com/KDE/krfb
synced 2026-07-01 07:41:17 -07:00
sync before Connection rewrite
svn path=/trunk/kdenetwork/krfb/; revision=134281
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2002-01-21 Tim Jansen <tim@tjansen.de>
|
||||||
|
|
||||||
|
* moved read/write from RFBController to Connection
|
||||||
|
|
||||||
|
* added some "flushing points" to remove latencies
|
||||||
|
|
||||||
2002-01-20 Tim Jansen <tim@tjansen.de>
|
2002-01-20 Tim Jansen <tim@tjansen.de>
|
||||||
|
|
||||||
* removed RRE encoding
|
* removed RRE encoding
|
||||||
@@ -32,7 +38,7 @@
|
|||||||
|
|
||||||
2002-01-10 Tim Jansen <tim@tjansen.de>
|
2002-01-10 Tim Jansen <tim@tjansen.de>
|
||||||
|
|
||||||
* krfb/XUpdateScanner.cc: improved finding of hints (join adjacent
|
* krfb/XUpdateScanner.cc: improved hints searching (join adjacent
|
||||||
hint regions, get rid of unneccessary comparisons)
|
hint regions, get rid of unneccessary comparisons)
|
||||||
|
|
||||||
2002-01-09 Tim Jansen <tim@tjansen.de>
|
2002-01-09 Tim Jansen <tim@tjansen.de>
|
||||||
|
|||||||
3
NOTES
3
NOTES
@@ -28,8 +28,7 @@ Some comments on various aspects of KRfb:
|
|||||||
use.
|
use.
|
||||||
- the original x0rfbserver has a features for selecting the port number
|
- the original x0rfbserver has a features for selecting the port number
|
||||||
automatically. I skipped that because it is too complicated on the client
|
automatically. I skipped that because it is too complicated on the client
|
||||||
side, but I may change my opinion when KDE supports SLP or a similar
|
side, but I this will change when there are mechanisms for inviting people.
|
||||||
auto-discovery mechanism.
|
|
||||||
- the command line args are intended for starting KRfb from a system like
|
- the command line args are intended for starting KRfb from a system like
|
||||||
Jabber, thats the reason why there is no preferences dialog when
|
Jabber, thats the reason why there is no preferences dialog when
|
||||||
command line args have been used and it's also the reason
|
command line args have been used and it's also the reason
|
||||||
|
|||||||
12
README
12
README
@@ -7,11 +7,13 @@ to share your X11 session instead of creating a new X11 session.
|
|||||||
It is based on x0rfbserver, available from
|
It is based on x0rfbserver, available from
|
||||||
http://www.hexonet.de/software/x0rfbserver/.
|
http://www.hexonet.de/software/x0rfbserver/.
|
||||||
|
|
||||||
|
For the latest information about KRfb visit http://www.tjansen.de/krfb
|
||||||
For more information about KRfb visit http://www.tjansen.de/krfb
|
|
||||||
|
|
||||||
Read the NOTES file for various notes on KRfb.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Guide to documentation:
|
||||||
|
README_KDE3 - docs for using it under KDE3
|
||||||
|
ROADMAP - KRfb roadmap, progress and future features
|
||||||
|
TODO - unscheduled things to be done
|
||||||
|
NOTES - reasons for various decisions
|
||||||
|
ChangeLog - more detailed changes with dates
|
||||||
|
|
||||||
|
|||||||
22
TODO
22
TODO
@@ -1,16 +1,8 @@
|
|||||||
Todo:
|
Todo:
|
||||||
- add codec-test option (0.6)
|
- big endian support (testers needed)
|
||||||
- let Connection write/read directly, add Tight::flush (0.6)
|
- write screen recording app using the lib
|
||||||
- rewrite Connection to use linked buffers (0.6)
|
- SLP support (or UPnP, or whatever KDE will use)
|
||||||
- clip framebuffer updates to requested region (0.6)
|
- look into adding extension to xfree to improve speed (get noticed of
|
||||||
- knotify (0.6)
|
screen updates)
|
||||||
- i18n (0.7)
|
|
||||||
- encrypted connections: http://web.mit.edu/thouis/vnc/ (0.7)
|
see ROADMAP for planned features!
|
||||||
- kcontrol module? (0.8)
|
|
||||||
- kded module? (0.8)
|
|
||||||
- docs (0.8)
|
|
||||||
- big endian support (need tester)
|
|
||||||
- do something against potential denial-of-service attacks by repeatedly
|
|
||||||
trying to connect to users until they agree. Maybe a message box
|
|
||||||
after the third attempt offering the user to stop KRfb, block the IP or
|
|
||||||
something like this
|
|
||||||
|
|||||||
@@ -153,13 +153,14 @@ void RFBController::idleSlot() {
|
|||||||
if (connection) {
|
if (connection) {
|
||||||
connection->scanUpdates();
|
connection->scanUpdates();
|
||||||
connection->sendIncrementalFramebufferUpdate();
|
connection->sendIncrementalFramebufferUpdate();
|
||||||
|
connection->connection->write();
|
||||||
checkWriteBuffer();
|
checkWriteBuffer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFBController::checkWriteBuffer() {
|
void RFBController::checkWriteBuffer() {
|
||||||
BufferedConnection *bc = connection->connection;
|
BufferedConnection *bc = connection->connection;
|
||||||
bool bufferEmpty = (bc->senderBuffer.end - bc->senderBuffer.pos) == 0;
|
bool bufferEmpty = !bc->hasSenderBufferData();
|
||||||
socket->enableWrite(!bufferEmpty);
|
socket->enableWrite(!bufferEmpty);
|
||||||
if (bufferEmpty && !idleUpdateScheduled && connection) {
|
if (bufferEmpty && !idleUpdateScheduled && connection) {
|
||||||
QTimer::singleShot(0, this, SLOT(idleSlot()));
|
QTimer::singleShot(0, this, SLOT(idleSlot()));
|
||||||
@@ -170,15 +171,10 @@ void RFBController::checkWriteBuffer() {
|
|||||||
void RFBController::socketReadable() {
|
void RFBController::socketReadable() {
|
||||||
if ((!socket) || (!connection))
|
if ((!socket) || (!connection))
|
||||||
return;
|
return;
|
||||||
int fd = socket->socket();
|
|
||||||
BufferedConnection *bc = connection->connection;
|
|
||||||
|
|
||||||
int count = read(fd,
|
BufferedConnection *bc = connection->connection;
|
||||||
bc->receiverBuffer.data,
|
int count = bc->read();
|
||||||
bc->receiverBuffer.size);
|
if (count < 0) {
|
||||||
if (count >= 0)
|
|
||||||
bc->receiverBuffer.end += count;
|
|
||||||
else {
|
|
||||||
closeSession();
|
closeSession();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -186,8 +182,6 @@ void RFBController::socketReadable() {
|
|||||||
connection->update();
|
connection->update();
|
||||||
checkWriteBuffer();
|
checkWriteBuffer();
|
||||||
}
|
}
|
||||||
bc->receiverBuffer.pos = 0;
|
|
||||||
bc->receiverBuffer.end = 0;
|
|
||||||
|
|
||||||
if (!connection->currentState) {
|
if (!connection->currentState) {
|
||||||
closeSession();
|
closeSession();
|
||||||
@@ -197,19 +191,13 @@ void RFBController::socketReadable() {
|
|||||||
void RFBController::socketWritable() {
|
void RFBController::socketWritable() {
|
||||||
if ((!socket) || (!connection))
|
if ((!socket) || (!connection))
|
||||||
return;
|
return;
|
||||||
int fd = socket->socket();
|
|
||||||
|
|
||||||
BufferedConnection *bc = connection->connection;
|
BufferedConnection *bc = connection->connection;
|
||||||
ASSERT((bc->senderBuffer.end - bc->senderBuffer.pos) > 0);
|
int count = bc->write();
|
||||||
int count = write(fd,
|
if (count >= 0)
|
||||||
bc->senderBuffer.data + bc->senderBuffer.pos,
|
|
||||||
bc->senderBuffer.end - bc->senderBuffer.pos);
|
|
||||||
if (count >= 0) {
|
|
||||||
bc->senderBuffer.pos += count;
|
|
||||||
checkWriteBuffer();
|
checkWriteBuffer();
|
||||||
} else {
|
else
|
||||||
closeSession();
|
closeSession();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFBController::closeSession() {
|
void RFBController::closeSession() {
|
||||||
|
|||||||
Reference in New Issue
Block a user