Made it possible to set the client name displayed to the right of the
redirected disks (in Windows explorer) using -r:clientname=<client name>. git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@645 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
c3defe8dd7
commit
fd67245798
@ -79,6 +79,7 @@ BOOL g_rdpsnd = False;
|
||||
|
||||
extern RDPDR_DEVICE g_rdpdr_device[];
|
||||
extern uint32 g_num_devices;
|
||||
extern char * g_rdpdr_clientname;
|
||||
|
||||
#ifdef RDP2VNC
|
||||
extern int rfb_port;
|
||||
@ -130,6 +131,8 @@ usage(char *program)
|
||||
fprintf(stderr,
|
||||
" '-r disk:A=/mnt/floppy': enable redirection of /mnt/floppy to A:\n");
|
||||
fprintf(stderr, " or A=/mnt/floppy,D=/mnt/cdrom'\n");
|
||||
fprintf(stderr, " '-r clientname=<client name>': Set the client name displayed\n");
|
||||
fprintf(stderr, " for redirected disks\n");
|
||||
fprintf(stderr,
|
||||
" '-r lptport:LPT1=/dev/lp0': enable parallel redirection of /dev/lp0 to LPT1\n");
|
||||
fprintf(stderr, " or LPT1=/dev/lp0,LPT2=/dev/lp1\n");
|
||||
@ -493,6 +496,11 @@ main(int argc, char *argv[])
|
||||
{
|
||||
printer_enum_devices(&g_num_devices, optarg + 7);
|
||||
}
|
||||
else if (strncmp("clientname", optarg, 7) == 0)
|
||||
{
|
||||
g_rdpdr_clientname = xmalloc(strlen(optarg+11)+1);
|
||||
strcpy(g_rdpdr_clientname, optarg + 11);
|
||||
}
|
||||
else
|
||||
{
|
||||
warning("Unknown -r argument\n\n\tPossible arguments are: comport, disk, lptport, printer, sound\n");
|
||||
|
8
rdpdr.c
8
rdpdr.c
@ -39,6 +39,7 @@ uint32 g_num_devices;
|
||||
|
||||
/* Table with information about rdpdr devices */
|
||||
RDPDR_DEVICE g_rdpdr_device[RDPDR_MAX_DEVICES];
|
||||
char * g_rdpdr_clientname = NULL;
|
||||
|
||||
/* Used to store incoming io request, until they are ready to be completed */
|
||||
/* using a linked list ensures that they are processed in the right order, */
|
||||
@ -168,7 +169,10 @@ void
|
||||
rdpdr_send_name(void)
|
||||
{
|
||||
uint8 magic[4] = "rDNC";
|
||||
uint32 hostlen = (strlen(hostname) + 1) * 2;
|
||||
if (NULL == g_rdpdr_clientname) {
|
||||
g_rdpdr_clientname = hostname;
|
||||
}
|
||||
uint32 hostlen = (strlen(g_rdpdr_clientname) + 1) * 2;
|
||||
STREAM s;
|
||||
|
||||
s = channel_init(rdpdr_channel, 16 + hostlen);
|
||||
@ -177,7 +181,7 @@ rdpdr_send_name(void)
|
||||
out_uint16_le(s, 0x72);
|
||||
out_uint32(s, 0);
|
||||
out_uint32_le(s, hostlen);
|
||||
rdp_out_unistr(s, hostname, hostlen - 2);
|
||||
rdp_out_unistr(s, g_rdpdr_clientname, hostlen - 2);
|
||||
s_mark_end(s);
|
||||
channel_send(s, rdpdr_channel);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user