Updated rcache's makefile.in. Small change to confirm I'm back in a
authorKeith Vetter <keithv@fusion.com>
Wed, 1 Mar 1995 23:25:24 +0000 (23:25 +0000)
committerKeith Vetter <keithv@fusion.com>
Wed, 1 Mar 1995 23:25:24 +0000 (23:25 +0000)
sane configuration.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5049 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/rcache/ChangeLog
src/lib/krb5/rcache/Makefile.in
src/lib/krb5/rcache/rc_base.c
src/lib/krb5/rcache/rc_conv.c
src/lib/krb5/rcache/rc_dfl.c
src/lib/krb5/rcache/rc_dfl.h
src/lib/krb5/rcache/rc_io.c
src/lib/krb5/rcache/rc_io.h

index e5ef39572c9fbf55dd6a556e912ab365fb8ea721..e831b7c4b391d350412257299647f5a618d31781 100644 (file)
@@ -1,3 +1,14 @@
+Wed Mar 1 12:03:30 1995 Keith Vetter (keithv@fusion.com)
+
+       * *.c, *.h Added windows INTERFACE keyword
+       * Makefile.in: made to work on the PC.
+        * rc_dfl.c: Some int/long changes for the PC
+        * rc_io.c: hack to get Microsoft C in std-c mode to allow
+           low-level i/o routines. Probably not a permanent solution
+           but keep until we decide on a better method.
+        * rc_io.h: added 2 missing prototypes
+        * rc_dfl.h: added 2 missing prototypes
+
 Tue Feb 28 01:03:34 1995  John Gilmore  (gnu at toad.com)
 
        * *.c:  Avoid <krb5/...> includes.
index a80e4a148d7f3450ab1bebb0efeaf40017f7f87b..81d3660bcde2b3de8eed3ada8bd1eeff92e2d466 100644 (file)
@@ -1,14 +1,16 @@
 CFLAGS = $(CCOPTS) $(DEFS)
 LDFLAGS = -g
 
-all:: $(OBJS)
+##DOSBUILDTOP = ..\..\..
+##DOSLIBNAME=..\libkrb5.lib
+##DOS!include $(BUILDTOP)\config\windows.in
 
 OBJS=  \
-       rc_base.o       \
-       rc_dfl.o        \
-       rc_io.o         \
-       rcdef.o         \
-       rc_conv.o
+       rc_base.$(OBJEXT)       \
+       rc_dfl.$(OBJEXT)        \
+       rc_io.$(OBJEXT)         \
+       rcdef.$(OBJEXT)         \
+       rc_conv.$(OBJEXT)
 
 SRCS=  \
        $(srcdir)/rc_base.c     \
@@ -16,3 +18,5 @@ SRCS= \
        $(srcdir)/rc_io.c       \
        $(srcdir)/rcdef.c       \
        $(srcdir)/rc_conv.c
+
+all:: $(OBJS)
index e0ff8d0c42513f135d844500c45b1fd2901cd583..f7f9e44de5b376653dc94863bb1920d6cfa76750 100644 (file)
@@ -30,7 +30,7 @@ static struct krb5_rc_typelist *typehead = &krb5_rc_typelist_dfl;
 semaphore ex_typelist = 1;
 #endif
 
-krb5_error_code krb5_rc_register_type(context, ops)
+krb5_error_code INTERFACE krb5_rc_register_type(context, ops)
     krb5_context context;
     krb5_rc_ops *ops;
 {
@@ -59,7 +59,7 @@ krb5_error_code krb5_rc_register_type(context, ops)
  return 0;
 }
 
-krb5_error_code krb5_rc_resolve_type(context, id, type)
+krb5_error_code INTERFACE krb5_rc_resolve_type(context, id, type)
     krb5_context context;
     krb5_rcache *id;
     char *type;
@@ -80,14 +80,14 @@ krb5_error_code krb5_rc_resolve_type(context, id, type)
  return 0;
 }
 
-char *krb5_rc_get_type(context, id)
+char * INTERFACE krb5_rc_get_type(context, id)
     krb5_context context;
     krb5_rcache id;
 {
  return id->ops->type;
 }
 
