make encoding function independent of krb4 and krb5, enable removal of krb4
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20452 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -779,10 +779,8 @@ suspicious_address (int sock, struct sockaddr *addr)
 | 
			
		||||
 * libkrb5 either.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef KRB4
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
krb_get_int(void *f, uint32_t *to, int size, int lsb)
 | 
			
		||||
kx_get_int(void *f, uint32_t *to, int size, int lsb)
 | 
			
		||||
{
 | 
			
		||||
    int i;
 | 
			
		||||
    unsigned char *from = (unsigned char *)f;
 | 
			
		||||
@@ -799,7 +797,7 @@ krb_get_int(void *f, uint32_t *to, int size, int lsb)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
krb_put_int(uint32_t from, void *to, size_t rem, int size)
 | 
			
		||||
kx_put_int(uint32_t from, void *to, size_t rem, int size)
 | 
			
		||||
{
 | 
			
		||||
    int i;
 | 
			
		||||
    unsigned char *p = (unsigned char *)to;
 | 
			
		||||
@@ -813,5 +811,3 @@ krb_put_int(uint32_t from, void *to, size_t rem, int size)
 | 
			
		||||
    }
 | 
			
		||||
    return size;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* !KRB4 */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								appl/kx/kx.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								appl/kx/kx.c
									
									
									
									
									
								
							@@ -227,7 +227,7 @@ doit_passive (kx_context *kc)
 | 
			
		||||
     p = msg;
 | 
			
		||||
     *p++ = INIT;
 | 
			
		||||
     len = strlen(kc->user);
 | 
			
		||||
     p += KRB_PUT_INT (len, p, sizeof(msg) - 1, 4);
 | 
			
		||||
     p += kx_put_int (len, p, sizeof(msg) - 1, 4);
 | 
			
		||||
     memcpy(p, kc->user, len);
 | 
			
		||||
     p += len;
 | 
			
		||||
     *p++ = PASSIVE | (kc->keepalive_flag ? KEEP_ALIVE : 0);
 | 
			
		||||
@@ -242,18 +242,18 @@ doit_passive (kx_context *kc)
 | 
			
		||||
     p = (u_char *)msg;
 | 
			
		||||
     if (*p == ERROR) {
 | 
			
		||||
	 p++;
 | 
			
		||||
	 p += krb_get_int (p, &tmp, 4, 0);
 | 
			
		||||
	 p += kx_get_int (p, &tmp, 4, 0);
 | 
			
		||||
	 errx (1, "%s: %.*s", host, (int)tmp, p);
 | 
			
		||||
     } else if (*p != ACK) {
 | 
			
		||||
	 errx (1, "%s: strange msg %d", host, *p);
 | 
			
		||||
     } else
 | 
			
		||||
	 p++;
 | 
			
		||||
     p += krb_get_int (p, &tmp, 4, 0);
 | 
			
		||||
     p += kx_get_int (p, &tmp, 4, 0);
 | 
			
		||||
     memcpy(display, p, tmp);
 | 
			
		||||
     display[tmp] = '\0';
 | 
			
		||||
     p += tmp;
 | 
			
		||||
 | 
			
		||||
     p += krb_get_int (p, &tmp, 4, 0);
 | 
			
		||||
     p += kx_get_int (p, &tmp, 4, 0);
 | 
			
		||||
     memcpy(xauthfile, p, tmp);
 | 
			
		||||
     xauthfile[tmp] = '\0';
 | 
			
		||||
     p += tmp;
 | 
			
		||||
@@ -271,13 +271,13 @@ doit_passive (kx_context *kc)
 | 
			
		||||
	 p = (u_char *)msg;
 | 
			
		||||
	 if (*p == ERROR) {
 | 
			
		||||
	     p++;
 | 
			
		||||
	     p += krb_get_int (p, &tmp, 4, 0);
 | 
			
		||||
	     p += kx_get_int (p, &tmp, 4, 0);
 | 
			
		||||
	     errx (1, "%s: %.*s", host, (int)tmp, p);
 | 
			
		||||
	 } else if(*p != NEW_CONN) {
 | 
			
		||||
	     errx (1, "%s: strange msg %d", host, *p);
 | 
			
		||||
	 } else {
 | 
			
		||||
	     p++;
 | 
			
		||||
	     p += krb_get_int (p, &tmp, 4, 0);
 | 
			
		||||
	     p += kx_get_int (p, &tmp, 4, 0);
 | 
			
		||||
	 }
 | 
			
		||||
	 
 | 
			
		||||
	 ++nchild;
 | 
			
		||||
@@ -372,7 +372,7 @@ doit_active (kx_context *kc)
 | 
			
		||||
    *p++ = INIT;
 | 
			
		||||
    --rem;
 | 
			
		||||
    len = strlen(kc->user);
 | 
			
		||||
    tmp = KRB_PUT_INT (len, p, rem, 4);
 | 
			
		||||
    tmp = kx_put_int (len, p, rem, 4);
 | 
			
		||||
    if (tmp < 0)
 | 
			
		||||
	return 1;
 | 
			
		||||
    p += tmp;
 | 
			
		||||
@@ -387,7 +387,7 @@ doit_active (kx_context *kc)
 | 
			
		||||
    if (str == NULL || (str = strchr(str, ':')) == NULL) 
 | 
			
		||||
	str = ":0";
 | 
			
		||||
    len = strlen (str);
 | 
			
		||||
    tmp = KRB_PUT_INT (len, p, rem, 4);
 | 
			
		||||
    tmp = kx_put_int (len, p, rem, 4);
 | 
			
		||||
    if (tmp < 0)
 | 
			
		||||
	return 1;
 | 
			
		||||
    rem -= tmp;
 | 
			
		||||
@@ -400,7 +400,7 @@ doit_active (kx_context *kc)
 | 
			
		||||
    if (str == NULL)
 | 
			
		||||
	str = "";
 | 
			
		||||
    len = strlen (str);
 | 
			
		||||
    tmp = KRB_PUT_INT (len, p, rem, 4);
 | 
			
		||||
    tmp = kx_put_int (len, p, rem, 4);
 | 
			
		||||
    if (tmp < 0)
 | 
			
		||||
	return 1;
 | 
			
		||||
    p += len;
 | 
			
		||||
@@ -420,7 +420,7 @@ doit_active (kx_context *kc)
 | 
			
		||||
	uint32_t u32;
 | 
			
		||||
 | 
			
		||||
	p++;
 | 
			
		||||
	p += krb_get_int (p, &u32, 4, 0);
 | 
			
		||||
	p += kx_get_int (p, &u32, 4, 0);
 | 
			
		||||
	errx (1, "%s: %.*s", host, (int)u32, p);
 | 
			
		||||
    } else if (*p != ACK) {
 | 
			
		||||
	errx (1, "%s: strange msg %d", host, *p);
 | 
			
		||||
@@ -481,13 +481,13 @@ doit_active (kx_context *kc)
 | 
			
		||||
	    uint32_t val;
 | 
			
		||||
 | 
			
		||||
	    p++;
 | 
			
		||||
	    p += krb_get_int (p, &val, 4, 0);
 | 
			
		||||
	    p += kx_get_int (p, &val, 4, 0);
 | 
			
		||||
	    errx (1, "%s: %.*s", host, (int)val, p);
 | 
			
		||||
	} else if (*p != NEW_CONN) {
 | 
			
		||||
	    errx (1, "%s: strange msg %d", host, *p);
 | 
			
		||||
	} else {
 | 
			
		||||
	    p++;
 | 
			
		||||
	    p += krb_get_int (p, &other_port, 4, 0);
 | 
			
		||||
	    p += kx_get_int (p, &other_port, 4, 0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	++nchild;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								appl/kx/kx.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								appl/kx/kx.h
									
									
									
									
									
								
							@@ -256,12 +256,8 @@ __attribute__ ((format (printf, 3, 4)))
 | 
			
		||||
#endif
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
#ifndef KRB4
 | 
			
		||||
int
 | 
			
		||||
kx_get_int(void *f, uint32_t *to, int size, int lsb);
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
krb_get_int(void *f, uint32_t *to, int size, int lsb);
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
krb_put_int(uint32_t from, void *to, size_t rem, int size);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
kx_put_int(uint32_t from, void *to, size_t rem, int size);
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ fatal (kx_context *kc, int fd, char *format, ...)
 | 
			
		||||
    vsnprintf ((char *)p + 4, sizeof(msg) - 5, format, args);
 | 
			
		||||
    syslog (LOG_ERR, "%s", (char *)p + 4);
 | 
			
		||||
    len = strlen ((char *)p + 4);
 | 
			
		||||
    p += KRB_PUT_INT (len, p, 4, 4);
 | 
			
		||||
    p += kx_put_int (len, p, 4, 4);
 | 
			
		||||
    p += len;
 | 
			
		||||
    kx_write (kc, fd, msg, p - msg);
 | 
			
		||||
    va_end(args);
 | 
			
		||||
@@ -174,7 +174,7 @@ recv_conn (int sock, kx_context *kc,
 | 
			
		||||
     if (*p != INIT)
 | 
			
		||||
	 fatal(kc, sock, "Bad message");
 | 
			
		||||
     p++;
 | 
			
		||||
     p += krb_get_int (p, &tmp32, 4, 0);
 | 
			
		||||
     p += kx_get_int (p, &tmp32, 4, 0);
 | 
			
		||||
     len = min(sizeof(user), tmp32);
 | 
			
		||||
     memcpy (user, p, len);
 | 
			
		||||
     p += tmp32;
 | 
			
		||||
@@ -242,12 +242,12 @@ recv_conn (int sock, kx_context *kc,
 | 
			
		||||
	     kc->user, user);
 | 
			
		||||
     umask(077);
 | 
			
		||||
     if (!(flags & PASSIVE)) {
 | 
			
		||||
	 p += krb_get_int (p, &tmp32, 4, 0);
 | 
			
		||||
	 p += kx_get_int (p, &tmp32, 4, 0);
 | 
			
		||||
	 len = min(tmp32, display_size);
 | 
			
		||||
	 memcpy (display, p, len);
 | 
			
		||||
	 display[len] = '\0';
 | 
			
		||||
	 p += tmp32;
 | 
			
		||||
	 p += krb_get_int (p, &tmp32, 4, 0);
 | 
			
		||||
	 p += kx_get_int (p, &tmp32, 4, 0);
 | 
			
		||||
	 len = min(tmp32, xauthfile_size);
 | 
			
		||||
	 memcpy (xauthfile, p, len);
 | 
			
		||||
	 xauthfile[len] = '\0';
 | 
			
		||||
@@ -350,7 +350,7 @@ doit_conn (kx_context *kc,
 | 
			
		||||
 | 
			
		||||
    p = msg;
 | 
			
		||||
    *p++ = NEW_CONN;
 | 
			
		||||
    p += KRB_PUT_INT (ntohs(port), p, 4, 4);
 | 
			
		||||
    p += kx_put_int (ntohs(port), p, 4, 4);
 | 
			
		||||
 | 
			
		||||
    if (kx_write (kc, meta_sock, msg, p - msg) < 0) {
 | 
			
		||||
	syslog (LOG_ERR, "write: %m");
 | 
			
		||||
@@ -468,7 +468,7 @@ doit_passive (kx_context *kc,
 | 
			
		||||
    --rem;
 | 
			
		||||
 | 
			
		||||
    len = strlen (display);
 | 
			
		||||
    tmp = KRB_PUT_INT (len, p, rem, 4);
 | 
			
		||||
    tmp = kx_put_int (len, p, rem, 4);
 | 
			
		||||
    if (tmp < 0 || rem < len + 4) {
 | 
			
		||||
	syslog (LOG_ERR, "doit: buffer too small");
 | 
			
		||||
	cleanup(nsockets, sockets);
 | 
			
		||||
@@ -482,7 +482,7 @@ doit_passive (kx_context *kc,
 | 
			
		||||
    rem -= len;
 | 
			
		||||
 | 
			
		||||
    len = strlen (xauthfile);
 | 
			
		||||
    tmp = KRB_PUT_INT (len, p, rem, 4);
 | 
			
		||||
    tmp = kx_put_int (len, p, rem, 4);
 | 
			
		||||
    if (tmp < 0 || rem < len + 4) {
 | 
			
		||||
	syslog (LOG_ERR, "doit: buffer too small");
 | 
			
		||||
	cleanup(nsockets, sockets);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user