This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch feature/udp-support in repository x2gokdrive. from d83fc36 Improving detecting the regions of dirty pixels. new dfc7320 Server to client selection in UDP mode. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: x2gokdriveremote.c | 20 ++++++++++++++++++-- x2gokdriveremote.h | 3 ++- x2gokdriveselection.c | 1 - 3 files changed, 20 insertions(+), 4 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdrive.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch feature/udp-support in repository x2gokdrive. commit dfc732019e5d61a523c3e3c553d3a0ac6ae1decb Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Mon Dec 12 11:28:52 2022 -0600 Server to client selection in UDP mode. --- x2gokdriveremote.c | 20 ++++++++++++++++++-- x2gokdriveremote.h | 3 ++- x2gokdriveselection.c | 1 - 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/x2gokdriveremote.c b/x2gokdriveremote.c index 0287a83..3d0f879 100644 --- a/x2gokdriveremote.c +++ b/x2gokdriveremote.c @@ -815,6 +815,7 @@ int send_selection_chunk(int sel, unsigned char* data, uint32_t length, uint32_t int sent = 0; int total = 0; int hdr_sz=8*4; + uint32_t uncompressed_length=length; //if the data is compressed, send "compressed" amount of bytes // EPHYR_DBG("sending chunk. total %d, chunk %d, compressed %d", total, length, compressed); @@ -837,7 +838,7 @@ int send_selection_chunk(int sel, unsigned char* data, uint32_t length, uint32_t *((uint32_t*)buffer)=SELECTION; //0 *((uint32_t*)buffer+1)=sel; //4 *((uint32_t*)buffer+2)=format; //8 - *((uint32_t*)buffer+3)=length; //16 + *((uint32_t*)buffer+3)=uncompressed_length; //16 *((uint32_t*)buffer+4)=first; //20 *((uint32_t*)buffer+5)=last; //24 *((uint32_t*)buffer+6)=compressed; //28 @@ -3343,6 +3344,16 @@ void open_socket(void) EPHYR_DBG("Listen on port %d", remoteVars.listenPort); remoteVars.address.sin_port = htons (remoteVars.listenPort); } + if(!remoteVars.udpPort) + { + EPHYR_DBG("UDP port %d", DEFAULT_PORT+1); + remoteVars.udp_address.sin_port = htons (DEFAULT_PORT+1); + } + else + { + EPHYR_DBG("Listen on port %d", remoteVars.udpPort); + remoteVars.udp_address.sin_port = htons (remoteVars.udpPort); + } if (bind ( remoteVars.serversock, (struct sockaddr *) &remoteVars.address, sizeof (remoteVars.address)) != 0) @@ -3472,6 +3483,11 @@ void processConfigFileSetting(char* key, char* value) sscanf(value, "%d",&remoteVars.listenPort); EPHYR_DBG("listen %d", remoteVars.listenPort); } + else if(!strcmp(key, "listen_udp")) + { + sscanf(value, "%d",&remoteVars.udpPort); + EPHYR_DBG("listen %d", remoteVars.udpPort); + } else if(!strcmp(key, "clipboard")) { if(!strcmp(value,"client")) @@ -3562,7 +3578,7 @@ remote_init(void) EPHYR_DBG("JPEG quality is %d", remoteVars.initialJpegQuality); remoteVars.compression=DEFAULT_COMPRESSION; - remoteVars.selstruct.selectionMode = CLIP_NONE; + remoteVars.selstruct.selectionMode = CLIP_BOTH; #warning change this defaults values remoteVars.serverType=UDP; diff --git a/x2gokdriveremote.h b/x2gokdriveremote.h index fca85b0..ff57dab 100644 --- a/x2gokdriveremote.h +++ b/x2gokdriveremote.h @@ -469,6 +469,7 @@ struct _remoteHostVars char displayName[256]; char initGeometry[128]; int listenPort; + int udpPort; int jpegQuality, initialJpegQuality; uint32_t framenum; uint32_t framenum_sent; @@ -555,7 +556,7 @@ struct _remoteHostVars pthread_cond_t have_sendqueue_cond; socklen_t addrlen; - struct sockaddr_in address; + struct sockaddr_in address, udp_address; BOOL client_connected; BOOL client_initialized; diff --git a/x2gokdriveselection.c b/x2gokdriveselection.c index 8738c7c..793ed3a 100644 --- a/x2gokdriveselection.c +++ b/x2gokdriveselection.c @@ -767,7 +767,6 @@ void send_notify_to_client(xcb_atom_t selection, xcb_atom_t mime) { //creating the selection chunk with no data, which notifyes client that we have a selection struct OutputChunk* chunk= malloc(sizeof(struct OutputChunk)); -// EPHYR_DBG("send selection notify to client"); memset((void*)chunk,0,sizeof(struct OutputChunk)); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdrive.git