Changeset 99987 in vbox for trunk/src/VBox/Additions
- Timestamp:
- May 26, 2023 7:28:01 AM (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/x11/VBoxClient/clipboard-x11.cpp
r99590 r99987 220 220 } 221 221 222 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS_HTTP 223 /** @copydoc SHCLTRANSFERCALLBACKTABLE::pfnOnStart */ 224 static DECLCALLBACK(int) vboxClipboardOnTransferStartCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx) 225 { 226 PSHCLCONTEXT pCtx = (PSHCLCONTEXT)pCbCtx->pvUser; 227 AssertPtr(pCtx); 228 229 PSHCLTRANSFER pTransfer = pCbCtx->pTransfer; 230 AssertPtr(pTransfer); 231 232 /* We only need to start the HTTP server (and register the transfer to it) when we actually receive data from the host. */ 233 if (ShClTransferGetDir(pTransfer) == SHCLTRANSFERDIR_FROM_REMOTE) 234 return ShClHttpTransferRegisterAndMaybeStart(&pCtx->X11.HttpCtx, pTransfer); 235 236 return VINF_SUCCESS; 237 } 238 239 /** @copydoc SHCLTRANSFERCALLBACKTABLE::pfnOnCompleted */ 240 static DECLCALLBACK(void) vboxClipboardOnTransferCompletedCallback(PSHCLTRANSFERCALLBACKCTX pCbCtx, int rc) 241 { 242 RT_NOREF(rc); 243 244 PSHCLCONTEXT pCtx = (PSHCLCONTEXT)pCbCtx->pvUser; 245 AssertPtr(pCtx); 246 247 PSHCLTRANSFER pTransfer = pCbCtx->pTransfer; 248 AssertPtr(pTransfer); 249 250 /* See comment in vboxClipboardOnTransferInitCallback(). */ 251 if (ShClTransferGetDir(pTransfer) == SHCLTRANSFERDIR_FROM_REMOTE) 252 ShClHttpTransferUnregisterAndMaybeStop(&pCtx->X11.HttpCtx, pTransfer); 253 } 254 255 /** @copydoc SHCLTRANSFERCALLBACKTABLE::pfnOnError */ 256 static DECLCALLBACK(void) vboxClipboardOnTransferErrorCallback(PSHCLTRANSFERCALLBACKCTX pCtx, int rc) 257 { 258 return vboxClipboardOnTransferCompletedCallback(pCtx, rc); 259 } 260 #endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS_HTTP */ 261 222 262 /** 223 263 * The main loop of the X11-specifc Shared Clipboard code. … … 232 272 233 273 bool fShutdown = false; 274 275 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS 276 # ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS_HTTP 277 /* 278 * Set callbacks. 279 * Those will be registered within VbglR3 when a new transfer gets initialized. 280 * 281 * Used for starting / stopping the HTTP server. 282 */ 283 RT_ZERO(pCtx->CmdCtx.Transfers.Callbacks); 284 285 pCtx->CmdCtx.Transfers.Callbacks.pvUser = pCtx; /* Assign context as user-provided callback data. */ 286 pCtx->CmdCtx.Transfers.Callbacks.cbUser = sizeof(SHCLCONTEXT); 287 288 pCtx->CmdCtx.Transfers.Callbacks.pfnOnStart = vboxClipboardOnTransferStartCallback; 289 pCtx->CmdCtx.Transfers.Callbacks.pfnOnCompleted = vboxClipboardOnTransferCompletedCallback; 290 pCtx->CmdCtx.Transfers.Callbacks.pfnOnError = vboxClipboardOnTransferErrorCallback; 291 # endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS_HTTP */ 292 #endif /* VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS */ 234 293 235 294 /* The thread waits for incoming messages from the host. */
Note:
See TracChangeset
for help on using the changeset viewer.