checkpoint.
This commit is contained in:
parent
7d7b7f85ca
commit
d9ec880291
161
notes
161
notes
|
@ -1,13 +1,3 @@
|
||||||
server client
|
|
||||||
------ ------
|
|
||||||
[accept] <-- connect
|
|
||||||
challenge --> [encrypt]
|
|
||||||
[verify] <-- response (encrypted challenge, client name)
|
|
||||||
hangup if invalid
|
|
||||||
query info -->
|
|
||||||
<-- info (size)
|
|
||||||
|
|
||||||
---
|
|
||||||
nedit doesn't seem to be playing nice with the motif clipboard lock
|
nedit doesn't seem to be playing nice with the motif clipboard lock
|
||||||
it's not releasing it
|
it's not releasing it
|
||||||
may need to learn more about how the motif clipboard lock works
|
may need to learn more about how the motif clipboard lock works
|
||||||
|
@ -19,15 +9,14 @@ enable heartbeat disconnection or remove heartbeat sending in client
|
||||||
possibly make it part of startup negotiation
|
possibly make it part of startup negotiation
|
||||||
|
|
||||||
---
|
---
|
||||||
getting a stuttering when leaving win32 server screen
|
not handling large motif selections
|
||||||
|
there must be a limit because properties can only be so big
|
||||||
|
don't know protocol for transfer, though
|
||||||
|
|
||||||
---
|
---
|
||||||
merge platform dependent code into platform independent where possible
|
synergy should never restart if X server connection was lost?
|
||||||
also try to simplify where possible
|
if synergy server connection was lost then restart
|
||||||
|
unless --no-restart
|
||||||
---
|
|
||||||
IServer and IPrimaryReceiver are really similar
|
|
||||||
can we merge them into one?
|
|
||||||
|
|
||||||
---
|
---
|
||||||
use automake
|
use automake
|
||||||
|
@ -43,107 +32,6 @@ HTTP stuff
|
||||||
provide way to query why locked to screen?
|
provide way to query why locked to screen?
|
||||||
handy for debugging at least
|
handy for debugging at least
|
||||||
|
|
||||||
---
|
|
||||||
negotiation:
|
|
||||||
use a generic negotiation message (name/value pair) or specific
|
|
||||||
messages (name/values)? later allows more parsing to be done by
|
|
||||||
CProtocolUtil but how can we skip unknown messages? would have
|
|
||||||
to have a method on CInputPacketStream to discard to end of
|
|
||||||
message and we'd need to know the stream is a CInputPacketStream.
|
|
||||||
|
|
||||||
how does negotiation proceed?
|
|
||||||
could have sequence of queries and replies:
|
|
||||||
server -> client -> server ... end
|
|
||||||
client -> server -> client ... end
|
|
||||||
or a sequence of messages:
|
|
||||||
server -> client ... end
|
|
||||||
client -> server ... end
|
|
||||||
probably go with latter because it's more efficient but make it
|
|
||||||
3-way:
|
|
||||||
client -> server ... end
|
|
||||||
server -> client ... end
|
|
||||||
client -> server ... end
|
|
||||||
first messages from client must be version and name. the server
|
|
||||||
can create the appropriate protocol object right away then.
|
|
||||||
|
|
||||||
example: clipboard formats:
|
|
||||||
# CNEG = negotiation command CNEG%s%s
|
|
||||||
# CNGE = end of negotiation command
|
|
||||||
# cbfa = clipboard, format, add (permitted format)
|
|
||||||
# cbia = clipboard, id, add (clipboard with id exists)
|
|
||||||
client -> server: CNEG "vers" "1.0"
|
|
||||||
client -> server: CNEG "name" "foobar"
|
|
||||||
client -> server: CNGE
|
|
||||||
server -> client: CNEG "cbfa" "text/plain/LF"
|
|
||||||
server -> client: CNEG "cbfa" "image/BMP"
|
|
||||||
server -> client: CNGE
|
|
||||||
client -> server: CNEG "cbia" "0"
|
|
||||||
client -> server: CNGE
|
|
||||||
|
|
||||||
server should just ask CProtocol (renamed from CServerProtocol) to
|
|
||||||
return a protocol. CProtocol should do negotiation, create the
|
|
||||||
appropriate protocol object, finish negotiation, and return the
|
|
||||||
new protocol object. unless connection is registered with server,
|
|
||||||
though, we can't save any screen info. perhaps CProtocol should
|
|
||||||
also return a screen info object or that should be part of the
|
|
||||||
protocol object (currently the protocol is part of the screen info).
|
|
||||||
if screen info is available to CProtocol then it should finish with
|
|
||||||
requesting the screen info, waiting for and then handling the reply.
|
|
||||||
the server can then just ask CProtocol for the protocol object then
|
|
||||||
add it to the connections.
|
|
||||||
|
|
||||||
maybe call the protocol types CClientProxy since that's how the
|
|
||||||
server uses it: as a stand-in for the client object. the interface
|
|
||||||
should closely reflect the CClient interface. do the reverse for
|
|
||||||
a server proxy for the client. maybe even have interface classes
|
|
||||||
for the client and server methods.
|
|
||||||
|
|
||||||
---
|
|
||||||
should add clipboard data type format negotiation
|
|
||||||
server sends permitted data type formats
|
|
||||||
client responds with known formats in permitted list
|
|
||||||
client must only send permitted formats
|
|
||||||
server can discard non-permitted formats
|
|
||||||
server must only send known, permitted formats to client
|
|
||||||
formats are names of the form [a-zA-Z0-9_/]+
|
|
||||||
server must be able to translate between all permitted formats
|
|
||||||
example: text formats:
|
|
||||||
text/plain/CRLF -- windows plain text
|
|
||||||
text/plain/LF -- unix plain text
|
|
||||||
text/plain/CR -- mac plain text
|
|
||||||
text/rtf -- rich text (does that require a particular newline?)
|
|
||||||
or image formats:
|
|
||||||
image/BMP
|
|
||||||
image/RAW
|
|
||||||
image/XPM
|
|
||||||
|
|
||||||
this will allow future versions to interoperate better. it also
|
|
||||||
allows compatibility with versions that are identical except for
|
|
||||||
the support clipboard formats, obviating bumping up the protocol
|
|
||||||
version number.
|
|
||||||
|
|
||||||
maybe config file can list format shared libraries to load. user
|
|
||||||
can then pick formats to support. but why would you ever want
|
|
||||||
fewer formats?
|
|
||||||
|
|
||||||
should the major burden of translation be on client or server?
|
|
||||||
probably client since it knows the formats preferred by the
|
|
||||||
platform and may be able to use platform utilities to convert.
|
|
||||||
server would then just support formats that minimize loss of
|
|
||||||
information.
|
|
||||||
|
|
||||||
desired formats to support:
|
|
||||||
text (LF)
|
|
||||||
text with character set
|
|
||||||
unicode (LF)
|
|
||||||
rich text (or some kind of formatting)
|
|
||||||
bitmap (BMP, PNG?)
|
|
||||||
sound (WAV)
|
|
||||||
|
|
||||||
note that formats should be added to the win32 clipboard in the
|
|
||||||
order of most descriptive to least because they're kept in order
|
|
||||||
and apps will generally use the first suitable match.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
hot keys
|
hot keys
|
||||||
should have keyboard shortcuts to jump to screens
|
should have keyboard shortcuts to jump to screens
|
||||||
|
@ -190,10 +78,6 @@ should switch to user nobody (or something similar) if running as root
|
||||||
will make it impossible to overwrite /etc/synergy.conf
|
will make it impossible to overwrite /etc/synergy.conf
|
||||||
if that file is only root writable (as it should be)
|
if that file is only root writable (as it should be)
|
||||||
|
|
||||||
---
|
|
||||||
Xsetup file may have to kill previous synergy
|
|
||||||
or synergy should exit if there's already a synergy running
|
|
||||||
|
|
||||||
---
|
---
|
||||||
not handling international characters
|
not handling international characters
|
||||||
|
|
||||||
|
@ -221,17 +105,6 @@ not distinguishing between caps lock and shift lock
|
||||||
and releasing the Lock key turns on the mode, and pressing and releasing
|
and releasing the Lock key turns on the mode, and pressing and releasing
|
||||||
either the Lock or the Shift key turns off the mode.
|
either the Lock or the Shift key turns off the mode.
|
||||||
|
|
||||||
---
|
|
||||||
currently sending all clipboards to all clients
|
|
||||||
some clients may not need all clipboards
|
|
||||||
add filtering mechanism
|
|
||||||
setup is probably part of clipboard (format) negotiation
|
|
||||||
|
|
||||||
---
|
|
||||||
not handling large motif selections
|
|
||||||
there must be a limit because properties can only be so big
|
|
||||||
don't know protocol for transfer, though
|
|
||||||
|
|
||||||
---
|
---
|
||||||
need timeout on CXWindowsClipboard::CReply objects
|
need timeout on CXWindowsClipboard::CReply objects
|
||||||
should flush replies that are too old
|
should flush replies that are too old
|
||||||
|
@ -462,28 +335,6 @@ non-functional on ctrl+alt+del screen in win2k (kurt)
|
||||||
i suppose it must be when win2k is the client. mouse input wasn't
|
i suppose it must be when win2k is the client. mouse input wasn't
|
||||||
working. keyboard probably didn't work either.
|
working. keyboard probably didn't work either.
|
||||||
|
|
||||||
gspencer:
|
|
||||||
OK, I've narrowed it down a little -- it seems to happen if you have any
|
|
||||||
key down (I tried the shift key and the letter 's' key) when you cross
|
|
||||||
over from master to client, which would make me suspect the "capture"
|
|
||||||
code, since if you have a key down you aren't supposed to be able to
|
|
||||||
cross over...
|
|
||||||
|
|
||||||
gspencer:
|
|
||||||
bouncy mouse at edge of screen (win32 server). almost certainly
|
|
||||||
related to changes that fixed mouse delta calculation.
|
|
||||||
|
|
||||||
|
|
||||||
== fixed? ===
|
|
||||||
dragging windows is too slow
|
|
||||||
grace (as client) exhibits this
|
|
||||||
dunno if it happens with audrey2 as the client
|
|
||||||
liz says her windows laptop does it too
|
|
||||||
also closing/iconifying has a delay
|
|
||||||
dragging multiple files also sluggish
|
|
||||||
|
|
||||||
liz seems to still be seeing sluggish cursor updates
|
|
||||||
|
|
||||||
---
|
---
|
||||||
automake stuff
|
automake stuff
|
||||||
rebuild:
|
rebuild:
|
||||||
|
|
Loading…
Reference in New Issue