# HG changeset patch # User Olaf Wintermann # Date 1771932538 -3600 # Node ID ee80191310cab3e661945bcab88162eb03e06b18 # Parent 936e5487418a5f8299c40d8c3b42fcb086f887f4 fix build on Solaris 10 diff -r 936e5487418a -r ee80191310ca src/server/config/logging.c --- 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 +} diff -r 936e5487418a -r ee80191310ca src/server/daemon/acl.c --- 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; diff -r 936e5487418a -r ee80191310ca src/server/daemon/event_solaris.c --- 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;ifn) { - 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; } diff -r 936e5487418a -r ee80191310ca src/server/daemon/httplistener.c --- 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; } diff -r 936e5487418a -r ee80191310ca src/server/daemon/httprequest.h --- 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); diff -r 936e5487418a -r ee80191310ca src/server/daemon/ldap_resource.c --- 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); diff -r 936e5487418a -r ee80191310ca src/server/daemon/location.c --- 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) { diff -r 936e5487418a -r ee80191310ca src/server/daemon/request.c --- 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; } diff -r 936e5487418a -r ee80191310ca src/server/daemon/session.h --- 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); diff -r 936e5487418a -r ee80191310ca src/server/proxy/httpclient.c --- 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; diff -r 936e5487418a -r ee80191310ca src/server/safs/ldap.c --- 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; } diff -r 936e5487418a -r ee80191310ca src/server/test/io.c --- 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 + CX_TEST(test_io_http_stream_parse_chunk_header_hdronly_first) { char *str = strdup("100\r\n"); diff -r 936e5487418a -r ee80191310ca src/server/util/socket.c --- 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 #include +#include #include #include #include diff -r 936e5487418a -r ee80191310ca src/server/webdav/webdav.c --- 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"; diff -r 936e5487418a -r ee80191310ca src/ucx/Makefile --- a/src/ucx/Makefile Mon Feb 23 22:28:44 2026 +0100 +++ b/src/ucx/Makefile Tue Feb 24 12:28:58 2026 +0100 @@ -49,6 +49,7 @@ SRC += properties.c SRC += iterator.c SRC += kv_list.c +SRC += szmul.c OBJ = $(SRC:%.c=$(BUILD_ROOT)/build/ucx/%$(OBJ_EXT))