Tue, 24 Feb 2026 12:28:58 +0100
fix build on Solaris 10
--- a/src/server/config/logging.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/config/logging.c Tue Feb 24 12:28:58 2026 +0100 @@ -24,4 +24,4 @@ void ws_cfg_set_logfunc(cfg_logfunc func) { logfunc = func; -} \ No newline at end of file +}
--- a/src/server/daemon/acl.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/acl.c Tue Feb 24 12:28:58 2026 +0100 @@ -332,12 +332,12 @@ return 0; } } - cxmutstr wd = cx_str(cwd); - cxmutstr pp = cx_str((char*)path); + cxmutstr wd = cx_mutstr(cwd); + cxmutstr pp = cx_mutstr((char*)path); p = cx_strcat(CX_NULLSTR, 3, wd, cx_strn("/", 1), pp); } else { - p = cx_strdup(cx_str((char*)path)); + p = cx_strdup(path); } if(p.ptr[p.length-1] == '/') { p.ptr[p.length-1] = 0;
--- a/src/server/daemon/event_solaris.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/event_solaris.c Tue Feb 24 12:28:58 2026 +0100 @@ -64,7 +64,7 @@ } void ev_instance_wait(EventHandler *h) { - EventHandlerLinux *ev = (EventHandlerLinux*)h; + EventHandlerSolaris *ev = (EventHandlerSolaris*)h; void *ret; pthread_join(ev->thr, &ret); } @@ -107,7 +107,7 @@ } int numfinished = 0; - ev->numret = 0; + ev->base.numret = 0; for(int i=0;i<nev;i++) { Event *event = events[i].portev_user; if(events[i].portev_source == PORT_SOURCE_AIO) { @@ -125,7 +125,7 @@ free(aiocb); } else { if(event->fn) { - if(event->fn(ev, event)) { + if(event->fn((EventHandler*)ev, event)) { /* * on solaris we have to reassociate the fd after * each event @@ -153,7 +153,7 @@ Event *event = finished[i]; // check again if the finish callback is set if(finished[i]->finish) { - finished[i]->finish(ev, event); + finished[i]->finish((EventHandler*)ev, event); } } // execute return calls @@ -215,7 +215,7 @@ } static int ev_aio(int fd, aiocb_s *cb, WSBool read) { - EventHandlerSolaris *ev = cb->evhandler; + EventHandlerSolaris *ev = (EventHandlerSolaris*)cb->evhandler; if(!ev) { return -1; }
--- a/src/server/daemon/httplistener.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/httplistener.c Tue Feb 24 12:28:58 2026 +0100 @@ -795,6 +795,7 @@ return 1; } +#ifdef TCP_KEEPIDLE int keepidle = 240; if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &keepidle, sizeof(keepidle))) { log_ereport(LOG_FAILURE, "listener: cannot set TCP_KEEPIDLE to value %d: %s", keepidle, strerror(errno)); @@ -812,6 +813,9 @@ log_ereport(LOG_FAILURE, "listener: cannot set TCP_KEEPCNT to value %d: %s", keepcnt, strerror(errno)); return 1; } +#else + // TODO +#endif return 0; }
--- a/src/server/daemon/httprequest.h Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/httprequest.h Tue Feb 24 12:28:58 2026 +0100 @@ -100,7 +100,7 @@ int nsapi_handle_request(NSAPISession *sn, NSAPIRequest *rq); int nsapi_finish_request(NSAPISession *sn, NSAPIRequest *rq); -void nsapi_saf_return(Session *sn, Request *rq, int ret);; +void nsapi_saf_return(Session *sn, Request *rq, int ret); void request_free_resources(NSAPISession *sn, NSAPIRequest *rq);
--- a/src/server/daemon/ldap_resource.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/ldap_resource.c Tue Feb 24 12:28:58 2026 +0100 @@ -60,7 +60,7 @@ LDAP *ld = NULL; #ifdef SOLARIS - ld = ldap_init(config->hostname, config->port); + ld = ldap_init(hostname, port); #else char *ldap_uri = NULL; asprintf(&ldap_uri, "ldap://%s:%d", hostname, port);
--- a/src/server/daemon/location.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/location.c Tue Feb 24 12:28:58 2026 +0100 @@ -226,7 +226,6 @@ } else { return regexec(&loc->regex, uri.ptr, WS_LOCATION_NMATCH, match, 0) == 0; } - return 0; } WSLocationConfig* location_match_and_get_config(pool_handle_t *pool, Request *rq, cxstring uri, WSLocation *loc) {
--- a/src/server/daemon/request.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/request.c Tue Feb 24 12:28:58 2026 +0100 @@ -132,7 +132,7 @@ // concat path size_t length = root.length + path.length; - char *translated_path = alloca(length + 1); + char *translated_path = malloc(length + 1); memcpy(translated_path, root.ptr, root.length); if(root.ptr[root.length-1] == '/') { memcpy(translated_path + root.length, path.ptr, path.length); @@ -151,6 +151,7 @@ pblock_kvinsert(pb_key_ntrans_base, root.ptr, root.length, vars); + free(translated_path); return REQ_PROCEED; }
--- a/src/server/daemon/session.h Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/daemon/session.h Tue Feb 24 12:28:58 2026 +0100 @@ -54,9 +54,6 @@ ServerConfiguration *config; }; -typedef struct IOStreamConnection { - -} IOStreamConnection; NSAPISession* nsapisession_create(pool_handle_t *pool); int nsapisession_setconnection(NSAPISession *sn, Connection *conn, netbuf *inbuf, IOStream **io);
--- a/src/server/proxy/httpclient.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/proxy/httpclient.c Tue Feb 24 12:28:58 2026 +0100 @@ -470,7 +470,7 @@ return 0; } - char *buffer = client->buffer.inbuf + client->buffer.pos; + unsigned char *buffer = client->buffer.inbuf + client->buffer.pos; size_t nbytes = client->buffer.maxsize - client->buffer.cursize; ssize_t r;
--- a/src/server/safs/ldap.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/safs/ldap.c Tue Feb 24 12:28:58 2026 +0100 @@ -41,9 +41,12 @@ return LDAP_SCOPE_ONELEVEL; } else if(!strcmp(str, "subtree")) { return LDAP_SCOPE_SUBTREE; - } else if(!strcmp(str, "children")) { + } +#ifdef LDAP_SCOPE_CHILDREN + else if(!strcmp(str, "children")) { return LDAP_SCOPE_CHILDREN; } +#endif return -1; }
--- a/src/server/test/io.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/test/io.c Tue Feb 24 12:28:58 2026 +0100 @@ -30,6 +30,8 @@ #include "testutils.h" +#include <limits.h> + CX_TEST(test_io_http_stream_parse_chunk_header_hdronly_first) { char *str = strdup("100\r\n");
--- a/src/server/util/socket.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/util/socket.c Tue Feb 24 12:28:58 2026 +0100 @@ -30,6 +30,7 @@ #include <unistd.h> #include <sys/fcntl.h> +#include <fcntl.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>
--- a/src/server/webdav/webdav.c Mon Feb 23 22:28:44 2026 +0100 +++ b/src/server/webdav/webdav.c Tue Feb 24 12:28:58 2026 +0100 @@ -168,30 +168,30 @@ return REQ_ABORTED; } - cxMapPut(method_handler_map, "OPTIONS", webdav_options); - cxMapPut(method_handler_map, "PROPFIND", webdav_propfind); - cxMapPut(method_handler_map, "PROPPATCH", webdav_proppatch); - cxMapPut(method_handler_map, "MKCOL", webdav_mkcol); - cxMapPut(method_handler_map, "POST", webdav_post); - cxMapPut(method_handler_map, "DELETE", webdav_delete); - cxMapPut(method_handler_map, "PUT", webdav_put); - cxMapPut(method_handler_map, "COPY", webdav_copy); - cxMapPut(method_handler_map, "MOVE", webdav_move); - cxMapPut(method_handler_map, "LOCK", webdav_lock); - cxMapPut(method_handler_map, "UNLOCK", webdav_unlock); - cxMapPut(method_handler_map, "REPORT", webdav_report); - cxMapPut(method_handler_map, "ACL", webdav_acl); + cxMapPut(method_handler_map, "OPTIONS", (void*)webdav_options); + cxMapPut(method_handler_map, "PROPFIND", (void*)webdav_propfind); + cxMapPut(method_handler_map, "PROPPATCH", (void*)webdav_proppatch); + cxMapPut(method_handler_map, "MKCOL", (void*)webdav_mkcol); + cxMapPut(method_handler_map, "POST", (void*)webdav_post); + cxMapPut(method_handler_map, "DELETE", (void*)webdav_delete); + cxMapPut(method_handler_map, "PUT", (void*)webdav_put); + cxMapPut(method_handler_map, "COPY", (void*)webdav_copy); + cxMapPut(method_handler_map, "MOVE", (void*)webdav_move); + cxMapPut(method_handler_map, "LOCK", (void*)webdav_lock); + cxMapPut(method_handler_map, "UNLOCK", (void*)webdav_unlock); + cxMapPut(method_handler_map, "REPORT", (void*)webdav_report); + cxMapPut(method_handler_map, "ACL", (void*)webdav_acl); - cxMapPut(method_handler_map, "SEARCH", webdav_search); + cxMapPut(method_handler_map, "SEARCH", (void*)webdav_search); - cxMapPut(method_handler_map, "VERSION-CONTROL", webdav_version_control); - cxMapPut(method_handler_map, "CHECKOUT", webdav_checkout); - cxMapPut(method_handler_map, "CHECKIN", webdav_checkin); - cxMapPut(method_handler_map, "UNCHECKOUT", webdav_uncheckout); - cxMapPut(method_handler_map, "MKWORKSPACE", webdav_mkworkspace); - cxMapPut(method_handler_map, "UPDATE", webdav_update); - cxMapPut(method_handler_map, "LABEL", webdav_label); - cxMapPut(method_handler_map, "MERGE", webdav_merge); + cxMapPut(method_handler_map, "VERSION-CONTROL", (void*)webdav_version_control); + cxMapPut(method_handler_map, "CHECKOUT", (void*)webdav_checkout); + cxMapPut(method_handler_map, "CHECKIN", (void*)webdav_checkin); + cxMapPut(method_handler_map, "UNCHECKOUT", (void*)webdav_uncheckout); + cxMapPut(method_handler_map, "MKWORKSPACE", (void*)webdav_mkworkspace); + cxMapPut(method_handler_map, "UPDATE", (void*)webdav_update); + cxMapPut(method_handler_map, "LABEL", (void*)webdav_label); + cxMapPut(method_handler_map, "MERGE", (void*)webdav_merge); dav_namespace.href = (xmlChar*)"DAV:"; dav_namespace.prefix = (xmlChar*)"D";