-char *krb5_rc_default_type(context)
+char * INTERFACE krb5_rc_default_type(context)
     krb5_context context;
 {
  char *s;
@@ -97,7 +97,7 @@ char *krb5_rc_default_type(context)
    return "dfl";
 }
 
-char *krb5_rc_default_name(context)
+char * INTERFACE krb5_rc_default_name(context)
     krb5_context context;
 {
  char *s;
@@ -107,7 +107,7 @@ char *krb5_rc_default_name(context)
    return (char *) 0;
 }
 
-krb5_error_code
+krb5_error_code INTERFACE
 krb5_rc_default(context, id)
     krb5_context context;
     krb5_rcache *id;
@@ -129,7 +129,7 @@ krb5_rc_default(context, id)
 }
 
 
-krb5_error_code krb5_rc_resolve_full(context, id, string_name)
+krb5_error_code INTERFACE krb5_rc_resolve_full(context, id, string_name)
     krb5_context context;
     krb5_rcache *id;
     char *string_name;
index 92cf77f8db0b130cb6e41b50ea1259d50919ed8f..2ba4fca9c43af6c11c0d5609f2317b9113224d98 100644 (file)
@@ -21,7 +21,7 @@ Local stuff:
   given auth, take important information and make rep; return -1 if failed
 */
 
-krb5_error_code
+krb5_error_code INTERFACE
 krb5_auth_to_rep(context, auth, rep)
     krb5_context context;
     krb5_tkt_authent *auth;
index d631d91f247ab6530b89f38598759ead5ca51c11..a6476109be60fa5303d8362dcee15bbb82aebd75 100644 (file)
@@ -14,6 +14,7 @@
 #include "rc_base.h"
 #include "rc_dfl.h"
 #include "rc_io.h"
+#include <k5-int.h>
 
 /*
 If NOIOSTUFF is defined at compile time, dfl rcaches will be per-process.
@@ -59,8 +60,8 @@ static int hash(rep, hsize)
 krb5_donot_replay *rep;
 int hsize;
 {
- return (((rep->cusec + rep->ctime + *rep->server + *rep->client)
-        % hsize) + hsize) % hsize;
+ return (int) ((((rep->cusec + rep->ctime + *rep->server + *rep->client)
+        % hsize) + hsize) % hsize);
  /* We take this opportunity to once again complain about C's idiotic %. */
 }
 
@@ -164,14 +165,14 @@ static int store(context, id, rep)
  return CMP_HOHUM;
 }
 
-char *krb5_rc_dfl_get_name(context, id)
+char * INTERFACE krb5_rc_dfl_get_name(context, id)
     krb5_context context;
     krb5_rcache id;
 {
  return ((struct dfl_data *) (id->data))->name;
 }
 
-krb5_error_code krb5_rc_dfl_get_span(context, id, lifespan)
+krb5_error_code INTERFACE krb5_rc_dfl_get_span(context, id, lifespan)
     krb5_context context;
     krb5_rcache id;
     krb5_deltat *lifespan;
@@ -180,7 +181,7 @@ krb5_error_code krb5_rc_dfl_get_span(context, id, lifespan)
  return 0;
 }
 
-krb5_error_code krb5_rc_dfl_init(context, id, lifespan)
+krb5_error_code INTERFACE krb5_rc_dfl_init(context, id, lifespan)
     krb5_context context;
 krb5_rcache id;
 krb5_deltat lifespan;
@@ -199,7 +200,7 @@ krb5_deltat lifespan;
     return 0;
 }
 
-krb5_error_code krb5_rc_dfl_close_no_free(context, id)
+krb5_error_code INTERFACE krb5_rc_dfl_close_no_free(context, id)
     krb5_context context;
     krb5_rcache id;
 {
@@ -224,7 +225,7 @@ krb5_error_code krb5_rc_dfl_close_no_free(context, id)
  return 0;
 }
 
