Back to index

courier  0.68.2
pcpdauthme.c
Go to the documentation of this file.
00001 /*
00002 ** Copyright 2002 Double Precision, Inc.  See COPYING for
00003 ** distribution information.
00004 */
00005 
00006 
00007 /*
00008 */
00009 
00010 #include      "config.h"
00011 
00012 #if    HAVE_SYS_STAT_H
00013 #include      <sys/stat.h>
00014 #endif
00015 #if HAVE_SYS_WAIT_H
00016 #include      <sys/wait.h>
00017 #endif
00018 
00019 #if    HAVE_UNISTD_H
00020 #include      <unistd.h>
00021 #endif
00022 
00023 #include      <stdio.h>
00024 #include      <stdlib.h>
00025 #include      <ctype.h>
00026 #include      <pwd.h>
00027 #if    HAVE_UNISTD_H
00028 #include      <unistd.h>
00029 #endif
00030 #include      <string.h>
00031 #include      <errno.h>
00032 #include      <sysconfdir.h>
00033 #include      "calendardir.h"
00034 
00035 char *auth_myhostname()
00036 {
00037 char    buf[1024];
00038 static char *my_hostname=0;
00039 FILE   *f;
00040 
00041        if (my_hostname == 0)
00042        {
00043               buf[0]=0;
00044 
00045               f=fopen(HOSTNAMEFILE, "r");
00046 
00047               if (!f)
00048                      f=fopen(HOSTNAMEFILE2, "r");
00049 
00050               if (f != 0)
00051               {
00052               char *p;
00053 
00054                      if (fgets(buf, sizeof(buf), f) == NULL)
00055                             buf[0]=0;
00056                      fclose(f);
00057 
00058                      if ((p=strchr(buf, '\n')) != 0)
00059                             *p=0;
00060               }
00061 
00062               if (buf[0] == 0 && gethostname(buf, sizeof(buf)-1))
00063                      strcpy(buf, "localhost");
00064 
00065               if ((my_hostname=malloc(strlen(buf)+1)) == 0)
00066               {
00067                      fprintf(stderr, "NOTICE: malloc: out of memory.\n");
00068                      return strdup("localhost");
00069               }
00070 
00071               strcpy(my_hostname, buf);
00072        }
00073        return (my_hostname);
00074 }