From 3c0765bd37188c5e5830c9cb3063d2b40cfa8a39 Mon Sep 17 00:00:00 2001 From: Chris Provenzano Date: Mon, 1 May 1995 20:47:18 +0000 Subject: * sim_server.c (main()): Changes to auth_context to better support full addresses, for mk_safe() and friends. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5674 dc483132-0cff-0310-8789-dd5450dbe970 --- src/appl/simple/server/sim_server.c | 46 +++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 25 deletions(-) (limited to 'src/appl/simple/server/sim_server.c') diff --git a/src/appl/simple/server/sim_server.c b/src/appl/simple/server/sim_server.c index b0aff669b..974895555 100644 --- a/src/appl/simple/server/sim_server.c +++ b/src/appl/simple/server/sim_server.c @@ -64,10 +64,10 @@ char *argv[]; krb5_error_code retval; krb5_data packet, message; unsigned char pktbuf[BUFSIZ]; - krb5_address foreign_addr, *portforeign_addr; krb5_principal sprinc; krb5_context context; krb5_auth_context *auth_context = NULL; + krb5_address addr; krb5_ticket *ticket = NULL; if (argc != 2) { @@ -124,10 +124,9 @@ char *argv[]; /* GET KRB_AP_REQ MESSAGE */ /* use "recvfrom" so we know client's address */ - i = sizeof(c_sock); - i = recvfrom(sock, (char *)pktbuf, sizeof(pktbuf), flags, - (struct sockaddr *)&c_sock, &i); - if (i < 0) { + i = sizeof(struct sockaddr_in); + if ((i = recvfrom(sock, (char *)pktbuf, sizeof(pktbuf), flags, + (struct sockaddr *)&c_sock, &i)) < 0) { perror("receiving datagram"); exit(1); } @@ -150,30 +149,28 @@ char *argv[]; free(cp); /* Set foreign_addr for rd_safe() and rd_priv() */ - foreign_addr.contents = (krb5_octet *)&c_sock.sin_addr; - foreign_addr.length = sizeof(c_sock.sin_addr); - foreign_addr.addrtype = c_sock.sin_family; - - if (retval = krb5_gen_portaddr(context, &foreign_addr, - (krb5_pointer) &c_sock.sin_port, - &portforeign_addr)) { - com_err(PROGNAME, retval, "while generating port address"); - exit(1); + addr.addrtype = ADDRTYPE_INET; + addr.length = sizeof(c_sock.sin_addr); + addr.contents = (krb5_octet *)&c_sock.sin_addr; + if (retval = krb5_auth_con_setaddrs(context, auth_context, NULL, &addr)) { + com_err(PROGNAME, retval, "while setting foreign addr"); + exit(1); } - if (retval = krb5_auth_con_setaddrs(context, auth_context, NULL, - portforeign_addr)) { - com_err(PROGNAME, retval, "while setting foreign addr"); + addr.addrtype = ADDRTYPE_IPPORT; + addr.length = sizeof(c_sock.sin_port); + addr.contents = (krb5_octet *)&c_sock.sin_port; + if (retval = krb5_auth_con_setports(context, auth_context, NULL, &addr)) { + com_err(PROGNAME, retval, "while setting foreign port"); exit(1); } /* GET KRB_MK_SAFE MESSAGE */ /* use "recvfrom" so we know client's address */ - i = sizeof(c_sock); - i = recvfrom(sock, (char *)pktbuf, sizeof(pktbuf), flags, - (struct sockaddr *)&c_sock, &i); - if (i < 0) { + i = sizeof(struct sockaddr_in); + if ((i = recvfrom(sock, (char *)pktbuf, sizeof(pktbuf), flags, + (struct sockaddr *)&c_sock, &i)) < 0) { perror("receiving datagram"); exit(1); } @@ -196,10 +193,9 @@ char *argv[]; /* NOW GET ENCRYPTED MESSAGE */ /* use "recvfrom" so we know client's address */ - i = sizeof(c_sock); - i = recvfrom(sock, (char *)pktbuf, sizeof(pktbuf), flags, - (struct sockaddr *)&c_sock, &i); - if (i < 0) { + i = sizeof(struct sockaddr_in); + if ((i = recvfrom(sock, (char *)pktbuf, sizeof(pktbuf), flags, + (struct sockaddr *)&c_sock, &i)) < 0) { perror("receiving datagram"); exit(1); } -- cgit