-krb5_error_code krb5_rc_dfl_close(context, id)
+krb5_error_code INTERFACE krb5_rc_dfl_close(context, id)
     krb5_context context;
     krb5_rcache id;
 {
@@ -233,7 +234,7 @@ krb5_error_code krb5_rc_dfl_close(context, id)
     return 0;
 }
 
-krb5_error_code krb5_rc_dfl_destroy(context, id)
+krb5_error_code INTERFACE krb5_rc_dfl_destroy(context, id)
     krb5_context context;
 krb5_rcache id;
 {
@@ -244,7 +245,7 @@ krb5_rcache id;
  return krb5_rc_dfl_close(context, id);
 }
 
-krb5_error_code krb5_rc_dfl_resolve(context, id, name)
+krb5_error_code INTERFACE krb5_rc_dfl_resolve(context, id, name)
     krb5_context context;
     krb5_rcache id;
     char *name;
@@ -291,7 +292,7 @@ cleanup:
     return retval;
 }
 
-void krb5_rc_free_entry (context, rep)
+void INTERFACE krb5_rc_free_entry (context, rep)
     krb5_context context;
     krb5_donot_replay **rep;
 {
@@ -311,7 +312,7 @@ void krb5_rc_free_entry (context, rep)
     }
 }
 
-krb5_error_code krb5_rc_io_fetch(context, t, rep, maxlen) 
+static krb5_error_code krb5_rc_io_fetch(context, t, rep, maxlen) 
     krb5_context context;
     struct dfl_data *t;
     krb5_donot_replay *rep;
@@ -376,7 +377,7 @@ errout:
     
 
 
-krb5_error_code krb5_rc_dfl_recover(context, id)
+krb5_error_code INTERFACE krb5_rc_dfl_recover(context, id)
     krb5_context context;
 krb5_rcache id;
 {
@@ -387,7 +388,7 @@ krb5_rcache id;
     struct dfl_data *t = (struct dfl_data *)id->data;
     krb5_donot_replay *rep;
     krb5_error_code retval;
-    int max_size;
+    long max_size;
 
     if (retval = krb5_rc_io_open(context, &t->d,t->name))
        return retval;
@@ -415,7 +416,7 @@ krb5_rcache id;
        rep->client = NULL;
        rep->server = NULL;
        
-       retval = krb5_rc_io_fetch (context, t, rep, max_size);
+       retval = krb5_rc_io_fetch (context, t, rep, (int) max_size);
 
        if (retval == KRB5_RC_IO_EOF)
            break;
@@ -455,7 +456,8 @@ io_fail:
 #endif
 }
 
-krb5_error_code krb5_rc_io_store (context, t, rep)
+static krb5_error_code
+krb5_rc_io_store (context, t, rep)
     krb5_context context;
     struct dfl_data *t;
     krb5_donot_replay *rep;
@@ -484,7 +486,7 @@ krb5_error_code krb5_rc_io_store (context, t, rep)
     return ret;
 }
 
-krb5_error_code krb5_rc_dfl_store(context, id, rep)
+krb5_error_code INTERFACE krb5_rc_dfl_store(context, id, rep)
     krb5_context context;
 krb5_rcache id;
 krb5_donot_replay *rep;
@@ -520,7 +522,7 @@ krb5_donot_replay *rep;
  return 0;
 }
 
