| |
95 |
95 |
# Register features provided by the server, available to all packages. |
| |
96 |
96 |
# These features can typically not easily be provided by compatibility |
| |
97 |
97 |
# routines. These features can be use via [::acs::icanuse FEATURENAME]. |
| |
98 |
98 |
# |
| |
99 |
99 |
# Note that packages can register some optional features during boot |
| |
100 |
100 |
# up as well, but the developer has to care about the registration and |
| |
101 |
101 |
# loading order. The commands are executed very early, this means |
| |
102 |
102 |
# that, e.g., util::which is not yet available. |
| |
103 |
103 |
# |
| |
104 |
104 |
::acs::register_icanuse "gnugrep" [acs::cmd_error_contains [list exec grep -V] GNU] |
| |
105 |
105 |
::acs::register_icanuse "ns_asynclogfile" {[info commands ::ns_asynclogfile] ne ""} |
| |
106 |
106 |
::acs::register_icanuse "ns_baseunit" {[info commands ::ns_baseunit] ne ""} |
| |
107 |
107 |
::acs::register_icanuse "ns_conn contentsentlength" [acs::cmd_has_subcommand ns_conn contentsentlength] |
| |
108 |
108 |
::acs::register_icanuse "ns_conn partialtimes" [acs::cmd_has_subcommand ns_conn partialtimes] |
| |
109 |
109 |
::acs::register_icanuse "ns_conn pool" [acs::cmd_has_subcommand ns_conn pool] |
| |
110 |
110 |
::acs::register_icanuse "ns_crypto::argon2" {[info commands ::ns_crypto::argon2] ne ""} |
| |
111 |
111 |
::acs::register_icanuse "ns_crypto::pbkdf2_hmac" {[info commands ::ns_crypto::pbkdf2_hmac] ne ""} |
| |
112 |
112 |
::acs::register_icanuse "ns_crypto::randombytes" {[info commands ::ns_crypto::randombytes] ne ""} |
| |
113 |
113 |
::acs::register_icanuse "ns_crypto::scrypt" {[info commands ::ns_crypto::scrypt] ne ""} |
| |
114 |
114 |
::acs::register_icanuse "ns_db currenthandles" [acs::cmd_has_subcommand ns_db currenthandles] |
| |
115 |
|
::acs::register_icanuse "ns_deletecookie -samesite" [acs::cmd_error_contains {ns_deletecookie ""} -samesite] |
| |
|
115 |
::acs::register_icanuse "ns_deletecookie -samesite" [acs::cmd_error_contains {ns_deletecookie} -samesite] |
| |
116 |
116 |
::acs::register_icanuse "ns_hash" {[info commands ::ns_hash] ne ""} |
| |
117 |
117 |
::acs::register_icanuse "ns_ictl trace idle" [acs::cmd_error_contains {ns_ictl trace foo} idle] |
| |
118 |
118 |
::acs::register_icanuse "ns_ip" {[info commands ::ns_ip] ne ""} |
| |
119 |
119 |
::acs::register_icanuse "ns_parsehtml" {[info commands ::ns_parsehtml] ne ""} |
| |
120 |
120 |
::acs::register_icanuse "ns_parsequery -charset" [acs::cmd_error_contains {ns_parsequery} -charset] |
| |
121 |
121 |
::acs::register_icanuse "ns_parseurl -strict" [acs::cmd_error_contains ns_parseurl -strict] |
| |
122 |
122 |
::acs::register_icanuse "ns_pg pid" [acs::cmd_has_subcommand ns_pg pid] |
| |
123 |
123 |
::acs::register_icanuse "ns_reflow_text -offset" [acs::cmd_error_contains {ns_reflow_text} -offset] |
| |
124 |
124 |
::acs::register_icanuse "ns_server hosts" [acs::cmd_has_subcommand ns_server hosts] |
| |
125 |
125 |
::acs::register_icanuse "ns_server unmap" [acs::cmd_has_subcommand ns_server unmap] |
| |
126 |
126 |
::acs::register_icanuse "ns_set keys" [acs::cmd_has_subcommand ns_set keys] |
| |
127 |
127 |
::acs::register_icanuse "ns_set stats" [acs::cmd_has_subcommand ns_set stats] |
| |
128 |
128 |
::acs::register_icanuse "ns_set values" [acs::cmd_has_subcommand ns_set values] |
| |
129 |
129 |
::acs::register_icanuse "ns_setcookie -samesite" [acs::cmd_error_contains ns_setcookie -samesite] |
| |
130 |
130 |
::acs::register_icanuse "ns_strcoll" {[info commands ::ns_strcoll] ne ""} |
| |
131 |
131 |
::acs::register_icanuse "ns_subnetmatch" {[info commands ::ns_subnetmatch] ne ""} |
| |
132 |
132 |
::acs::register_icanuse "ns_urlencode -part oauth1" [acs::cmd_error_contains {ns_urlencode -part xxx} oauth1] |
| |
133 |
133 |
::acs::register_icanuse "ns_writer" {[info commands ::ns_writer] ne ""} |
| |
134 |
134 |
::acs::register_icanuse "nsf::config profile" [expr {[info exists ::nsf::config(profile)] ? $::nsf::config(profile) : 0}] |
| |
135 |
135 |
::acs::register_icanuse "nsf::parseargs -asdict" [acs::cmd_error_contains {nsf::parseargs} -asdict] |