src/server/nsapi.h

changeset 9
30e51941a673
parent 8
f4d56bf9de40
--- a/src/server/nsapi.h	Wed Dec 28 22:02:08 2011 +0100
+++ b/src/server/nsapi.h	Thu Dec 29 18:51:23 2011 +0100
@@ -832,7 +832,7 @@
 
     /* What port we listen to */
     int Vport;                                  /* OBSOLETE */
-#define server_portnum conf_getglobals()->Vport
+#define server_portnum 80
 
     /* What address to bind to */
     char *Vaddr;                                /* OBSOLETE */
@@ -863,7 +863,7 @@
     char *Vsecure_keyfn;                        /* OBSOLETE */
     char *Vsecure_certfn;                       /* OBSOLETE */
 
-#define security_active conf_getglobals()->Vsecurity_active
+#define security_active 0
     int Vsecurity_active;
     int Vssl3_active;                           /* OBSOLETE */
     int Vssl2_active;                           /* OBSOLETE */
@@ -872,7 +872,7 @@
     long Vssl3_session_timeout;
 
     /* The server's hostname as should be reported in self-ref URLs */
-#define server_hostname conf_getglobals()->Vserver_hostname
+#define server_hostname "x4"
     char *Vserver_hostname;
 
     /* The main object from which all are derived */
@@ -1065,444 +1065,6 @@
 /* --- End type definitions --- */
 
 /* --- Begin dispatch vector table definition --- */
