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