summaryrefslogtreecommitdiff
path: root/APACHE_1_3_42/src/os/netware/os.h
blob: a61ccf19054b5572269d5e3f22a4b78ba6e0a855 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/* Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef APACHE_OS_H
#define APACHE_OS_H

#define PLATFORM "NETWARE"
#define HAVE_CANONICAL_FILENAME

/*
 * This file in included in all Apache source code. It contains definitions
 * of facilities available on _this_ operating system (HAVE_* macros),
 * and prototypes of OS specific functions defined in os.c or os-inline.c
 */

typedef signed long int32;
typedef int uid_t;
typedef int gid_t;
typedef int tid_t;

#include "ap_config.h"
#include <string.h>
#include <stddef.h>
#include <nwthread.h>
#include <nwmalloc.h>
#include <nwnamspc.h>
#include <nwlib.h>
#include <nwadv.h>
#include <ws2nlm.h>
#include <winsock2.h>
#include <fcntl.h>
#include <dirent.h>

#define NO_LINGCLOSE
#define NO_SLACK
#define HAVE_UNISTD_H
#define NO_SETSID
#define NO_KILLPG
#define NO_WRITEV
#define NO_GETTIMEOFDAY
#define NO_TIMES
#define NO_USE_SIGACTION
#define USE_LONGJMP
#define MULTITHREAD

#define NO_RELIABLE_PIPED_LOGS
#define CASE_BLIND_FILESYSTEM
#define NO_OTHER_CHILD

#define USE_HSREGEX
#define NETDB_USE_INTERNET
#define N_PLAT_NLM
#define APX386
#define ALLOC_USE_MALLOC
#define OPTIMIZE_TIMEOUTS
#define FD_SETSIZE 128
#define NO_DBM_REWRITEMAP

#define crypt(buf,salt)	    (buf)
#define sleep(t) delay(t*1000)
#define getpid() ((pid_t)GetThreadGroupID())
#define gettid() ((tid_t)GetThreadID())
/* Netware doesn't have symlinks so S_ISLNK is always false */
#define S_ISLNK(m) 0
/* Netware doesn't have isnan,isinf so they always return false */
#define isnan(m) 0
#define isinf(m) 0
#define lstat(x, y) stat(x, y)
#define strcasecmp(s1, s2) stricmp(s1, s2)
#define strncasecmp(s1, s2, n) strnicmp(s1, s2, n)
#define mktemp(s) tmpnam(s)
#define _getch getch

/* Watcom reports that ERANGE is returned properly for any out of bounds
 * conditions, with a MIN/MAX_LONG value.  This should be safe.
 */
#define ap_strtol strtol

#define opendir_411(p) os_opendir(p)
#define opendir(p) os_opendir(p)
DIR *os_opendir (const char *pathname);

#define readdir_411(p) os_readdir(p)
#define readdir(p) os_readdir(p)
DIR *os_readdir (DIR *dirP);

#define closedir_510(p) os_closedir(p)
#define closedir(p) os_closedir(p)
int os_closedir (DIR *dirP);

/* Prototypes */
void AMCSocketCleanup(void);
void clean_parent_exit(int code);

#ifdef __GNUC__
static
#endif
inline int ap_os_is_path_absolute(const char *file)
{
    char *s = strstr (file, "://");

    /* First make sure we aren't looking at a URL such as
        a proxy:http://blah.
    */
    if (!s) {
        s = strchr (file, ':');
    
        if (s) {
            if (strncmp(s, "://", 3) != 0)
	        /* XXX: we assume that everything before the : is letters */
                return 1;
        }
        else {
            if (file[0] == '/')
                return 1;
        }
    }
    	
    return 0;
}

#define ap_os_dso_handle_t  void *
void ap_os_dso_init(void);
void *ap_os_dso_load(const char *);
void ap_os_dso_unload(void *);
void *ap_os_dso_sym(void *, const char *);
void ap_os_dso_unsym(void *handle, const char *symname);
const char *ap_os_dso_error(void);
char *remove_filename(char*);
char *bslash2slash(char*);
void init_name_space(void);
int ap_os_is_filename_valid(const char *file);
char *ap_os_http_method(void *r);
unsigned short ap_os_default_port(void *r);
#endif /*! APACHE_OS_H*/