924 |
|
|
925 |
in_uint16_le(s, update_type); |
in_uint16_le(s, update_type); |
926 |
|
|
927 |
|
ui_begin_update(); |
928 |
switch (update_type) |
switch (update_type) |
929 |
{ |
{ |
930 |
case RDP_UPDATE_ORDERS: |
case RDP_UPDATE_ORDERS: |
948 |
default: |
default: |
949 |
unimpl("update %d\n", update_type); |
unimpl("update %d\n", update_type); |
950 |
} |
} |
951 |
|
ui_end_update(); |
952 |
} |
} |
953 |
|
|
954 |
/* Process a disconnect PDU */ |
/* Process a disconnect PDU */ |
1079 |
return; |
return; |
1080 |
} |
} |
1081 |
|
|
1082 |
|
/* used in uiports, processes the rdp packets waiting */ |
1083 |
|
BOOL |
1084 |
|
rdp_loop(BOOL * deactivated, uint32 * ext_disc_reason) |
1085 |
|
{ |
1086 |
|
uint8 type; |
1087 |
|
BOOL disc = False; /* True when a disconnect PDU was received */ |
1088 |
|
BOOL cont = True; |
1089 |
|
STREAM s; |
1090 |
|
|
1091 |
|
while (cont) |
1092 |
|
{ |
1093 |
|
s = rdp_recv(&type); |
1094 |
|
if (s == NULL) |
1095 |
|
return False; |
1096 |
|
switch (type) |
1097 |
|
{ |
1098 |
|
case RDP_PDU_DEMAND_ACTIVE: |
1099 |
|
process_demand_active(s); |
1100 |
|
*deactivated = False; |
1101 |
|
break; |
1102 |
|
case RDP_PDU_DEACTIVATE: |
1103 |
|
DEBUG(("RDP_PDU_DEACTIVATE\n")); |
1104 |
|
*deactivated = True; |
1105 |
|
break; |
1106 |
|
case RDP_PDU_DATA: |
1107 |
|
disc = process_data_pdu(s, ext_disc_reason); |
1108 |
|
break; |
1109 |
|
case 0: |
1110 |
|
break; |
1111 |
|
default: |
1112 |
|
unimpl("PDU %d\n", type); |
1113 |
|
} |
1114 |
|
if (disc) |
1115 |
|
return False; |
1116 |
|
cont = g_next_packet < s->end; |
1117 |
|
} |
1118 |
|
return True; |
1119 |
|
} |
1120 |
|
|
1121 |
/* Establish a connection up to the RDP layer */ |
/* Establish a connection up to the RDP layer */ |
1122 |
BOOL |
BOOL |
1123 |
rdp_connect(char *server, uint32 flags, char *domain, char *password, |
rdp_connect(char *server, uint32 flags, char *domain, char *password, |