imapext-2007
annotate src/osdep/dos/os_dbw.c @ 0:ada5e610ab86
imap-2007e
author | yuuji@gentei.org |
---|---|
date | Mon, 14 Sep 2009 15:17:45 +0900 |
parents | |
children |
rev | line source |
---|---|
yuuji@0 | 1 /* ======================================================================== |
yuuji@0 | 2 * Copyright 1988-2006 University of Washington |
yuuji@0 | 3 * |
yuuji@0 | 4 * Licensed under the Apache License, Version 2.0 (the "License"); |
yuuji@0 | 5 * you may not use this file except in compliance with the License. |
yuuji@0 | 6 * You may obtain a copy of the License at |
yuuji@0 | 7 * |
yuuji@0 | 8 * http://www.apache.org/licenses/LICENSE-2.0 |
yuuji@0 | 9 * |
yuuji@0 | 10 * |
yuuji@0 | 11 * ======================================================================== |
yuuji@0 | 12 */ |
yuuji@0 | 13 |
yuuji@0 | 14 /* |
yuuji@0 | 15 * Program: Operating-system dependent routines -- MS-DOS (B&W) version |
yuuji@0 | 16 * |
yuuji@0 | 17 * Author: Mark Crispin |
yuuji@0 | 18 * Networks and Distributed Computing |
yuuji@0 | 19 * Computing & Communications |
yuuji@0 | 20 * University of Washington |
yuuji@0 | 21 * Administration Building, AG-44 |
yuuji@0 | 22 * Seattle, WA 98195 |
yuuji@0 | 23 * Internet: MRC@CAC.Washington.EDU |
yuuji@0 | 24 * |
yuuji@0 | 25 * Date: 11 April 1989 |
yuuji@0 | 26 * Last Edited: 30 August 2006 |
yuuji@0 | 27 */ |
yuuji@0 | 28 |
yuuji@0 | 29 /* Private function prototypes */ |
yuuji@0 | 30 |
yuuji@0 | 31 #include "tcp_dos.h" /* must be before osdep includes tcp.h */ |
yuuji@0 | 32 #include "mail.h" |
yuuji@0 | 33 #include "osdep.h" |
yuuji@0 | 34 #include <time.h> |
yuuji@0 | 35 #include <errno.h> |
yuuji@0 | 36 #include <fcntl.h> |
yuuji@0 | 37 #include <sys\stat.h> |
yuuji@0 | 38 #include <sys\timeb.h> |
yuuji@0 | 39 #include "misc.h" |
yuuji@0 | 40 #include "stdlib.h" |
yuuji@0 | 41 #include "bwtcp.h" |
yuuji@0 | 42 |
yuuji@0 | 43 |
yuuji@0 | 44 #include "fs_dos.c" |
yuuji@0 | 45 #include "ftl_dos.c" |
yuuji@0 | 46 #include "nl_dos.c" |
yuuji@0 | 47 #include "env_dos.c" |
yuuji@0 | 48 #undef write |
yuuji@0 | 49 #define read soread |
yuuji@0 | 50 #define write sowrite |
yuuji@0 | 51 #define close soclose |
yuuji@0 | 52 #include "tcp_dos.c" |
yuuji@0 | 53 |
yuuji@0 | 54 |
yuuji@0 | 55 /* Return my local host name |
yuuji@0 | 56 * Returns: my local host name |
yuuji@0 | 57 */ |
yuuji@0 | 58 |
yuuji@0 | 59 char *mylocalhost (void) |
yuuji@0 | 60 { |
yuuji@0 | 61 char *s; |
yuuji@0 | 62 if (!myLocalHost) { /* known yet? */ |
yuuji@0 | 63 /* get local host name from DISPLAY env var */ |
yuuji@0 | 64 if (!((s = getenv ("DISPLAY")) || (s = getenv ("display")))) { |
yuuji@0 | 65 mm_log ("Environment variable 'DISPLAY' is not set", ERROR); |
yuuji@0 | 66 s = "random-pc"; |
yuuji@0 | 67 } |
yuuji@0 | 68 myLocalHost = cpystr (s); |
yuuji@0 | 69 } |
yuuji@0 | 70 return myLocalHost; |
yuuji@0 | 71 } |
yuuji@0 | 72 |
yuuji@0 | 73 |
yuuji@0 | 74 /* Look up host address |
yuuji@0 | 75 * Accepts: pointer to pointer to host name |
yuuji@0 | 76 * socket address block |
yuuji@0 | 77 * Returns: non-zero with host address in socket, official host name in host; |
yuuji@0 | 78 * else NIL |
yuuji@0 | 79 */ |
yuuji@0 | 80 |
yuuji@0 | 81 long lookuphost (char **host,struct sockaddr_in *sin) |
yuuji@0 | 82 { |
yuuji@0 | 83 char *s = *host; /* in case of error */ |
yuuji@0 | 84 sin->sin_addr.s_addr = rhost (host); |
yuuji@0 | 85 if (sin->sin_addr.s_addr == -1) { |
yuuji@0 | 86 *host = s; /* error, restore old host name */ |
yuuji@0 | 87 return NIL; |
yuuji@0 | 88 } |
yuuji@0 | 89 *host = cpystr (*host); /* make permanent copy of name */ |
yuuji@0 | 90 return T; /* success */ |
yuuji@0 | 91 } |