* sim_server.c (main()): Changes to auth_context to better
authorChris Provenzano <proven@mit.edu>
Mon, 1 May 1995 20:47:18 +0000 (20:47 +0000)
committerChris Provenzano <proven@mit.edu>
Mon, 1 May 1995 20:47:18 +0000 (20:47 +0000)
                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/ChangeLog
src/appl/simple/server/sim_server.c

index a57c3a5200a9f8a9434223cd5378646ebf0fcc18..82a5e340f34cf97b4f59c33ee398e5ad223e3ac3 100644 (file)
@@ -1,3 +1,9 @@
+
+Mon May 01 15:56:32 1995  Chris Provenzano (proven@mit.edu)
+
+        * sim_server.c (main()): Changes to auth_context to better
+                support full addresses, for mk_safe() and friends.
+
 Mon Mar 27 07:56:26 1995 Chris Provenzano (proven@mit.edu)
 
         * sim_server.c: Use new calling convention for krb5_rd_req(),
index b0aff669b40f72f63db926bc6553ab38f8139ec7..974895555730d5d6dccba5041c0b59adba12131f 100644 (file)
@@ -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);
     }