-
-typedef struct nsapi_dispatch_s nsapi_dispatch_t;
-struct nsapi_dispatch_s {
-    char *(*f_system_version)();
-    void *(*f_system_malloc)(int size);
-    void *(*f_system_calloc)(int size);
-    void *(*f_system_realloc)(void *ptr, int size);
-    void (*f_system_free)(void *ptr);
-    char *(*f_system_strdup)(const char *ptr);
-    void *(*f_system_malloc_perm)(int size);
-    void *(*f_system_calloc_perm)(int size);
-    void *(*f_system_realloc_perm)(void *ptr, int size);
-    void (*f_system_free_perm)(void *ptr);
-    char *(*f_system_strdup_perm)(const char *ptr);
-    int (*f_getThreadMallocKey)(void);
-    void (*f_magnus_atrestart)(void (*fn)(void *), void *data);
-    filebuf_t *(*f_filebuf_open)(SYS_FILE fd, int sz);
-    netbuf *(*f_netbuf_open)(SYS_NETFD sd, int sz);
-    filebuf_t *(*f_filebuf_create)(SYS_FILE fd, caddr_t mmap_ptr,
-                                   int mmap_len, int bufsz);
-    void (*f_filebuf_close_buffer)(filebuf_t *buf, int clean_mmap);
-    filebuf_t *(*f_filebuf_open_nostat)(SYS_FILE fd, int sz,
-                                        struct stat *finfo);
-#ifdef XP_WIN32
-    filebuf_t *(*f_pipebuf_open)(SYS_FILE fd, int sz, struct stat *finfo);
-#else
-    void *(*f_pipebuf_open)(void);
-#endif /* XP_WIN32 */
-    int (*f_filebuf_next)(void);
-    int (*f_netbuf_next)(netbuf *buf, int advance);
-#ifdef XP_WIN32 
-    int (*f_pipebuf_next)(filebuf_t *buf, int advance);
-#else
-    int (*f_pipebuf_next)(void);
-#endif /* XP_WIN32 */
-    void (*f_filebuf_close)(filebuf_t *buf);
-    void (*f_netbuf_close)(netbuf *buf);
-#ifdef XP_WIN32
-    void        (*f_pipebuf_close)(filebuf_t *buf);
-#else
-    void (*f_pipebuf_close)(void);
-#endif /* XP_WIN32 */
-    int (*f_filebuf_grab)(filebuf_t *buf, int sz);
-    int (*f_netbuf_grab)(netbuf *buf, int sz);
-#ifdef XP_WIN32
-    int (*f_pipebuf_grab)(filebuf_t *buf, int sz);
-#else
-    int (*f_pipebuf_grab)(void);
-#endif /* XP_WIN32 */
-    int (*f_netbuf_buf2sd)(netbuf *buf, SYS_NETFD sd, int len);
-    int (*f_filebuf_buf2sd)(filebuf_t *buf, SYS_NETFD sd);
-#ifdef XP_WIN32
-    int (*f_pipebuf_buf2sd)(filebuf_t *buf, SYS_NETFD sd, int len);
-    int (*f_pipebuf_netbuf2sd)(netbuf *buf, SYS_FILE sd, int len);
-    int (*f_pipebuf_netbuf2pipe)(netbuf *buf, SYS_NETFD sd, int len);
-#else
-    int (*f_pipebuf_buf2sd)(void);
-    int (*f_pipebuf_netbuf2sd)(void);
-    int (*f_pipebuf_netbuf2pipe)(void);
-#endif /* XP_WIN32 */
-    void (*f_cinfo_init)(void);
-    void (*f_cinfo_terminate)(void);
-    char *(*f_cinfo_merge)(char *fn);
-    cinfo *(*f_cinfo_find)(char *uri);
-    cinfo *(*f_cinfo_lookup)(char *type);
-    void (*f_cinfo_dump_database)(FILE *dump);
-    CRITICAL (*f_crit_init)(void);
-    void (*f_crit_enter)(CRITICAL id);
-    void (*f_crit_exit)(CRITICAL id);
-    void (*f_crit_terminate)(CRITICAL id);
-    CONDVAR (*f_condvar_init)(CRITICAL id);
-    void (*f_condvar_wait)(CONDVAR cv);
-    void (*f_condvar_notify)(CONDVAR cv);
-    void (*f_condvar_notifyAll)(CONDVAR cv);
-    void (*f_condvar_terminate)(CONDVAR cv);
-    COUNTING_SEMAPHORE (*f_cs_init)(int initial_count);
-    void (*f_cs_terminate)(COUNTING_SEMAPHORE csp);
-    int (*f_cs_wait)(COUNTING_SEMAPHORE csp);
-    int (*f_cs_trywait)(COUNTING_SEMAPHORE csp);
-    int (*f_cs_release)(COUNTING_SEMAPHORE csp);
-    void (*f_daemon_atrestart)(void (*fn)(void *), void *data);
-    /* Obsolete: servssl_init() */
-    void (*f_servssl_init)(void);
-    int (*f_ereport)(int degree, const char *fmt, ...);
-    int (*f_ereport_v)(int degree, const char *fmt, va_list args);
-    char *(*f_ereport_init)(const char *err_fn, const char *email,
-                            struct passwd *pwuser, const char *version,
-                            int restart);
-    void (*f_ereport_terminate)(void);
-    SYS_FILE (*f_ereport_getfd)(void);
-    SYS_FILE (*f_system_fopenRO)(const char *path);
-    SYS_FILE (*f_system_fopenWA)(const char *path);
-    SYS_FILE (*f_system_fopenRW)(const char *path);
-    SYS_FILE (*f_system_fopenWT)(const char *path);
-    int (*f_system_fread)(SYS_FILE fd, void *buf, int sz);
-    int (*f_system_fwrite)(SYS_FILE fd, const void *buf,int sz);
-    int (*f_system_fwrite_atomic)(SYS_FILE fd, const void *buf, int sz);
-    int (*f_system_lseek)(SYS_FILE fd, int off, int wh);
-    int (*f_system_fclose)(SYS_FILE fd);
-    int (*f_system_stat)(const char *name, struct stat *finfo);
-    int (*f_system_rename)(const char *oldpath, const char *newpath);
-    int (*f_system_unlink)(const char *path);
-    int (*f_system_tlock)(SYS_FILE fd);
-    int (*f_system_flock)(SYS_FILE fd);
-    int (*f_system_ulock)(SYS_FILE fd);
-#ifdef XP_WIN32
-    SYS_DIR (*f_dir_open)(const char *path);
-    SYS_DIRENT *(*f_dir_read)(SYS_DIR ds);
-    void (*f_dir_close)(SYS_DIR ds);
-#else
-    void *(*f_dir_open)(void);
-    void *(*f_dir_read)(void);
-    void (*f_dir_close)(void);
-#endif /* XP_WIN32 */
-    int (*f_dir_create_all)(char *dir);
-#ifdef XP_WIN32
-    void *(*f_system_winsockerr)(void);
-    void *(*f_system_winerr)(void);
-    int (*f_system_pread)(SYS_FILE fd, void *buf, int sz);
-    int (*f_system_pwrite)(SYS_FILE fd, const void *buf, int sz);
-    void (*f_file_unix2local)(const char *path, char *p2);
-#else
-    void *(*f_system_winsockerr)(void);
-    void *(*f_system_winerr)(void);
-    int (*f_system_pread)(void);
-    int (*f_system_pwrite)(void);
-    void (*f_file_unix2local)(void);
-#endif /* XP_WIN32 */
-    int (*f_system_nocoredumps)(void);
-    int (*f_file_setinherit)(SYS_FILE fd, int value);
-    int (*f_file_notfound)(void);
-    char *(*f_system_errmsg)(void);
-    int (*f_system_errmsg_fn)(char **buff, size_t maxlen);
-    SYS_NETFD (*f_net_socket)(int domain, int type, int protocol);
-    int (*f_net_listen)(SYS_NETFD s, int backlog);
-    SYS_NETFD (*f_net_create_listener)(const char *ipaddr, int port);
-    int (*f_net_connect)(SYS_NETFD s, const void *sockaddr, int namelen);
-    int (*f_net_getpeername)(SYS_NETFD s, struct sockaddr *name, int *namelen);
-    int (*f_net_close)(SYS_NETFD s);
-    int (*f_net_bind)(SYS_NETFD s, const struct sockaddr *name, int namelen);
-    SYS_NETFD (*f_net_accept)(SYS_NETFD s, struct sockaddr *addr, int *addrlen);
-    int (*f_net_read)(SYS_NETFD sd, void *buf, int sz, int timeout);
-    int (*f_net_write)(SYS_NETFD sd, const void *buf, int sz);
-    int (*f_net_writev)(SYS_NETFD sd, const NSAPIIOVec *iov, int iovlen);
-    int (*f_net_isalive)(SYS_NETFD sd);
-    char *(*f_net_ip2host)(const char *ip, int verify);
-    int (*f_net_getsockopt)(SYS_NETFD s, int level, int optname,
-                            void *optval, int *optlen);
-    int (*f_net_setsockopt)(SYS_NETFD s, int level, int optname,
-                            const void *optval, int optlen);
-    int (*f_net_select)(int nfds, fd_set *r, fd_set *w, fd_set *e, 
-                        struct timeval *timeout);
-    int (*f_net_ioctl)(SYS_NETFD s, int tag, void *result);
-    pb_param *(*f_param_create)(const char *name, const char *value);
-    int (*f_param_free)(pb_param *pp);
-    pblock *(*f_pblock_create)(int n);
-    void (*f_pblock_free)(pblock *pb);
-    char *(*f_pblock_findval)(const char *name, const pblock *pb);
-    pb_param *(*f_pblock_nvinsert)(const char *name, const char *value, pblock *pb);
-    pb_param *(*f_pblock_nninsert)(const char *name, int value, pblock *pb);
-    void (*f_pblock_pinsert)(pb_param *pp, pblock *pb);
-    int (*f_pblock_str2pblock)(const char *str, pblock *pb);
-    char *(*f_pblock_pblock2str)(const pblock *pb, char *str);
-    int (*f_pblock_copy)(const pblock *src, pblock *dst);
-    pblock *(*f_pblock_dup)(const pblock *src);
-    char **(*f_pblock_pb2env)(const pblock *pb, char **env);
-    pb_param *(*f_pblock_fr)(const char *name, pblock *pb, int remove);
-    char * (*f_pblock_replace)(const char *name,char * new_value,pblock *pb);
-    pool_handle_t *(*f_pool_create)(void);
-    void (*f_pool_destroy)(pool_handle_t *pool_handle);
-    int (*f_pool_enabled)(void);
-    void *(*f_pool_malloc)(pool_handle_t *pool_handle, size_t size );
-    void (*f_pool_free)(pool_handle_t *pool_handle, void *ptr );
-    void *(*f_pool_calloc)(pool_handle_t *pool_handle, size_t nelem, size_t elsize);
-    void *(*f_pool_realloc)(pool_handle_t *pool_handle, void *ptr, size_t size );
-    char *(*f_pool_strdup)(pool_handle_t *pool_handle, const char *orig_str );
-    int (*f_regexp_valid)(const char *exp);
-    int (*f_regexp_match)(const char *str, const char *exp);
-    int (*f_regexp_cmp)(const char *str, const char *exp);
-    int (*f_regexp_casecmp)(const char *str, const char *exp);
-    SEMAPHORE (*f_sem_init)(char *name, int number);
-    void (*f_sem_terminate)(SEMAPHORE id);
-    int (*f_sem_grab)(SEMAPHORE id);
-    int (*f_sem_tgrab)(SEMAPHORE id);
-    int (*f_sem_release)(SEMAPHORE id);
-    Session *(*f_session_alloc)(SYS_NETFD csd, struct sockaddr_in *sac); /* internal */
-    Session *(*f_session_fill)(Session *sn); /* internal */
-    Session *(*f_session_create)(SYS_NETFD csd, struct sockaddr_in *sac);
-    void (*f_session_free)(Session *sn);
-    char *(*f_session_dns_lookup)(Session *sn, int verify);
-    int (*f_shexp_valid)(const char *exp);
-    int (*f_shexp_match)(const char *str, const char *exp);
-    int (*f_shexp_cmp)(const char *str, const char *exp);
-    int (*f_shexp_casecmp)(const char *str, const char *exp);
-    shmem_s *(*f_shmem_alloc)(char *name, int size, int expose);
-    void (*f_shmem_free)(shmem_s *region);
-    SYS_THREAD (*f_systhread_start)(int prio, int stksz, void (*fn)(void *), void *arg);
-    SYS_THREAD (*f_systhread_current)(void);
-    void (*f_systhread_yield)(void);
-    SYS_THREAD (*f_systhread_attach)(void);
-    void (*f_systhread_detach)(SYS_THREAD thr);
-    void (*f_systhread_terminate)(SYS_THREAD thr);
-    void (*f_systhread_sleep)(int milliseconds);
-    void (*f_systhread_init)(char *name);
-    void (*f_systhread_timerset)(int usec);
-    int (*f_systhread_newkey)(void);
-    void *(*f_systhread_getdata)(int key);
-    void (*f_systhread_setdata)(int key, void *data);
-    void (*f_systhread_set_default_stacksize)(unsigned long size);
-    int (*f_util_getline)(filebuffer *buf, int lineno, int maxlen, char *l);
-    char **(*f_util_env_create)(char **env, int n, int *pos);
-    char *(*f_util_env_str)(const char *name, const char *value);
-    void (*f_util_env_replace)(char **env, const char *name, const char *value);
-    void (*f_util_env_free)(char **env);
-    char **(*f_util_env_copy)(char **src, char **dst);
-    char *(*f_util_env_find)(char **env, const char *name);
-    char *(*f_util_hostname)(void);
-    int (*f_util_chdir2path)(char *path);
-    int (*f_util_is_mozilla)(char *ua, char *major, char *minor);
-    int (*f_util_is_url)(const char *url);
-    int (*f_util_later_than)(const struct tm *lms, const char *ims);
-    int (*f_util_time_equal)(const struct tm *lms, const char *ims);
-    int (*f_util_str_time_equal)(const char *t1, const char *t2);
-    int (*f_util_uri_is_evil)(const char *t);
-    void (*f_util_uri_parse)(char *uri);
-    void (*f_util_uri_unescape)(char *s);
-    char *(*f_util_uri_escape)(char *d, const char *s);
-    char *(*f_util_url_escape)(char *d, const char *s);
-    char *(*f_util_sh_escape)(char *s);
-    int (*f_util_mime_separator)(char *sep);
-    int (*f_util_itoa)(int i, char *a);
-    int (*f_util_vsprintf)(char *s, register const char *fmt, va_list args);
-    int (*f_util_sprintf)(char *s, const char *fmt, ...);
-    int (*f_util_vsnprintf)(char *s, int n, register const char *fmt, 
-                            va_list args);
-    int (*f_util_snprintf)(char *s, int n, const char *fmt, ...);
-    int (*f_util_strftime)(char *s, const char *format, const struct tm *t);
-    char *(*f_util_strtok)(char *s1, const char *s2, char **lasts);
-    struct tm *(*f_util_localtime)(const time_t *clock, struct tm *res);
-    char *(*f_util_ctime)(const time_t *clock, char *buf, int buflen);
-    char *(*f_util_strerror)(int errnum, char *msg, int buflen);
-    struct tm *(*f_util_gmtime)(const time_t *clock, struct tm *res);
-    char *(*f_util_asctime)(const struct tm *tm,char *buf, int buflen);
-#ifdef NEED_STRCASECMP
-    int (*f_util_strcasecmp)(const char *one, const char *two);
-#else
-    int (*f_util_strcasecmp)(void);
-#endif /* NEED_STRCASECMP */
-#ifdef NEED_STRNCASECMP
-    int (*f_util_strncasecmp)(const char *one, const char *two, int n);
-#else
-    int (*f_util_strncasecmp)(void);
-#endif /* NEED_STRNCASECMP */
-#ifdef XP_UNIX
-    int (*f_util_can_exec)(struct stat *finfo, uid_t uid, gid_t gid);
-    struct passwd *(*f_util_getpwnam)(const char *name, struct passwd
-                                      *result, char *buffer,  int buflen);
-    pid_t (*f_util_waitpid)(pid_t pid, int *statptr, int options);
-#else
-    int (*f_util_can_exec)(void);
-    void *(*f_util_getpwnam)(void);
-    int (*f_util_waitpid)(void);
-#endif /* XP_UNIX */
-#ifdef XP_WIN32
-    VOID (*f_util_delete_directory)(char *FileName, BOOL delete_directory);
-#else
-    void (*f_util_delete_directory)(void);
-#endif /* XP_WIN32 */
-    void *(*f_conf_init)(void);
-    void *(*f_conf_run_init_functions)(void);
-    void (*f_conf_terminate)(void);
-    conf_global_vars_s *(*f_conf_getglobals)(void);
-    void (*f_func_init)(struct FuncStruct *func_standard);
-    FuncPtr (*f_func_find)(char *name);
-    int (*f_func_exec)(pblock *pb, Session *sn, Request *rq);
-    struct FuncStruct *(*f_func_insert)(char *name, FuncPtr fn);
-    int (*f_object_execute)(directive *inst, Session *sn, Request *rq);
-    void *(*f_http_find_request)(void);
-    int (*f_http_parse_request)(char *t, Request *rq, Session *sn);
-    int (*f_http_scan_headers)(void);
-    int (*f_http_start_response)(Session *sn, Request *rq);
-    char **(*f_http_hdrs2env)(pblock *pb);
-    void (*f_http_status)(Session *sn, Request *rq, int n, const char *r);
-    int (*f_http_set_finfo)(Session *sn, Request *rq, struct stat *finfo);
-    char *(*f_http_dump822)(pblock *pb, char *t, int *pos, int tsz);
-    void (*f_http_finish_request)(Session *sn, Request *rq);
-    void (*f_http_handle_session)(void);
-    char *(*f_http_uri2url)(const char *prefix, const char *suffix);
-    char *(*f_http_uri2url_dynamic)(const char *prefix, const char *suffix,
-                                    Session *sn, Request *rq);
-    void (*f_http_set_keepalive_timeout)(int secs);
-    int (*f_log_error_v)(int degree, const char *func, Session *sn,
-                         Request *rq, const char *fmt, va_list args);
-    int (*f_log_error)(int degree, const char *func, Session *sn, Request *rq,
-                       const char *fmt, ...);
-    int (*f_log_ereport_v)(int degree, const char *fmt, va_list args);
-    int (*f_log_ereport)(int degree, const char *fmt, ...);
-    httpd_object *(*f_object_create)(int nd, pblock *name);
-    void (*f_object_free)(httpd_object *obj);
-    void (*f_object_add_directive)(int dc, pblock *p, pblock *c,
-                                   httpd_object *obj);
-    httpd_objset *(*f_objset_scan_buffer)(filebuffer *buf, char *errstr,
-                                          httpd_objset *os);
-    httpd_objset *(*f_objset_create)(void);
-    void (*f_objset_free)(httpd_objset *os);
-    void (*f_objset_free_setonly)(httpd_objset *os);
-    httpd_object *(*f_objset_new_object)(pblock *name, httpd_objset *os);
-    void (*f_objset_add_object)(httpd_object *obj, httpd_objset *os);
-    void (*f_objset_add_init)(pblock *initfn, httpd_objset *os);
-    httpd_object *(*f_objset_findbyname)(const char *name, httpd_objset *ign,
-                                         httpd_objset *os);
-    httpd_object *(*f_objset_findbyppath)(char *ppath, httpd_objset *ign,
-                                          httpd_objset *os);
-    Request *(*f_request_create)(void);
-    void (*f_request_free)(Request *req);
-    Request *(*f_request_restart_internal)(const char *uri, Request *rq);
-    int (*f_request_header)(char *name, char **value, Session *sn,
-                            Request *rq);
-    struct stat *(*f_request_stat_path)(const char *path, Request *rq);
-    const char *(*f_conf_getServerString)(void);
-    FuncPtr (*f_func_replace)(char *funcname, FuncPtr fn);
-    int (*f_net_socketpair)(SYS_NETFD *pair);
-#ifdef XP_UNIX
-    SYS_NETFD (*f_net_dup2)(SYS_NETFD prfd, int osfd);
-    int (*f_net_is_STDOUT)(SYS_NETFD prfd);
-    int (*f_net_is_STDIN)(SYS_NETFD prfd);
-#else
-    void *(*f_net_dup2)(void);
-    int (*f_net_is_STDOUT)(void);
-    int (*f_net_is_STDIN)(void);
-#endif /* XP_UNIX */
-    int (*f_func_set_native_thread_flag)(char *name, int flags);
-#ifdef NET_SSL
-    void *(*f_random_create)(void);
-    void (*f_random_update)(void *rctx, unsigned char *inbuf, int length);
-    void (*f_random_generate)(void *rctx, unsigned char *outbuf, int length);
-    void (*f_random_destroy)(void *rctx);
-    void *(*f_md5hash_create)(void);
-    void *(*f_md5hash_copy)(void *hctx);
-    void (*f_md5hash_begin)(void *hctx);
-    void (*f_md5hash_update)(void *hctx, unsigned char *inbuf, int length);
-    void (*f_md5hash_end)(void *hctx, unsigned char *outbuf);
-    void (*f_md5hash_destroy)(void *hctx);
-    void (*f_md5hash_data)(unsigned char *outbuf, unsigned char *src, int length);
-#else
-    void *(*f_random_create)(void);
-    void (*f_random_update)(void);
-    void (*f_random_generate)(void);
-    void (*f_random_destroy)(void);
-    void *(*f_md5hash_create)(void);
-    void *(*f_md5hash_copy)(void);
-    void (*f_md5hash_begin)(void);
-    void (*f_md5hash_update)(void);
-    void (*f_md5hash_end)(void);
-    void (*f_md5hash_destroy)(void);
-    void (*f_md5hash_data)(void);
-#endif
-    int (*f_ACL_SetupEval)(struct ACLListHandle *acllist, Session *sn, Request *rq, char **rights, char **map_generic, const char *user);
-    int (*f_netbuf_getbytes)(netbuf *buf, char *buffer, int size);
-    char *(*f_servact_translate_uri)(char *uri, Session *sn);
-#ifdef NET_SSL
-    int (*f_rsa_set_priv_fn)(void *);
-#else
-    int (*f_rsa_set_priv_fn)(void);
-#endif
-#ifdef XP_UNIX
-    int (*f_net_native_handle)(SYS_NETFD s);
-#else
-    HANDLE (*f_net_native_handle)(SYS_NETFD s);
-#endif /* XP_UNIX */
-    int (*f_internal_request)(Request *rq);
-    char *(*f_util_cookie_find)(char *cookie, const char *name);
-    char *(*f_util_cookie_next)(char *cookie, char **name, char **value);
-    char *(*f_util_cookie_next_av_pair)(char *cookie, char **name, char **value);
-    int (*f_objset_get_number_objects)(const httpd_objset *objset);
-    const httpd_object *(*f_objset_get_object)(const httpd_objset *objset, int pos);
-    const pblock * const *(*f_objset_get_initfns)(const httpd_objset *objset);
-    const pblock *(*f_object_get_name)(const httpd_object *object);
-    int (*f_object_get_num_directives)(const httpd_object *object);
-    const dtable *(*f_object_get_directive_table)(const httpd_object *object, int n);
-    int (*f_directive_table_get_num_directives)(const dtable *dt);
-    const directive *(*f_directive_table_get_directive)(const dtable *dt, int pos);
-    const pblock *(*f_directive_get_pblock)(const directive *);
-    const FuncStruct *(*f_directive_get_funcstruct)(const directive *);
-    const pblock *(*f_directive_get_client_pblock)(const directive *);
-#if NSAPI_VERSION >= 301
-    int (*f_vs_register_cb)(VSInitFunc *vs_init_func, VSDestroyFunc *vs_destroy_func);
-    const char* (*f_vs_get_id)(const VirtualServer *vs);
-    const char* (*f_vs_lookup_config_var)(const VirtualServer *vs, const char *name);
-    int (*f_vs_alloc_slot)(void);
-    void* (*f_vs_set_data)(const VirtualServer *vs, int *slot, void *data);
-    void* (*f_vs_get_data)(const VirtualServer *vs, int slot);
-    const VirtualServer* (*f_request_get_vs)(Request *rq);
-    httpd_objset* (*f_vs_get_httpd_objset)(VirtualServer *vs);
-    httpd_object* (*f_vs_get_default_httpd_object)(VirtualServer *vs);
-    char* (*f_vs_get_doc_root)(const VirtualServer *vs);
-    char* (*f_vs_translate_uri)(const VirtualServer *vs, const char *uri);
-    char* (*f_vs_get_mime_type)(const VirtualServer *vs, const char *uri);
-    int (*f_vs_is_default_vs)(const VirtualServer *vs);
-    void *(*f_vs_get_acllist)(const VirtualServer *vs);
-    void (*f_vs_set_acllist)(VirtualServer *vs, void *acllist);
-    int (*f_file_is_path_abs)(const char *path);
-    char* (*f_file_canonicalize_path)(const char* path);
-    int (*f_file_are_files_distinct)(SYS_FILE fd1, SYS_FILE fd2);
-    int (*f_vs_directive_register_cb)(FuncPtr func, VSDirectiveInitFunc *vs_init_func, VSDirectiveDestroyFunc *vs_destroy_func);
-    char* (*f_vs_substitute_vars)(const VirtualServer *vs, const char *string);
-    const char *(*f_conf_getfilename)(void);
-    const char *(*f_conf_getstring)(const char *name, const char *def);
-    int (*f_conf_getboolean)(const char *name, int def);
-    int (*f_conf_getinteger)(const char *name, int def);
-    int (*f_conf_getboundedinteger)(const char *name, int min, int max, int def);
-    void (*f_prepare_nsapi_thread)(Request *rq, Session *sn);
-#endif /* NSAPI_VERSION >= 301 */
-};
-
-#if NSAPI_VERSION >= 302
-typedef struct nsapi302_dispatch_s nsapi302_dispatch_t;
-struct nsapi302_dispatch_s {
-    int (*f_net_flush)(SYS_NETFD sd);
-    int (*f_net_sendfile)(SYS_NETFD sd, sendfiledata *sfd);
-    const Filter *(*f_filter_create)(const char *name, int order, const FilterMethods *methods);
-    const char *(*f_filter_name)(const Filter *filter);
-    const Filter *(*f_filter_find)(const char *name);
-    FilterLayer *(*f_filter_layer)(SYS_NETFD sd, const Filter *filter);
-    int (*f_filter_insert)(SYS_NETFD sd, pblock *pb, Session *sn, Request *rq, void *data, const Filter *filter);
-    int (*f_filter_remove)(SYS_NETFD sd, const Filter *filter);
-    SYS_NETFD (*f_filter_create_stack)(Session *sn);
-};
-#endif /* NSAPI_VERSION >= 302 */
-
-#if NSAPI_VERSION >= 303
-typedef struct nsapi303_dispatch_s nsapi303_dispatch_t;
-struct hostent;
-struct nsapi303_dispatch_s {
-    int (*f_dns_set_hostent)(struct hostent *he, Session *sn, Request *rq);
-};
-#endif /* NSAPI_VERSION >= 303 */
-
 /* --- End dispatch vector table definition --- */
 
 /* --- Begin API macro definitions --- */