-krb5_error_code krb5_rc_dfl_expunge(context, id)
+krb5_error_code INTERFACE krb5_rc_dfl_expunge(context, id)
     krb5_context context;
 krb5_rcache id;
 {
index 76e0e58cdd3800a2465377c0cfe53a877184f858..0245ed06bf6891861fd4b1fc7ff433a079a627f8 100644 (file)
 
 extern krb5_rc_ops krb5_rc_dfl_ops; /* initialized to the following */
 
-krb5_error_code krb5_rc_dfl_init 
+krb5_error_code INTERFACE krb5_rc_dfl_init 
        PROTOTYPE((krb5_context,
                   krb5_rcache,
                   krb5_deltat));
-krb5_error_code krb5_rc_dfl_recover 
+krb5_error_code INTERFACE krb5_rc_dfl_recover 
        PROTOTYPE((krb5_context,
                   krb5_rcache)); 
-krb5_error_code krb5_rc_dfl_destroy 
+krb5_error_code INTERFACE krb5_rc_dfl_destroy 
        PROTOTYPE((krb5_context,
                   krb5_rcache));
-krb5_error_code krb5_rc_dfl_close 
+krb5_error_code INTERFACE krb5_rc_dfl_close 
        PROTOTYPE((krb5_context,
                   krb5_rcache));
-krb5_error_code krb5_rc_dfl_store 
+krb5_error_code INTERFACE krb5_rc_dfl_store 
        PROTOTYPE((krb5_context,
                   krb5_rcache,
                   krb5_donot_replay *));
-krb5_error_code krb5_rc_dfl_expunge 
+krb5_error_code INTERFACE krb5_rc_dfl_expunge 
        PROTOTYPE((krb5_context,
                   krb5_rcache));
-krb5_error_code krb5_rc_dfl_get_span 
+krb5_error_code INTERFACE krb5_rc_dfl_get_span 
        PROTOTYPE((krb5_context,
                   krb5_rcache,
                   krb5_deltat *));
-char *krb5_rc_dfl_get_name 
+char * INTERFACE krb5_rc_dfl_get_name 
        PROTOTYPE((krb5_context,
                   krb5_rcache));
-krb5_error_code krb5_rc_dfl_resolve 
+krb5_error_code INTERFACE krb5_rc_dfl_resolve 
        PROTOTYPE((krb5_context,
                   krb5_rcache,
                   char *));
-
+krb5_error_code INTERFACE krb5_rc_dfl_close_no_free
+       PROTOTYPE((krb5_context,
+                  krb5_rcache));
+void INTERFACE krb5_rc_free_entry 
+       PROTOTYPE((krb5_context,
+                  krb5_donot_replay **));
 #endif
+
index c6814e318522bd7b7d01581ca80f7b41a95a5f0a..99ac03261247879032b73aeb11bfc7239c3c2f73 100644 (file)
 
 
 #define KRB5_RC_VNO    0x0501          /* krb5, rcache v 1 */
+#define NEED_WINSOCK_H
 
 #include <stdio.h> /* for P_tmpdir */
-
+#include <krb5.h>
 #include "rc_base.h"
 #include "rc_dfl.h"
 #include "rc_io.h"
 
+/* Ugly. Microsoft, in stdc mode, doesn't support the low-level i/o
+ * routines directly. Rather, they only export the _<function> version.
+ * The following defines works around this problem. Perhaps this should
+ * go into config.h but leave it here for now until we see how prevalent
+ * this problem is.
+ */
+#ifdef MSDOS_FILESYSTEM
+#include <fcntl.h>
+#include <io.h>
+#include <process.h>
+#define O_RDONLY        _O_RDONLY
+#define O_WRONLY        _O_WRONLY
+#define O_RDWR          _O_RDWR
+#define O_APPEND        _O_APPEND
+#define O_CREAT         _O_CREAT
+#define O_TRUNC         _O_TRUNC
+#define O_EXCL          _O_EXCL
+#define O_TEXT          _O_TEXT
+#define O_BINARY        _O_BINARY
+#define O_NOINHERIT     _O_NOINHERIT
+#define stat            _stat
+#define getpid          _getpid
+#define unlink          _unlink
+#define lseek           _lseek
+#define write           _write
+#define open            _open
+#define close           _close
+#define read            _read
+#define fstat           _fstat
+#endif
+
+#ifndef O_BINARY
+#define O_BINARY    0
+#endif
+
 #ifdef KRB5_USE_INET
+#ifndef _WINSOCKAPI_
 #include <netinet/in.h>
+#endif
 #else
  #error find some way to use net-byte-order file version numbers.
 #endif
 
+#ifndef HAVE_ERRNO
 extern int errno; /* this should be in errno.h, but isn't on some systems */
+#endif
 
 #define FREE(x) ((void) free((char *) (x)))
 #define UNIQUE getpid() /* hopefully unique number */
@@ -55,7 +95,7 @@ static void getdir()
   }
 }
 
