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:
Love Hörnquist Åstrand
2007-04-19 20:04:19 +00:00
parent 40d8ff7afa
commit 9d0c063d77
4 changed files with 24 additions and 32 deletions

View File

@@ -779,10 +779,8 @@ suspicious_address (int sock, struct sockaddr *addr)
* libkrb5 either. * libkrb5 either.
*/ */
#ifndef KRB4
int 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; int i;
unsigned char *from = (unsigned char *)f; unsigned char *from = (unsigned char *)f;
@@ -799,7 +797,7 @@ krb_get_int(void *f, uint32_t *to, int size, int lsb)
} }
int 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; int i;
unsigned char *p = (unsigned char *)to; 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; return size;
} }
#endif /* !KRB4 */

View File

@@ -227,7 +227,7 @@ doit_passive (kx_context *kc)
p = msg; p = msg;
*p++ = INIT; *p++ = INIT;
len = strlen(kc->user); 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); memcpy(p, kc->user, len);
p += len; p += len;
*p++ = PASSIVE | (kc->keepalive_flag ? KEEP_ALIVE : 0); *p++ = PASSIVE | (kc->keepalive_flag ? KEEP_ALIVE : 0);
@@ -242,18 +242,18 @@ doit_passive (kx_context *kc)
p = (u_char *)msg; p = (u_char *)msg;
if (*p == ERROR) { if (*p == ERROR) {
p++; 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); errx (1, "%s: %.*s", host, (int)tmp, p);
} else if (*p != ACK) { } else if (*p != ACK) {
errx (1, "%s: strange msg %d", host, *p); errx (1, "%s: strange msg %d", host, *p);
} else } else
p++; p++;
p += krb_get_int (p, &tmp, 4, 0); p += kx_get_int (p, &tmp, 4, 0);
memcpy(display, p, tmp); memcpy(display, p, tmp);
display[tmp] = '\0'; display[tmp] = '\0';
p += tmp; p += tmp;
p += krb_get_int (p, &tmp, 4, 0); p += kx_get_int (p, &tmp, 4, 0);
memcpy(xauthfile, p, tmp); memcpy(xauthfile, p, tmp);
xauthfile[tmp] = '\0'; xauthfile[tmp] = '\0';
p += tmp; p += tmp;
@@ -271,13 +271,13 @@ doit_passive (kx_context *kc)
p = (u_char *)msg; p = (u_char *)msg;
if (*p == ERROR) { if (*p == ERROR) {
p++; 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); errx (1, "%s: %.*s", host, (int)tmp, p);
} else if(*p != NEW_CONN) { } else if(*p != NEW_CONN) {
errx (1, "%s: strange msg %d", host, *p); errx (1, "%s: strange msg %d", host, *p);
} else { } else {
p++; p++;
p += krb_get_int (p, &tmp, 4, 0); p += kx_get_int (p, &tmp, 4, 0);
} }
++nchild; ++nchild;
@@ -372,7 +372,7 @@ doit_active (kx_context *kc)
*p++ = INIT; *p++ = INIT;
--rem; --rem;
len = strlen(kc->user); len = strlen(kc->user);
tmp = KRB_PUT_INT (len, p, rem, 4); tmp = kx_put_int (len, p, rem, 4);
if (tmp < 0) if (tmp < 0)
return 1; return 1;
p += tmp; p += tmp;
@@ -387,7 +387,7 @@ doit_active (kx_context *kc)
if (str == NULL || (str = strchr(str, ':')) == NULL) if (str == NULL || (str = strchr(str, ':')) == NULL)
str = ":0"; str = ":0";
len = strlen (str); len = strlen (str);
tmp = KRB_PUT_INT (len, p, rem, 4); tmp = kx_put_int (len, p, rem, 4);
if (tmp < 0) if (tmp < 0)
return 1; return 1;
rem -= tmp; rem -= tmp;
@@ -400,7 +400,7 @@ doit_active (kx_context *kc)
if (str == NULL) if (str == NULL)
str = ""; str = "";
len = strlen (str); len = strlen (str);
tmp = KRB_PUT_INT (len, p, rem, 4); tmp = kx_put_int (len, p, rem, 4);
if (tmp < 0) if (tmp < 0)
return 1; return 1;
p += len; p += len;
@@ -420,7 +420,7 @@ doit_active (kx_context *kc)
uint32_t u32; uint32_t u32;
p++; 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); errx (1, "%s: %.*s", host, (int)u32, p);
} else if (*p != ACK) { } else if (*p != ACK) {
errx (1, "%s: strange msg %d", host, *p); errx (1, "%s: strange msg %d", host, *p);
@@ -481,13 +481,13 @@ doit_active (kx_context *kc)
uint32_t val; uint32_t val;
p++; 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); errx (1, "%s: %.*s", host, (int)val, p);
} else if (*p != NEW_CONN) { } else if (*p != NEW_CONN) {
errx (1, "%s: strange msg %d", host, *p); errx (1, "%s: strange msg %d", host, *p);
} else { } else {
p++; p++;
p += krb_get_int (p, &other_port, 4, 0); p += kx_get_int (p, &other_port, 4, 0);
} }
++nchild; ++nchild;

