From: Steinar H. Gunderson Date: Fri, 4 Feb 2005 00:18:25 +0000 (+0000) Subject: Handle AUrq/AUcf, and fix a type error. X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=commitdiff_plain;h=b6ea72f2e99bc93a105c5120573762c162985160 Handle AUrq/AUcf, and fix a type error. --- 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; diff --git a/rdpsrv.c b/rdpsrv.c index 577f4a7..138cff2 100644 --- a/rdpsrv.c +++ b/rdpsrv.c @@ -67,7 +67,7 @@ int serve_client() for ( ;; ) { short channel; - STREAM *s; + STREAM s; /* receive ISO packets */ s = mcs_recv(&channel);