[Remove entries to the current 2.0 section below, when backported]
+ *) Switch to APR 1.0 API.
+
*) Modify ap_get_client_block() to note if it has seen EOS.
[Justin Erenkrantz]
* @param tm the exploded time
* @param t the time to explode: MUST be within the last
* AP_TIME_RECENT_THRESHOLD seconds
- * @note This is a faster alternative to apr_explode_localtime that uses
+ * @note This is a faster alternative to apr_time_exp_lt that uses
* a cache of pre-exploded time structures. It is useful for things
* that need to explode the current time multiple times per second,
* like loggers.
*ptr = '\0';
/* Figure out what the extension is so that we can matche it. */
- ext = strrchr(apr_filename_of_pathname(cmd_only), '.');
+ ext = strrchr(apr_filepath_name_get(cmd_only), '.');
/* If there isn't an extension then give it an empty string */
if (!ext) {
{
apr_status_t rv;
- apr_pool_sub_make(&loaded.pool, pconf, NULL);
+ apr_pool_create_ex(&loaded.pool, pconf, NULL, NULL);
if (!loaded.pool) {
ap_log_error(APLOG_MARK, APLOG_ERR, APR_EGENERAL, NULL,
"ISAPI: could not create the isapi cache pool");
* win32 parsing here, therefore the final extension is the only one
* we will consider.
*/
- ext = strrchr(apr_filename_of_pathname(*cmd), '.');
+ ext = strrchr(apr_filepath_name_get(*cmd), '.');
/* If the file has an extension and it is not .com and not .exe and
* we've been instructed to search the registry, then do so.
apr_mmap_t *mm;
apr_bucket_brigade *bb = apr_brigade_create(r->pool, c->bucket_alloc);
- apr_mmap_dup(&mm, file->mm, r->pool, 0);
+ apr_mmap_dup(&mm, file->mm, r->pool);
b = apr_bucket_mmap_create(mm, 0, (apr_size_t)file->finfo.size,
c->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(bb, b);
apr_status_t rv;
/* if we don't see the file, then it's a locknull */
- rv = apr_lstat(&finfo, fname, APR_FINFO_MIN, p);
+ rv = apr_stat(&finfo, fname, APR_FINFO_MIN | APR_FINFO_LINK, p);
if (rv != APR_SUCCESS && rv != APR_INCOMPLETE) {
if ((err = dav_fs_remove_locknull_member(p, fname, &buf)) != NULL) {
/* ### push a higher-level description? */
/* ### Optimize me, dirent can give us what we need! */
- status = apr_lstat(&fsctx->info1.finfo, fsctx->path1.buf,
- APR_FINFO_NORM, pool);
+ status = apr_stat(&fsctx->info1.finfo, fsctx->path1.buf,
+ APR_FINFO_NORM | APR_FINFO_LINK, pool);
if (status != APR_SUCCESS && status != APR_INCOMPLETE) {
/* woah! where'd it go? */
/* ### should have a better error here */
if (rv != APR_SUCCESS) {
return rv;
}
- apr_file_unset_inherit(tmpfile);
+ apr_file_inherit_unset(tmpfile);
apr_os_file_get(&(mobj->fd), tmpfile);
/* Open for business */
val = ap_ht_time(r->pool, r->finfo.mtime, conf->default_time_fmt, 0);
}
else if (!strcasecmp(var, "USER_NAME")) {
- if (apr_get_username(&val, r->finfo.user, r->pool) != APR_SUCCESS) {
+ if (apr_uid_name_get(&val, r->finfo.user, r->pool) != APR_SUCCESS) {
val = "<unknown>";
}
}
*/
#ifdef CASE_BLIND_FILESYSTEM
-#define MATCH_FLAGS FNM_CASE_BLIND
+#define MATCH_FLAGS APR_FNM_CASE_BLIND
#else
#define MATCH_FLAGS 0
#endif
#ifndef CASE_BLIND_FILESYSTEM
if (pattern && (apr_fnmatch(pattern, dirent->name,
- FNM_NOESCAPE | FNM_PERIOD)
+ APR_FNM_NOESCAPE | APR_FNM_PERIOD)
!= APR_SUCCESS))
return (NULL);
#else /* !CASE_BLIND_FILESYSTEM */
* reliably - so we have to granularise at the OS level.
*/
if (pattern && (apr_fnmatch(pattern, dirent->name,
- FNM_NOESCAPE | FNM_PERIOD | FNM_CASE_BLIND)
+ APR_FNM_NOESCAPE | APR_FNM_PERIOD | APR_FNM_CASE_BLIND)
!= APR_SUCCESS))
return (NULL);
#endif /* !CASE_BLIND_FILESYSTEM */
/* Bad things happened. Everyone should have cleaned up. */
ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_TOCLIENT, rc, r,
"couldn't create child process: %d: %s", rc,
- apr_filename_of_pathname(r->filename));
+ apr_filepath_name_get(r->filename));
}
else {
apr_pool_note_subprocess(p, procnew, APR_KILL_AFTER_TIMEOUT);
return DECLINED;
}
- argv0 = apr_filename_of_pathname(r->filename);
+ argv0 = apr_filepath_name_get(r->filename);
nph = !(strncmp(argv0, "nph-", 4));
conf = ap_get_module_config(r->server->module_config, &cgi_module);
*/
ap_log_error(APLOG_MARK, APLOG_ERR, rc, r->server,
"couldn't create child process: %d: %s", rc,
- apr_filename_of_pathname(r->filename));
+ apr_filepath_name_get(r->filename));
}
else {
apr_hash_set(script_hash, &cgid_req.conn_id, sizeof(cgid_req.conn_id),
break;
}
mime_info.bytes = len;
- mime_info.file_name = apr_filename_of_pathname(rr->filename);
+ mime_info.file_name = apr_filepath_name_get(rr->filename);
}
}
else {
case CONDPAT_FILE_LINK:
#if !defined(OS2)
- if ( apr_lstat(&sb, input, APR_FINFO_MIN, r->pool) == APR_SUCCESS
+ if ( apr_stat(&sb, input, APR_FINFO_MIN | APR_FINFO_LINK, r->pool) == APR_SUCCESS
&& sb.filetype == APR_LNK) {
rc = 1;
}
#if APR_HAS_USER
char *homedir;
- if (apr_get_home_directory(&homedir, w, r->pool) == APR_SUCCESS) {
+ if (apr_uid_homepath_get(&homedir, w, r->pool) == APR_SUCCESS) {
filename = apr_pstrcat(r->pool, homedir, "/", userdir, NULL);
}
#else
return NULL;
}
- if (apr_get_userid(&ugid->uid, &ugid->gid, username, r->pool) != APR_SUCCESS) {
+ if (apr_uid_get(&ugid->uid, &ugid->gid, username, r->pool) != APR_SUCCESS) {
return NULL;
}
if ((rv = apr_socket_create(newsock,
localsa->family, /* has to match */
- SOCK_STREAM, conn->pool)) != APR_SUCCESS) {
+ SOCK_STREAM, 0, conn->pool)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, rv, srv,
"rfc1413: error creating query socket");
return rv;
* addresses from the query socket.
*/
- if ((rv = apr_bind(*newsock, localsa)) != APR_SUCCESS) {
+ if ((rv = apr_socket_bind(*newsock, localsa)) != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, rv, srv,
"rfc1413: Error binding query socket to local port");
apr_socket_close(*newsock);
* errors from connect usually imply the remote machine doesn't support
* the service; don't log such an error
*/
- if ((rv = apr_connect(*newsock, destsa)) != APR_SUCCESS) {
+ if ((rv = apr_socket_connect(*newsock, destsa)) != APR_SUCCESS) {
apr_socket_close(*newsock);
return rv;
}
while (i < buflen) {
apr_size_t j = strlen(buffer + i);
apr_status_t status;
- status = apr_send(sock, buffer+i, &j);
+ status = apr_socket_send(sock, buffer+i, &j);
if (status != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, status, srv,
"write: rfc1413: error sending request");
while((cp = strchr(buffer, '\012')) == NULL && i < sizeof(buffer) - 1) {
apr_size_t j = sizeof(buffer) - 1 - i;
apr_status_t status;
- status = apr_recv(sock, buffer+i, &j);
+ status = apr_socket_recv(sock, buffer+i, &j);
if (status != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, status, srv,
"read: rfc1413: error reading response");
"proxy: CONNECT: sending the CONNECT request to the remote proxy");
nbytes = apr_snprintf(buffer, sizeof(buffer),
"CONNECT %s HTTP/1.0" CRLF, r->uri);
- apr_send(sock, buffer, &nbytes);
+ apr_socket_send(sock, buffer, &nbytes);
nbytes = apr_snprintf(buffer, sizeof(buffer),
"Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
- apr_send(sock, buffer, &nbytes);
+ apr_socket_send(sock, buffer, &nbytes);
}
else {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
nbytes = apr_snprintf(buffer, sizeof(buffer),
"HTTP/1.0 200 Connection Established" CRLF);
ap_xlate_proto_to_ascii(buffer, nbytes);
- apr_send(client_socket, buffer, &nbytes);
+ apr_socket_send(client_socket, buffer, &nbytes);
nbytes = apr_snprintf(buffer, sizeof(buffer),
"Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
ap_xlate_proto_to_ascii(buffer, nbytes);
- apr_send(client_socket, buffer, &nbytes);
+ apr_socket_send(client_socket, buffer, &nbytes);
#if 0
/* This is safer code, but it doesn't work yet. I'm leaving it
* here so that I can fix it later.
/* ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
"proxy: CONNECT: sock was set");*/
nbytes = sizeof(buffer);
- if (apr_recv(sock, buffer, &nbytes) == APR_SUCCESS) {
+ if (apr_socket_recv(sock, buffer, &nbytes) == APR_SUCCESS) {
o = 0;
i = nbytes;
while(i > 0)
* if ((nbytes = ap_rwrite(buffer + o, nbytes, r)) < 0)
* rbb
*/
- if (apr_send(client_socket, buffer + o, &nbytes) != APR_SUCCESS)
+ if (apr_socket_send(client_socket, buffer + o, &nbytes) != APR_SUCCESS)
break;
o += nbytes;
i -= nbytes;
/* ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
"proxy: CONNECT: client was set");*/
nbytes = sizeof(buffer);
- if (apr_recv(client_socket, buffer, &nbytes) == APR_SUCCESS) {
+ if (apr_socket_recv(client_socket, buffer, &nbytes) == APR_SUCCESS) {
o = 0;
i = nbytes;
while(i > 0)
{
nbytes = i;
- if (apr_send(sock, buffer + o, &nbytes) != APR_SUCCESS)
+ if (apr_socket_send(sock, buffer + o, &nbytes) != APR_SUCCESS)
break;
o += nbytes;
i -= nbytes;
int failed = 1;
while (connect_addr) {
- if ((rv = apr_socket_create(&sock, connect_addr->family, SOCK_STREAM, r->pool)) != APR_SUCCESS) {
+ if ((rv = apr_socket_create(&sock, connect_addr->family, SOCK_STREAM, 0, r->pool)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"proxy: FTP: error creating socket");
connect_addr = connect_addr->next;
connect_addr->family, connect_addr, connectname);
/* make the connection out of the socket */
- rv = apr_connect(sock, connect_addr);
+ rv = apr_socket_connect(sock, connect_addr);
/* if an error occurred, loop round and try again */
if (rv != APR_SUCCESS) {
"proxy: FTP: EPSV contacting remote host on port %d",
data_port);
- if ((rv = apr_socket_create(&data_sock, connect_addr->family, SOCK_STREAM, r->pool)) != APR_SUCCESS) {
+ if ((rv = apr_socket_create(&data_sock, connect_addr->family, SOCK_STREAM, 0, r->pool)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"proxy: FTP: error creating EPSV socket");
return HTTP_INTERNAL_SERVER_ERROR;
apr_socket_addr_get(&data_addr, APR_REMOTE, sock);
apr_sockaddr_ip_get(&data_ip, data_addr);
apr_sockaddr_info_get(&epsv_addr, data_ip, connect_addr->family, data_port, 0, p);
- rv = apr_connect(data_sock, epsv_addr);
+ rv = apr_socket_connect(data_sock, epsv_addr);
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, r->server,
"proxy: FTP: EPSV attempt to connect to %pI failed - Firewall/NAT?", epsv_addr);
"proxy: FTP: PASV contacting host %d.%d.%d.%d:%d",
h3, h2, h1, h0, pasvport);
- if ((rv = apr_socket_create(&data_sock, connect_addr->family, SOCK_STREAM, r->pool)) != APR_SUCCESS) {
+ if ((rv = apr_socket_create(&data_sock, connect_addr->family, SOCK_STREAM, 0, r->pool)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"proxy: error creating PASV socket");
return HTTP_INTERNAL_SERVER_ERROR;
/* make the connection */
apr_sockaddr_info_get(&pasv_addr, apr_psprintf(p, "%d.%d.%d.%d", h3, h2, h1, h0), connect_addr->family, pasvport, 0, p);
- rv = apr_connect(data_sock, pasv_addr);
+ rv = apr_socket_connect(data_sock, pasv_addr);
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, r->server,
"proxy: FTP: PASV attempt to connect to %pI failed - Firewall/NAT?", pasv_addr);
apr_port_t local_port;
unsigned int h0, h1, h2, h3, p0, p1;
- if ((rv = apr_socket_create(&local_sock, connect_addr->family, SOCK_STREAM, r->pool)) != APR_SUCCESS) {
+ if ((rv = apr_socket_create(&local_sock, connect_addr->family, SOCK_STREAM, 0, r->pool)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"proxy: FTP: error creating local socket");
return HTTP_INTERNAL_SERVER_ERROR;
apr_sockaddr_info_get(&local_addr, local_ip, APR_UNSPEC, local_port, 0, r->pool);
- if ((rv = apr_bind(local_sock, local_addr)) != APR_SUCCESS) {
+ if ((rv = apr_socket_bind(local_sock, local_addr)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"proxy: FTP: error binding to ftp data socket %pI", local_addr);
return HTTP_INTERNAL_SERVER_ERROR;
}
/* only need a short queue */
- if ((rv = apr_listen(local_sock, 2)) != APR_SUCCESS) {
+ if ((rv = apr_socket_listen(local_sock, 2)) != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
"proxy: FTP: error listening to ftp data socket %pI", local_addr);
return HTTP_INTERNAL_SERVER_ERROR;
/* wait for connection */
if (use_port) {
for (;;) {
- rv = apr_accept(&data_sock, local_sock, r->pool);
+ rv = apr_socket_accept(&data_sock, local_sock, r->pool);
if (rv == APR_EINTR) {
continue;
}
apr_socket_timeout_get(p_conn->sock, ¤t_timeout);
/* set no timeout */
apr_socket_timeout_set(p_conn->sock, 0);
- socket_status = apr_recv(p_conn->sock, test_buffer, &buffer_len);
+ socket_status = apr_socket_recv(p_conn->sock, test_buffer, &buffer_len);
/* put back old timeout */
apr_socket_timeout_set(p_conn->sock, current_timeout);
if ( APR_STATUS_IS_EOF(socket_status) ) {
while (backend_addr && !connected) {
if ((rv = apr_socket_create(newsock, backend_addr->family,
- SOCK_STREAM, p)) != APR_SUCCESS) {
+ SOCK_STREAM, 0, p)) != APR_SUCCESS) {
loglevel = backend_addr->next ? APLOG_DEBUG : APLOG_ERR;
ap_log_error(APLOG_MARK, loglevel, rv, s,
"proxy: %s: error creating fam %d socket for target %s",
proxy_function, backend_addr->family, backend_name);
/* make the connection out of the socket */
- rv = apr_connect(*newsock, backend_addr);
+ rv = apr_socket_connect(*newsock, backend_addr);
/* if an error occurred, loop round and try again */
if (rv != APR_SUCCESS) {
}
if (SSL_X509_getCN(ptemp, cert, &cn)) {
- int fnm_flags = FNM_PERIOD|FNM_CASE_BLIND;
+ int fnm_flags = APR_FNM_PERIOD|APR_FNM_CASE_BLIND;
if (apr_fnmatch_test(cn) &&
(apr_fnmatch(cn, s->server_hostname,
- fnm_flags) == FNM_NOMATCH))
+ fnm_flags) == APR_FNM_NOMATCH))
{
ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s,
"%s server certificate wildcard CommonName (CN) `%s' "
SSLModConfigRec *mc = myModConfig(s);
apr_pool_t *p;
- apr_pool_sub_make(&p, mc->pPool, NULL);
+ apr_pool_create_ex(&p, mc->pPool, NULL, NULL);
if (p != NULL) {
/* the correct way */
unlink(apr_pstrcat(p, mc->szSessionCacheDataFile, SSL_DBM_FILE_SUFFIX_DIR, NULL));
ssl_mutex_on(s);
for (;;) {
/* allocate the key array in a memory sub pool */
- apr_pool_sub_make(&p, mc->pPool, NULL);
+ apr_pool_create_ex(&p, mc->pPool, NULL, NULL);
if (p == NULL)
break;
if ((keylist = apr_palloc(p, sizeof(dbmkey)*KEYMAX)) == NULL) {
apr_status_t status;
int sockdes;
- status = apr_accept(&csd, lr->sd, ptrans);
+ status = apr_socket_accept(&csd, lr->sd, ptrans);
if (status == APR_SUCCESS) {
*accepted = csd;
apr_os_sock_get(&sockdes, csd);
* occur in mobile IP.
*/
ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf,
- "apr_accept: giving up.");
+ "apr_socket_accept: giving up.");
return APR_EGENERAL;
#endif /*ENETDOWN*/
default:
ap_log_error(APLOG_MARK, APLOG_ERR, status, ap_server_conf,
- "apr_accept: (client socket)");
+ "apr_socket_accept: (client socket)");
return APR_EGENERAL;
}
return status;
int sockdes;
*accepted = NULL;
- status = apr_accept(&csd, lr->sd, ptrans);
+ status = apr_socket_accept(&csd, lr->sd, ptrans);
if (status == APR_SUCCESS) {
*accepted = csd;
apr_os_sock_get(&sockdes, csd);
* occur in mobile IP.
*/
ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf,
- "apr_accept: giving up.");
+ "apr_socket_accept: giving up.");
return APR_EGENERAL;
#endif /*ENETDOWN*/
#else
default:
ap_log_error(APLOG_MARK, APLOG_ERR, status, ap_server_conf,
- "apr_accept: (client socket)");
+ "apr_socket_accept: (client socket)");
return APR_EGENERAL;
#endif
}
&& !(strcmp(fname, ap_server_root_relative(p, SERVER_CONFIG_FILE)))) {
apr_finfo_t finfo;
- if (apr_lstat(&finfo, fname, APR_FINFO_TYPE, p) != APR_SUCCESS)
+ if (apr_stat(&finfo, fname, APR_FINFO_LINK | APR_FINFO_TYPE, p) != APR_SUCCESS)
return;
}
if (strcmp(dirent.name, ".")
&& strcmp(dirent.name, "..")
&& (apr_fnmatch(pattern, dirent.name,
- FNM_PERIOD) == APR_SUCCESS)) {
+ APR_FNM_PERIOD) == APR_SUCCESS)) {
fnew = (fnames *) apr_array_push(candidates);
fnew->fname = ap_make_full_path(p, path, dirent.name);
}
/* Shut down the socket for write, which will send a FIN
* to the peer.
*/
- if (apr_shutdown(csd, APR_SHUTDOWN_WRITE) != APR_SUCCESS
+ if (apr_socket_shutdown(csd, APR_SHUTDOWN_WRITE) != APR_SUCCESS
|| c->aborted) {
apr_socket_close(csd);
return;
apr_socket_opt_set(csd, APR_INCOMPLETE_READ, 1);
while (1) {
nbytes = sizeof(dummybuf);
- rc = apr_recv(csd, dummybuf, &nbytes);
+ rc = apr_socket_recv(csd, dummybuf, &nbytes);
if (rc != APR_SUCCESS || nbytes == 0)
break;
/* XXX handle checking for non-blocking socket */
while (bytes_written != len) {
- rv = apr_sendv(s, vec + i, nvec - i, &n);
+ rv = apr_socket_sendv(s, vec + i, nvec - i, &n);
bytes_written += n;
if (rv != APR_SUCCESS)
return rv;
*nbytes += n;
/* If the write did not complete, adjust the iovecs and issue
- * apr_sendv again
+ * apr_socket_sendv again
*/
if (bytes_written < len) {
/* Skip over the vectors that have already been written */
do {
apr_size_t tmplen = file_bytes_left;
- rv = apr_sendfile(c->client_socket, fd, hdtr, &file_offset, &tmplen,
- flags);
+ rv = apr_socket_sendfile(c->client_socket, fd, hdtr, &file_offset, &tmplen,
+ flags);
*bytes_sent += tmplen;
total_bytes_left -= tmplen;
if (!total_bytes_left || rv != APR_SUCCESS) {
rv = apr_file_read(fd, buffer, &sendlen);
while (rv == APR_SUCCESS && sendlen) {
bytes_sent = sendlen;
- rv = apr_send(c->client_socket, &buffer[o], &bytes_sent);
+ rv = apr_socket_send(c->client_socket, &buffer[o], &bytes_sent);
if (rv == APR_SUCCESS) {
sendlen -= bytes_sent; /* sendlen != bytes_sent ==> partial write */
o += bytes_sent; /* o is where we are in the buffer */
ap_sock_disable_nagle(s);
#endif
- if ((stat = apr_bind(s, server->bind_addr)) != APR_SUCCESS) {
+ if ((stat = apr_socket_bind(s, server->bind_addr)) != APR_SUCCESS) {
ap_log_perror(APLOG_MARK, APLOG_STARTUP|APLOG_CRIT, stat, p,
"make_sock: could not bind to address %pI",
server->bind_addr);
return stat;
}
- if ((stat = apr_listen(s, ap_listenbacklog)) != APR_SUCCESS) {
+ if ((stat = apr_socket_listen(s, ap_listenbacklog)) != APR_SUCCESS) {
ap_log_perror(APLOG_MARK, APLOG_STARTUP|APLOG_ERR, stat, p,
"make_sock: unable to listen for connections "
"on address %pI",
sa = sa->next;
status = apr_socket_create(&new->sd, new->bind_addr->family,
- SOCK_STREAM, process->pool);
+ SOCK_STREAM, 0, process->pool);
#if APR_HAVE_IPV6
/* What could happen is that we got an IPv6 address, but this system
apr_pool_tag(process->pconf, "pconf");
process->argc = argc;
process->argv = argv;
- process->short_name = apr_filename_of_pathname(argv[0]);
+ process->short_name = apr_filepath_name_get(argv[0]);
return process;
}
int i = 0;
for (i = 0 ; i < ap_max_child_assigned; i++){
len = 4;
- if (apr_sendto(udp_sock, udp_sa, 0, "die!", &len) != APR_SUCCESS)
+ if (apr_socket_sendto(udp_sock, udp_sa, 0, "die!", &len) != APR_SUCCESS)
break;
}
}
char *tmpbuf = apr_palloc(ptrans, sizeof(char) * 5);
apr_sockaddr_info_get(&rec_sa, "127.0.0.1", APR_UNSPEC, 7772, 0, ptrans);
- if ((ret = apr_recvfrom(rec_sa, listening_sockets[0], 0, tmpbuf, &len))
+ if ((ret = apr_socket_recvfrom(rec_sa, listening_sockets[0], 0, tmpbuf, &len))
!= APR_SUCCESS){
ap_log_error(APLOG_MARK, APLOG_ERR, ret, NULL,
"error getting data from UDP!!");
got_fd:
if (!this_worker_should_exit) {
- rv = apr_accept(&csd, sd, ptrans);
+ rv = apr_socket_accept(&csd, sd, ptrans);
apr_thread_mutex_unlock(accept_mutex);
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, ap_server_conf,
- "apr_accept");
+ "apr_socket_accept");
} else {
process_socket(ptrans, csd, child_slot, bucket_alloc);
requests_this_child--;
"couldn't create control socket information, shutting down");
return 1;
}
- if (apr_socket_create(&udp_sock, udp_sa->family, SOCK_DGRAM,
- _pconf) != APR_SUCCESS){
+ if (apr_socket_create(&udp_sock, udp_sa->family, SOCK_DGRAM, 0,
+ _pconf) != APR_SUCCESS){
ap_log_error(APLOG_MARK, APLOG_ALERT, errno, s,
"couldn't create control socket, shutting down");
return 1;
}
- if (apr_bind(udp_sock, udp_sa) != APR_SUCCESS){
+ if (apr_socket_bind(udp_sock, udp_sa) != APR_SUCCESS){
ap_log_error(APLOG_MARK, APLOG_ALERT, errno, s,
"couldn't bind UDP socket!");
return 1;
char pipe_read_char;
apr_size_t n = 1;
- ret = apr_recv(lr->sd, &pipe_read_char, &n);
+ ret = apr_socket_recv(lr->sd, &pipe_read_char, &n);
if (APR_STATUS_IS_EAGAIN(ret)) {
/* It lost the lottery. It must continue to suffer
* through a life of servitude. */
apr_sockaddr_info_get(&lr->bind_addr, "0.0.0.0", APR_UNSPEC,
DEFAULT_HTTP_PORT, 0, s->process->pool);
apr_socket_create(&lr->sd, lr->bind_addr->family,
- SOCK_STREAM, s->process->pool);
+ SOCK_STREAM, 0, s->process->pool);
}
for (lr = ap_listeners; lr; lr = lr->next) {
worker_args->pconn = pconn;
if (num_listeners == 1) {
- rv = apr_accept(&worker_args->conn_sd, ap_listeners->sd, pconn);
+ rv = apr_socket_accept(&worker_args->conn_sd, ap_listeners->sd, pconn);
} else {
rc = DosRequestMutexSem(ap_mpm_accept_mutex, SEM_INDEFINITE_WAIT);
}
sd = lr->sd;
- rv = apr_accept(&worker_args->conn_sd, sd, pconn);
+ rv = apr_socket_accept(&worker_args->conn_sd, sd, pconn);
}
}
if (rv != APR_SUCCESS) {
if (!APR_STATUS_IS_EINTR(rv)) {
ap_log_error(APLOG_MARK, APLOG_ERR, rv, ap_server_conf,
- "apr_accept");
+ "apr_socket_accept");
clean_child_exit(APEXIT_CHILDFATAL);
}
} else {
wouldblock_retry = MAX_WB_RETRIES;
while (wouldblock_retry) {
- if ((stat = apr_accept(&csd, sd, ptrans)) == APR_SUCCESS) {
+ if ((stat = apr_socket_accept(&csd, sd, ptrans)) == APR_SUCCESS) {
break;
}
else {
* occur in mobile IP.
*/
ap_log_error(APLOG_MARK, APLOG_EMERG, stat, ap_server_conf,
- "apr_accept: giving up.");
+ "apr_socket_accept: giving up.");
clean_child_exit(APEXIT_CHILDFATAL, my_worker_num, ptrans,
bucket_alloc);
}
else {
ap_log_error(APLOG_MARK, APLOG_ERR, stat, ap_server_conf,
- "apr_accept: (client socket)");
+ "apr_socket_accept: (client socket)");
clean_child_exit(1, my_worker_num, ptrans, bucket_alloc);
}
}
char *cmd;
char *cwd;
- apr_pool_sub_make(&ptemp, p, NULL);
+ apr_pool_create_ex(&ptemp, p, NULL, NULL);
/* Build the command line. Should look something like this:
* C:/apache/bin/apache.exe -f ap_server_confname
/* WARNING: There is an implict assumption here that the
* executable resides in ServerRoot or ServerRoot\bin
*/
- def_server_root = (char *) apr_filename_of_pathname(binpath);
+ def_server_root = (char *) apr_filepath_name_get(binpath);
if (def_server_root > binpath) {
*(def_server_root - 1) = '\0';
- def_server_root = (char *) apr_filename_of_pathname(binpath);
+ def_server_root = (char *) apr_filepath_name_get(binpath);
if (!strcasecmp(def_server_root, "bin"))
*(def_server_root - 1) = '\0';
}
apr_status_t rv;
apr_pool_t *p;
- apr_pool_sub_make(&p, NULL, NULL);
+ apr_pool_create_ex(&p, NULL, NULL, NULL);
errarg[0] = "The Apache service named";
errarg[1] = display_name;
(*pod)->p = p;
/* close these before exec. */
- apr_file_unset_inherit((*pod)->pod_in);
- apr_file_unset_inherit((*pod)->pod_out);
+ apr_file_inherit_unset((*pod)->pod_in);
+ apr_file_inherit_unset((*pod)->pod_out);
return APR_SUCCESS;
}
APR_UNSPEC, ap_listeners->bind_addr->port, 0, p);
/* close these before exec. */
- apr_file_unset_inherit((*pod)->pod_in);
- apr_file_unset_inherit((*pod)->pod_out);
+ apr_file_inherit_unset((*pod)->pod_in);
+ apr_file_inherit_unset((*pod)->pod_out);
return APR_SUCCESS;
}
return rv;
}
- rv = apr_socket_create(&sock, pod->sa->family, SOCK_STREAM, p);
+ rv = apr_socket_create(&sock, pod->sa->family, SOCK_STREAM, 0, p);
if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_WARNING, rv, ap_server_conf,
"get socket to connect to listener");
return rv;
}
- rv = apr_connect(sock, pod->sa);
+ rv = apr_socket_connect(sock, pod->sa);
if (rv != APR_SUCCESS) {
int log_level = APLOG_WARNING;
* owner of the symlink, then get the info of the target.
*/
if (!(lfi->valid & APR_FINFO_OWNER)) {
- if ((res = apr_lstat(&fi, d, lfi->valid | APR_FINFO_OWNER, p))
+ if ((res = apr_stat(&fi, d,
+ lfi->valid | APR_FINFO_LINK | APR_FINFO_OWNER, p))
!= APR_SUCCESS) {
return HTTP_FORBIDDEN;
}
return HTTP_FORBIDDEN;
}
- if (apr_compare_users(fi.user, lfi->user) != APR_SUCCESS) {
+ if (apr_uid_compare(fi.user, lfi->user) != APR_SUCCESS) {
return HTTP_FORBIDDEN;
}
&& ((entry_core->d_components < seg)
|| (entry_core->d_is_fnmatch
? (apr_fnmatch(entry_core->d, r->filename,
- FNM_PATHNAME) != APR_SUCCESS)
+ APR_FNM_PATHNAME) != APR_SUCCESS)
: (strcmp(r->filename, entry_core->d) != 0)))) {
continue;
}
continue;
}
- /* We choose apr_lstat here, rather that apr_stat, so that we
- * capture this path object rather than its target. We will
- * replace the info with our target's info below. We especially
- * want the name of this 'link' object, not the name of its
- * target, if we are fixing the filename case/resolving aliases.
+ /* We choose apr_stat with flag APR_FINFO_LINK here, rather that
+ * plain apr_stat, so that we capture this path object rather than
+ * its target. We will replace the info with our target's info
+ * below. We especially want the name of this 'link' object, not
+ * the name of its target, if we are fixing the filename
+ * case/resolving aliases.
*/
- rv = apr_lstat(&thisinfo, r->filename,
- APR_FINFO_MIN | APR_FINFO_NAME, r->pool);
+ rv = apr_stat(&thisinfo, r->filename,
+ APR_FINFO_MIN | APR_FINFO_NAME | APR_FINFO_LINK,
+ r->pool);
if (APR_STATUS_IS_ENOENT(rv)) {
/* Nothing? That could be nice. But our directory
if (entry_core->r
? ap_regexec(entry_core->r, r->uri, 0, NULL, 0)
: (entry_core->d_is_fnmatch
- ? apr_fnmatch(entry_core->d, cache->cached, FNM_PATHNAME)
+ ? apr_fnmatch(entry_core->d, cache->cached, APR_FNM_PATHNAME)
: (strncmp(entry_core->d, cache->cached, len)
|| (entry_core->d[len - 1] != '/'
&& cache->cached[len] != '/'
if (entry_core->r
? ap_regexec(entry_core->r, cache->cached , 0, NULL, 0)
: (entry_core->d_is_fnmatch
- ? apr_fnmatch(entry_core->d, cache->cached, FNM_PATHNAME)
+ ? apr_fnmatch(entry_core->d, cache->cached, APR_FNM_PATHNAME)
: strcmp(entry_core->d, cache->cached))) {
continue;
}
if ((dirent->valid & APR_FINFO_MIN) != APR_FINFO_MIN) {
/*
* apr_dir_read isn't very complete on this platform, so
- * we need another apr_lstat (or simply apr_stat if we allow
- * all symlinks here.) If this is an APR_LNK that resolves
- * to an APR_DIR, then we will rerun everything anyways...
- * this should be safe.
+ * we need another apr_stat (with or without APR_FINFO_LINK
+ * depending on whether we allow all symlinks here.) If this
+ * is an APR_LNK that resolves to an APR_DIR, then we will rerun
+ * everything anyways... this should be safe.
*/
apr_status_t rv;
if (ap_allow_options(rnew) & OPT_SYM_LINKS) {
}
}
else {
- if (((rv = apr_lstat(&rnew->finfo, rnew->filename,
- APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS)
+ if (((rv = apr_stat(&rnew->finfo, rnew->filename,
+ APR_FINFO_LINK | APR_FINFO_MIN,
+ rnew->pool)) != APR_SUCCESS)
&& (rv != APR_INCOMPLETE)) {
rnew->finfo.filetype = 0;
}
}
}
else {
- if (((rv = apr_lstat(&rnew->finfo, rnew->filename,
- APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS)
+ if (((rv = apr_stat(&rnew->finfo, rnew->filename,
+ APR_FINFO_LINK | APR_FINFO_MIN,
+ rnew->pool)) != APR_SUCCESS)
&& (rv != APR_INCOMPLETE)) {
rnew->finfo.filetype = 0;
}
if (finfo.filetype != APR_REG &&
#if defined(WIN32) || defined(OS2) || defined(NETWARE)
- strcasecmp(apr_filename_of_pathname(name), "nul") != 0) {
+ strcasecmp(apr_filepath_name_get(name), "nul") != 0) {
#else
strcmp(name, "/dev/null") != 0) {
#endif /* WIN32 || OS2 */
{
apr_finfo_t finfo;
- if (apr_lstat(&finfo, path, APR_FINFO_TYPE, p) != APR_SUCCESS)
+ if (apr_stat(&finfo, path, APR_FINFO_LINK | APR_FINFO_TYPE, p) != APR_SUCCESS)
return 0; /* in error condition, just return no */
return (finfo.filetype == APR_DIR);
if ((*getsfunc) (w, MAX_STRING_LEN - 1, getsfunc_data) == 0) {
ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_TOCLIENT, 0, r,
"Premature end of script headers: %s",
- apr_filename_of_pathname(r->filename));
+ apr_filepath_name_get(r->filename));
return HTTP_INTERNAL_SERVER_ERROR;
}
ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_TOCLIENT, 0, r,
"%s: %s", malformed,
- apr_filename_of_pathname(r->filename));
+ apr_filepath_name_get(r->filename));
return HTTP_INTERNAL_SERVER_ERROR;
}
** Version 2.0.36-dev
** Improvements to concurrent processing:
** - Enabled non-blocking connect()s.
- ** - Prevent blocking calls to apr_recv() (thereby allowing AB to
+ ** - Prevent blocking calls to apr_socket_recv() (thereby allowing AB to
** manage its entire set of socket descriptors).
- ** - Any error returned from apr_recv() that is not EAGAIN or EOF
+ ** - Any error returned from apr_socket_recv() that is not EAGAIN or EOF
** is now treated as fatal.
** Contributed by Aaron Bannert, April 24, 2002
**
}
else
#endif
- e = apr_send(c->aprsock, request + c->rwrote, &l);
+ e = apr_socket_send(c->aprsock, request + c->rwrote, &l);
/*
* Bail early on the most common case
apr_pool_create(&c->ctx, cntxt);
if ((rv = apr_socket_create(&c->aprsock, destsa->family,
- SOCK_STREAM, c->ctx)) != APR_SUCCESS) {
+ SOCK_STREAM, 0, c->ctx)) != APR_SUCCESS) {
apr_err("socket", rv);
}
if ((rv = apr_socket_opt_set(c->aprsock, APR_SO_NONBLOCK, 1))
apr_err("socket nonblock", rv);
}
c->start = apr_time_now();
- if ((rv = apr_connect(c->aprsock, destsa)) != APR_SUCCESS) {
+ if ((rv = apr_socket_connect(c->aprsock, destsa)) != APR_SUCCESS) {
if (APR_STATUS_IS_EINPROGRESS(rv)) {
apr_pollfd_t new_pollfd;
c->state = STATE_CONNECTING;
if (bad++ > 10) {
fprintf(stderr,
"\nTest aborted after 10 failures\n\n");
- apr_err("apr_connect()", rv);
+ apr_err("apr_socket_connect()", rv);
}
c->state = STATE_UNCONNECTED;
start_connect(c);
}
else {
#endif
- status = apr_recv(c->aprsock, buffer, &r);
+ status = apr_socket_recv(c->aprsock, buffer, &r);
if (APR_STATUS_IS_EAGAIN(status))
return;
else if (r == 0 && APR_STATUS_IS_EOF(status)) {
close_connection(c);
return;
}
- /* catch legitimate fatal apr_recv errors */
+ /* catch legitimate fatal apr_socket_recv errors */
else if (status != APR_SUCCESS) {
err_except++; /* XXX: is this the right error counter? */
/* XXX: Should errors here be fatal, or should we allow a
* certain number of them before completely failing? -aaron */
- apr_err("apr_recv", status);
+ apr_err("apr_socket_recv", status);
}
#ifdef USE_SSL
}
if (rv & APR_POLLOUT) {
if (c->state == STATE_CONNECTING) {
apr_pollfd_t remove_pollfd;
- rv = apr_connect(c->aprsock, destsa);
+ rv = apr_socket_connect(c->aprsock, destsa);
remove_pollfd.desc_type = APR_POLL_SOCKET;
remove_pollfd.desc.s = c->aprsock;
apr_pollset_remove(readbits, &remove_pollfd);
if (bad++ > 10) {
fprintf(stderr,
"\nTest aborted after 10 failures\n\n");
- apr_err("apr_connect()", rv);
+ apr_err("apr_socket_connect()", rv);
}
c->state = STATE_UNCONNECTED;
start_connect(c);
static void copyright(void)
{
if (!use_html) {
- printf("This is ApacheBench, Version %s\n", AP_AB_BASEREVISION " <$Revision: 1.130 $> apache-2.0");
+ printf("This is ApacheBench, Version %s\n", AP_AB_BASEREVISION " <$Revision: 1.131 $> apache-2.0");
printf("Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\n");
printf("Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/\n");
printf("\n");
}
else {
printf("<p>\n");
- printf(" This is ApacheBench, Version %s <i><%s></i> apache-2.0<br>\n", AP_AB_BASEREVISION, "$Revision: 1.130 $");
+ printf(" This is ApacheBench, Version %s <i><%s></i> apache-2.0<br>\n", AP_AB_BASEREVISION, "$Revision: 1.131 $");
printf(" Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br>\n");
printf(" Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/<br>\n");
printf("</p>\n<p>\n");