View File

@@ -256,12 +256,8 @@ __attribute__ ((format (printf, 3, 4)))
#endif #endif
; ;
#ifndef KRB4 int
kx_get_int(void *f, uint32_t *to, int size, int lsb);
int int
krb_get_int(void *f, uint32_t *to, int size, int lsb); kx_put_int(uint32_t from, void *to, size_t rem, int size);
int
krb_put_int(uint32_t from, void *to, size_t rem, int size);
#endif

View File

@@ -75,7 +75,7 @@ fatal (kx_context *kc, int fd, char *format, ...)
vsnprintf ((char *)p + 4, sizeof(msg) - 5, format, args); vsnprintf ((char *)p + 4, sizeof(msg) - 5, format, args);
syslog (LOG_ERR, "%s", (char *)p + 4); syslog (LOG_ERR, "%s", (char *)p + 4);
len = strlen ((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; p += len;
kx_write (kc, fd, msg, p - msg); kx_write (kc, fd, msg, p - msg);
va_end(args); va_end(args);
@@ -174,7 +174,7 @@ recv_conn (int sock, kx_context *kc,
if (*p != INIT) if (*p != INIT)
fatal(kc, sock, "Bad message"); fatal(kc, sock, "Bad message");
p++; p++;
p += krb_get_int (p, &tmp32, 4, 0); p += kx_get_int (p, &tmp32, 4, 0);
len = min(sizeof(user), tmp32); len = min(sizeof(user), tmp32);
memcpy (user, p, len); memcpy (user, p, len);
p += tmp32; p += tmp32;
@@ -242,12 +242,12 @@ recv_conn (int sock, kx_context *kc,
kc->user, user); kc->user, user);
umask(077); umask(077);
if (!(flags & PASSIVE)) { if (!(flags & PASSIVE)) {
p += krb_get_int (p, &tmp32, 4, 0); p += kx_get_int (p, &tmp32, 4, 0);
len = min(tmp32, display_size); len = min(tmp32, display_size);
memcpy (display, p, len); memcpy (display, p, len);
display[len] = '\0'; display[len] = '\0';
p += tmp32; p += tmp32;
p += krb_get_int (p, &tmp32, 4, 0); p += kx_get_int (p, &tmp32, 4, 0);
len = min(tmp32, xauthfile_size); len = min(tmp32, xauthfile_size);
memcpy (xauthfile, p, len); memcpy (xauthfile, p, len);
xauthfile[len] = '\0'; xauthfile[len] = '\0';
@@ -350,7 +350,7 @@ doit_conn (kx_context *kc,
p = msg; p = msg;
*p++ = NEW_CONN; *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) { if (kx_write (kc, meta_sock, msg, p - msg) < 0) {
syslog (LOG_ERR, "write: %m"); syslog (LOG_ERR, "write: %m");
@@ -468,7 +468,7 @@ doit_passive (kx_context *kc,
--rem; --rem;
len = strlen (display); 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) { if (tmp < 0 || rem < len + 4) {
syslog (LOG_ERR, "doit: buffer too small"); syslog (LOG_ERR, "doit: buffer too small");
cleanup(nsockets, sockets); cleanup(nsockets, sockets);
@@ -482,7 +482,7 @@ doit_passive (kx_context *kc,
rem -= len; rem -= len;
len = strlen (xauthfile); 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) { if (tmp < 0 || rem < len + 4) {
syslog (LOG_ERR, "doit: buffer too small"); syslog (LOG_ERR, "doit: buffer too small");
cleanup(nsockets, sockets); cleanup(nsockets, sockets);