Avoid code duplication in mcs_connect/mcs_reconnect.
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1524 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
1f3d7e61bc
commit
775715848c
59
mcs.c
59
mcs.c
@ -372,14 +372,21 @@ mcs_recv(uint16 * channel, uint8 * rdpver)
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Establish a connection up to the MCS layer */
|
|
||||||
RD_BOOL
|
RD_BOOL
|
||||||
mcs_connect(char *server, STREAM mcs_data, char *username)
|
mcs_connect_common(char *server, STREAM mcs_data, char *username, RD_BOOL reconnect)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
if (!iso_connect(server, username))
|
if (reconnect)
|
||||||
return False;
|
{
|
||||||
|
if (!iso_reconnect(server))
|
||||||
|
return False;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!iso_connect(server, username))
|
||||||
|
return False;
|
||||||
|
}
|
||||||
|
|
||||||
mcs_send_connect_initial(mcs_data);
|
mcs_send_connect_initial(mcs_data);
|
||||||
if (!mcs_recv_connect_response(mcs_data))
|
if (!mcs_recv_connect_response(mcs_data))
|
||||||
@ -413,45 +420,19 @@ mcs_connect(char *server, STREAM mcs_data, char *username)
|
|||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Establish a connection up to the MCS layer */
|
||||||
|
RD_BOOL
|
||||||
|
mcs_connect(char *server, STREAM mcs_data, char *username)
|
||||||
|
{
|
||||||
|
return mcs_connect_common(server, mcs_data, username, False);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Establish a connection up to the MCS layer */
|
/* Establish a connection up to the MCS layer */
|
||||||
RD_BOOL
|
RD_BOOL
|
||||||
mcs_reconnect(char *server, STREAM mcs_data)
|
mcs_reconnect(char *server, STREAM mcs_data)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
return mcs_connect_common(server, mcs_data, NULL, False);
|
||||||
|
|
||||||
if (!iso_reconnect(server))
|
|
||||||
return False;
|
|
||||||
|
|
||||||
mcs_send_connect_initial(mcs_data);
|
|
||||||
if (!mcs_recv_connect_response(mcs_data))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
mcs_send_edrq();
|
|
||||||
|
|
||||||
mcs_send_aurq();
|
|
||||||
if (!mcs_recv_aucf(&g_mcs_userid))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
mcs_send_cjrq(g_mcs_userid + MCS_USERCHANNEL_BASE);
|
|
||||||
|
|
||||||
if (!mcs_recv_cjcf())
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
mcs_send_cjrq(MCS_GLOBAL_CHANNEL);
|
|
||||||
if (!mcs_recv_cjcf())
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
for (i = 0; i < g_num_channels; i++)
|
|
||||||
{
|
|
||||||
mcs_send_cjrq(g_channels[i].mcs_id);
|
|
||||||
if (!mcs_recv_cjcf())
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
return True;
|
|
||||||
|
|
||||||
error:
|
|
||||||
iso_disconnect();
|
|
||||||
return False;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Disconnect from the MCS layer */
|
/* Disconnect from the MCS layer */
|
||||||
|
Loading…
Reference in New Issue
Block a user