httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexei Kosut <ako...@organic.com>
Subject Re: Whoa! It works!
Date Mon, 14 Jul 1997 18:28:39 GMT
On Mon, 14 Jul 1997, Ben Laurie wrote:

> > IMHO, this is a bad idea. There are a fair number of functions that
> > are
> > simply not used by our standard modules, but are definitely part of
> > the Apache module API.
> 
> Possibly so. Now, give me a list ;-)
> 
> > By tagging as needed, you may very well miss some of these. And then,
> > six months down the line, when, say, mod_php gets ported to Windows,
> > we find out we forgot to export bputs().
> 
> Uhuh, and 10 seconds later, it'll be fixed.

But it'll be a huge mess. "ten seconds later" won't fix the half a
million copies of 1.3 already out there.

I think it's better to go through the .h files, and tag the ones that we
think are API functions, and then if we miss any, fix them when a module
needs them.

Here's a list of functions not tagged with API_EXPORT that I think should
be (by the way, you *are* going to finish your makefile-reorganization,
right?), organized by header file.

It's amazing how many symbols make up the darn thing... And this list
doesn't include the ones you've already tagged, or the many "functions"
that are actually preprocessor macros:

alloc.h:
clear_pool()
bytes_in_pool()
bytes_in_free_blocks()

buff.h:
bcreate()
bpushfd()
bsetopt()
bgetopt()
bsetflag()
bonerror()
bread()
blookc()
bskiplf()
bputs()
bvputs()
bpritnf()
vbprintf()

http_conf_globals.h:
server_argv0

http_config.h:
set_flag_slot()
add_module()
add_named_module()
clear_module_list()
find_module_name()
find_linked_module()

http_log.h:
log_error()
log_unixerr()
log_printf()

http_main.h:
sync_scoreboard_image()

http_protocol.h:
set_content_length()
set_last_modified()
send_fd()
send_fd_length()
rputc()
rputs()
rwrite()
rvputs()
rprintf()
rflush()
set_byterange()
each_byterange()
client_to_stdout()
note_auth_failure()
note_basic_auth_failure()
note_digest_auth_failure()
get_basic_auth_pw()

http_request.h:
sub_req_lookup_uri()
sub_req_lookup_file()
run_sub_req()
destroy_sub_req()
internal_redirect()
is_initial_req()

httpd.h:
month_snames
get_gmtoff()
ht_time()
gm_timestr_822()
getword_nc()
getword_white()
getword_white_nc()
getword_nulls()
getword_conf_nc()
get_token()
find_token()
find_last_token()
unescape_url()
no2slash()
getparents()
escape_path_segment()
escape_html()
construct_server()
construct_url()
escape_shell_cmd()
count_dirs()
make_dirstr_prefix()
make_dirstr_parent()
make_dirstr()
make_full_path()
is_matchexp()
strcmp_match()
strcasecmp_match()
uudecode()
ind()
rind()
uname2id()
gname2id()
is_directory()
restart_time
log_assert()

multithread.h:
??? Most of these functions, probably; depends if we want 1.3 modules
    to be able to be internally multithreaded. Or we want to restrict
    that to 2.0 modules?

scoreboard.h:
sync_scoreboard_image()
get_scoreboard_info()
exists_socreboard_image()

util_md5.h:
md5()
md5contextTo64()
md5digest()

util_script.h:
find_path_info()
scan_script_header_err()
send_size()

-- Alexei Kosut <akosut@organic.com>


Mime
View raw message