+
+#ifdef MACOSX
+#ifdef KRB5
+
+krb5_error_code
+ck_krb5_write_message(krb5_context con, krb5_pointer ptr, krb5_data *data)
+{
+ int fd = *((int *)ptr);
+ long msglen;
+
+ msglen = htonl(data->length);
+ if (net_write(fd,(CHAR *)&msglen,4) != 4) {
+ return(-1);
+ }
+ if ( data->length ) {
+ if (net_write(fd,data->data,data->length) != data->length) {
+ return(-1);
+ }
+ }
+ return(0);
+}
+
+krb5_error_code
+ck_krb5_read_message( krb5_context context,
+ krb5_pointer ptr,
+ krb5_data * data)
+{
+ extern int ttyfd;
+ int fd = *((int *)ptr);
+ long msglen;
+ char *p;
+ int i, rc;
+
+ if (net_read(fd,&msglen,4) < 0)
+ return(-1);
+
+ data->length = ntohl(msglen);
+ if ( data->length ) {
+ data->data = malloc(data->length);
+
+ i = 0;
+ while ( i < data->length ) {
+ if ((rc = net_read(fd,&data->data[i],(data->length - i))) < 0)
+ return(-1);
+ i += rc;
+ }
+ }
+ return(0);
+}
+#endif /* KRB5 */
+#endif /* MACOSX */