@@ -1588,14 +1150,116 @@
  */
 #define session_maxdns(sn) session_dns_lookup(sn, 1)
 
+
+/* nsapi functions */
+
+ssize_t net_write(SYS_NETFD fd, void *buf, size_t nbytes);
+
+NSAPI_PUBLIC pb_param *INTparam_create(const char *name, const char *value);
+
+NSAPI_PUBLIC int INTparam_free(pb_param *pp);
+
+NSAPI_PUBLIC pblock *INTpblock_create(int n);
+
+NSAPI_PUBLIC void INTpblock_free(pblock *pb);
+
+NSAPI_PUBLIC char *INTpblock_findval(const char *name, const pblock *pb);
+
+NSAPI_PUBLIC pb_param *INTpblock_nvinsert(const char *name, const char *value, pblock *pb);
+
+NSAPI_PUBLIC pb_param *pblock_nvlinsert(const char *name, int namelen, const char *value, int valuelen, pblock *pb);
+
+NSAPI_PUBLIC pb_param *INTpblock_nninsert(const char *name, int value, pblock *pb);
+
+NSAPI_PUBLIC void INTpblock_pinsert(pb_param *pp, pblock *pb);
+
+NSAPI_PUBLIC int INTpblock_str2pblock(const char *str, pblock *pb);
+
+NSAPI_PUBLIC char *INTpblock_pblock2str(const pblock *pb, char *str);
+
+NSAPI_PUBLIC int INTpblock_copy(const pblock *src, pblock *dst);
+
+NSAPI_PUBLIC pblock *INTpblock_dup(const pblock *src);
+
+NSAPI_PUBLIC char **INTpblock_pb2env(const pblock *pb, char **env);
+
+NSAPI_PUBLIC void pblock_nvreplace (const char *name, const char *value, pblock *pb);
+
+NSAPI_PUBLIC pb_param *pblock_param_create(pblock *pb, const char *name, const char *value);
+
+NSAPI_PUBLIC pblock *pblock_create_pool(pool_handle_t *pool_handle, int n);
+
+NSAPI_PUBLIC pb_param *INTpblock_fr(const char *name, pblock *pb, int remove);
+
+NSAPI_PUBLIC char *INTpblock_replace(const char *name,char * new_value,pblock *pb);
+
+NSAPI_PUBLIC int INTpblock_str2pblock_lowercasename(const char *str, pblock *pb);
+
+//NSAPI_PUBLIC pb_param *pblock_removeone(pblock *pb);
+
+//NSAPI_PUBLIC const pb_key *pblock_key(const char *name);
+
+//NSAPI_PUBLIC pb_param *pblock_key_param_create(pblock *pb, const pb_key *key, const char *value, int valuelen);
+
+//NSAPI_PUBLIC char *pblock_findkeyval(const pb_key *key, const pblock *pb);
+
+//NSAPI_PUBLIC pb_param *pblock_findkey(const pb_key *key, const pblock *pb);
+
+//NSAPI_PUBLIC pb_param *pblock_removekey(const pb_key *key, pblock *pb);
+
+//NSAPI_PUBLIC pb_param *pblock_kvinsert(const pb_key *key, const char *value, int valuelen, pblock *pb);
+
+//NSAPI_PUBLIC void pblock_kpinsert(const pb_key *key, pb_param *pp, pblock *pb);
+
+//NSAPI_PUBLIC void pblock_kvreplace(const pb_key *key, const char *value, int valuelen, pblock *pb);
+
+//NSAPI_PUBLIC pb_param *pblock_kninsert(const pb_key *key, int value, pblock *pb);
+
+//NSAPI_PUBLIC pb_param *pblock_kllinsert(const pb_key *key, PRInt64 value, pblock *pb);
+
+#define param_create INTparam_create
+#define param_free INTparam_free
+#define pblock_create INTpblock_create
+#define pblock_free INTpblock_free
+#define pblock_findval INTpblock_findval
+#define pblock_nvinsert INTpblock_nvinsert
+#define pblock_nninsert INTpblock_nninsert
+#define pblock_pinsert INTpblock_pinsert
+#define pblock_str2pblock INTpblock_str2pblock
+#define pblock_pblock2str INTpblock_pblock2str
+#define pblock_copy INTpblock_copy
+#define pblock_dup INTpblock_dup
+#define pblock_pb2env INTpblock_pb2env
+#define pblock_fr INTpblock_fr
+#define pblock_replace INTpblock_replace
+
+
+
+void protocol_status(Session *sn, Request *rq, int n, const char *m);
+
+int http_start_response(Session *sn, Request *rq);
 #define protocol_start_response http_start_response
