X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mcs.c;h=460e0d4b6610957900c42c8dc2514807b5265583;hb=b6ea72f2e99bc93a105c5120573762c162985160;hp=cee23643e00473371fc8d4be9a307e7dc7e8b785;hpb=908d0bab155aee5757f902486dd1bbba859637f4;p=rdpsrv diff --git a/mcs.c b/mcs.c index cee2364..460e0d4 100644 --- a/mcs.c +++ b/mcs.c @@ -215,35 +215,20 @@ mcs_send_aurq(void) iso_send(s); } -/* Expect a AUcf message (ASN.1 PER) */ -static BOOL -mcs_recv_aucf(uint16 * mcs_userid) +/* Send a AUcf message (ASN.1 PER) */ +static void +mcs_send_aucf(uint16 mcs_userid) { - uint8 opcode, result; STREAM s; - s = iso_recv(); - if (s == NULL) - return False; - - in_uint8(s, opcode); - if ((opcode >> 2) != MCS_AUCF) - { - error("expected AUcf, got %d\n", opcode); - return False; - } - - in_uint8(s, result); - if (result != 0) - { - error("AUrq: %d\n", result); - return False; - } - - if (opcode & 2) - in_uint16_be(s, *mcs_userid); + s = iso_init(5); - return s_check_end(s); + out_uint8(s, (MCS_AUCF << 2) | 2); // | 2 = send user ID + out_uint8(s, 0); // success + out_uint16_be(s, 0); + + s_mark_end(s); + iso_send(s); } /* Send a CJrq message (ASN.1 PER) */ @@ -364,6 +349,11 @@ mcs_recv(uint16 * channel) // Erect Domain (ignore) printf("Received EDrq\n"); return NULL; + case MCS_AURQ: + // Attach User Request, respond with AUcf (Attach User Confirm) + printf("Received AUrq, sending AUcf\n"); + mcs_send_aucf(0); + return NULL; default: error("expected data, got %d\n", opcode); return NULL;