-krb5_error_code krb5_rc_io_creat (context, d, fn)
+krb5_error_code INTERFACE krb5_rc_io_creat (context, d, fn)
     krb5_context context;
     krb5_rc_iostuff *d;
     char **fn;
@@ -72,7 +112,7 @@ krb5_error_code krb5_rc_io_creat (context, d, fn)
    (void) strcpy(d->fn,dir);
    (void) strcat(d->fn,"/");
    (void) strcat(d->fn,*fn);
-   d->fd = open(d->fn,O_WRONLY | O_CREAT | O_TRUNC | O_EXCL,0600);
+   d->fd = open(d->fn,O_WRONLY | O_CREAT | O_TRUNC | O_EXCL | O_BINARY,0600);
   }
  else
   {
@@ -86,7 +126,7 @@ krb5_error_code krb5_rc_io_creat (context, d, fn)
    (void) sprintf(d->fn,"%s/krb5_RC%d",dir,UNIQUE);
    c = d->fn + strlen(d->fn);
    (void) strcpy(c,"aaa");
-   while ((d->fd = open(d->fn,O_WRONLY|O_CREAT|O_TRUNC|O_EXCL,0600)) == -1)
+   while ((d->fd = open(d->fn,O_WRONLY|O_CREAT|O_TRUNC|O_EXCL|O_BINARY,0600)) == -1)
     {
      if ((c[2]++) == 'z')
       {
@@ -139,14 +179,16 @@ krb5_error_code krb5_rc_io_creat (context, d, fn)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_open (context, d, fn)
+krb5_error_code INTERFACE krb5_rc_io_open (context, d, fn)
     krb5_context context;
     krb5_rc_iostuff *d;
     char *fn;
 {
  krb5_int16 rc_vno;
  krb5_error_code retval;
+#ifndef NO_USERID
  struct stat statb;
+#endif
 
  GETDIR;
  if (!(d->fn = malloc(strlen(fn) + dirlen + 1)))
@@ -154,6 +196,10 @@ krb5_error_code krb5_rc_io_open (context, d, fn)
  (void) strcpy(d->fn,dir);
  (void) strcat(d->fn,"/");
  (void) strcat(d->fn,fn);
+
+#ifdef NO_USERID
+ d->fd = open(d->fn,O_RDWR | O_BINARY,0600);
+#else
  if ((d->fd = stat(d->fn, &statb)) != -1) {
      uid_t me;
 
@@ -164,8 +210,9 @@ krb5_error_code krb5_rc_io_open (context, d, fn)
         FREE(d->fn);
         return KRB5_RC_IO_PERM;
      }
-     d->fd = open(d->fn,O_RDWR,0600);
+     d->fd = open(d->fn,O_RDWR | O_BINARY,0600);
  }
+#endif
  if (d->fd == -1) {
    switch(errno)
     {
@@ -210,7 +257,7 @@ krb5_error_code krb5_rc_io_open (context, d, fn)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_move (context, new, old)
+krb5_error_code INTERFACE krb5_rc_io_move (context, new, old)
     krb5_context context;
     krb5_rc_iostuff *new;
     krb5_rc_iostuff *old;
@@ -223,7 +270,7 @@ krb5_error_code krb5_rc_io_move (context, new, old)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_write (context, d, buf, num)
+krb5_error_code INTERFACE krb5_rc_io_write (context, d, buf, num)
     krb5_context context;
     krb5_rc_iostuff *d;
     krb5_pointer buf;
@@ -244,10 +291,11 @@ krb5_error_code krb5_rc_io_write (context, d, buf, num)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_sync (context, d)
+krb5_error_code INTERFACE krb5_rc_io_sync (context, d)
     krb5_context context;
     krb5_rc_iostuff *d;
 {
+#ifndef MSDOS_FILESYSTEM
     if (fsync(d->fd) == -1) {
       switch(errno)
       {
@@ -256,10 +304,11 @@ krb5_error_code krb5_rc_io_sync (context, d)
       default: return KRB5_RC_IO_UNKNOWN; 
       }
     }
+#endif
     return 0;
 }
 
-krb5_error_code krb5_rc_io_read (context, d, buf, num)
+krb5_error_code INTERFACE krb5_rc_io_read (context, d, buf, num)
     krb5_context context;
     krb5_rc_iostuff *d;
     krb5_pointer buf;
@@ -278,7 +327,7 @@ krb5_error_code krb5_rc_io_read (context, d, buf, num)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_close (context, d)
+krb5_error_code INTERFACE krb5_rc_io_close (context, d)
     krb5_context context;
     krb5_rc_iostuff *d;
 {
@@ -289,7 +338,7 @@ krb5_error_code krb5_rc_io_close (context, d)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_destroy (context, d)
+krb5_error_code INTERFACE krb5_rc_io_destroy (context, d)
     krb5_context context;
     krb5_rc_iostuff *d;
 {
@@ -306,7 +355,7 @@ krb5_error_code krb5_rc_io_destroy (context, d)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_mark (context, d)
+krb5_error_code INTERFACE krb5_rc_io_mark (context, d)
     krb5_context context;
     krb5_rc_iostuff *d;
 {
@@ -314,7 +363,7 @@ krb5_error_code krb5_rc_io_mark (context, d)
  return 0;
 }
 
-krb5_error_code krb5_rc_io_unmark (context, d)
+krb5_error_code INTERFACE krb5_rc_io_unmark (context, d)
     krb5_context context;
     krb5_rc_iostuff *d;
 {
@@ -322,7 +371,9 @@ krb5_error_code krb5_rc_io_unmark (context, d)
  return 0;
 }
 
-int krb5_rc_io_size (context, d)
+long INTERFACE
+krb5_rc_io_size (context, d)
+    krb5_context context;
     krb5_rc_iostuff *d;
 {
     struct stat statb;
index b88e3b2d50ddfb24e3424e17addd3fb62f343fe3..74df1a0aedac17579f1f20a10f18d1b081fc8203 100644 (file)
 typedef struct krb5_rc_iostuff
  {
   int fd;
+#ifdef MSDOS_FILESYSTEM
+  long mark;
+#else
   int mark; /* on newer systems, should be pos_t */
+#endif
   char *fn;
  }
 krb5_rc_iostuff;
 
 /* first argument is always iostuff for result file */
 
-krb5_error_code krb5_rc_io_creat 
+krb5_error_code INTERFACE krb5_rc_io_creat 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *,
                   char **));
-krb5_error_code krb5_rc_io_open 
+krb5_error_code INTERFACE krb5_rc_io_open 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *,
                   char *));
-krb5_error_code krb5_rc_io_move 
+krb5_error_code INTERFACE krb5_rc_io_move 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *,
                   krb5_rc_iostuff *));
-krb5_error_code krb5_rc_io_write 
+krb5_error_code INTERFACE krb5_rc_io_write 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *,
                   krb5_pointer,
                   int));
-krb5_error_code krb5_rc_io_read 
+krb5_error_code INTERFACE krb5_rc_io_read 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *,
                   krb5_pointer,
                   int));
-krb5_error_code krb5_rc_io_close 
+krb5_error_code INTERFACE krb5_rc_io_close 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *));
-krb5_error_code krb5_rc_io_destroy 
+krb5_error_code INTERFACE krb5_rc_io_destroy 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *));
-krb5_error_code krb5_rc_io_mark 
+krb5_error_code INTERFACE krb5_rc_io_mark 
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *));
-krb5_error_code krb5_rc_io_unmark 
+krb5_error_code INTERFACE krb5_rc_io_unmark 
+       PROTOTYPE((krb5_context,
+                  krb5_rc_iostuff *));
+krb5_error_code INTERFACE krb5_rc_io_sync
+       PROTOTYPE((krb5_context,
+                  krb5_rc_iostuff *));
+long INTERFACE krb5_rc_io_size
        PROTOTYPE((krb5_context,
                   krb5_rc_iostuff *));
-
 #endif