-#define protocol_status http_status
-#define protocol_set_finfo http_set_finfo
-#define protocol_finish_request http_finish_request
-#define protocol_uri2url http_uri2url
-#define protocol_uri2url_dynamic http_uri2url_dynamic
+int request_header(char *name, char **value, Session *sn, Request *rq);
+
+typedef void (*thrstartfunc)(void *);
+SYS_THREAD INTsysthread_start(int prio, int stksz, thrstartfunc fn, void *arg);
+NSAPI_PUBLIC void INTsysthread_sleep(int milliseconds);
+
+#define systhread_start INTsysthread_start
+#define systhread_sleep INTsysthread_sleep
+
 
-#define request_translate_uri servact_translate_uri
+void webserver_atrestart(void (*fn)(void *), void *data);
+#define magnus_atrestart webserver_atrestart
+
+
+NSAPI_PUBLIC int INTshexp_match(const char *str, const char *exp);
+#define shexp_match INTshexp_match
+
+
+
+NSAPI_PUBLIC char *session_dns_lookup(Session *s, int verify);
+
 
 /* --- OBSOLETE ----------------------------------------------------------
  * The following macros/functions are obsolete and are only maintained for
@@ -1668,13 +1332,6 @@
 
 #else /* !XP_WIN32 */
 
-NSAPI_PUBLIC extern nsapi_dispatch_t *__nsapi30_table;
-#if NSAPI_VERSION >= 302
-NSAPI_PUBLIC extern nsapi302_dispatch_t *__nsapi302_table;
-#endif /* NSAPI_VERSION >= 302 */
-#if NSAPI_VERSION >= 303
-NSAPI_PUBLIC extern nsapi303_dispatch_t *__nsapi303_table;
-#endif /* NSAPI_VERSION >= 303 */
 
 #endif /* XP_WIN32 */
 

mercurial