aboutsummaryrefslogtreecommitdiff
path: root/src/include/microhttpd2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/microhttpd2.h')
-rw-r--r--src/include/microhttpd2.h215
1 files changed, 149 insertions, 66 deletions
diff --git a/src/include/microhttpd2.h b/src/include/microhttpd2.h
index 2fae90b1..2ec39acb 100644
--- a/src/include/microhttpd2.h
+++ b/src/include/microhttpd2.h
@@ -267,6 +267,16 @@ typedef SOCKET MHD_socket;
267#define _MHD_DEPR_FUNC(msg) 267#define _MHD_DEPR_FUNC(msg)
268#endif /* !_MHD_DEPR_FUNC */ 268#endif /* !_MHD_DEPR_FUNC */
269 269
270
271/* Define MHD_NONNULL attribute */
272
273/**
274 * Macro to indicate that certain parameters must be
275 * non-null. Todo: port to non-gcc platforms.
276 */
277#define MHD_NONNULL(...) __THROW __nonnull((__VA_ARGS__))
278
279
270/** 280/**
271 * Not all architectures and `printf()`'s support the `long long` type. 281 * Not all architectures and `printf()`'s support the `long long` type.
272 * This gives the ability to replace `long long` with just a `long`, 282 * This gives the ability to replace `long long` with just a `long`,
@@ -541,6 +551,17 @@ enum MHD_StatusCode
541 */ 551 */
542 MHD_SC_EPOLL_CTL_CONFIGURE_NOINHERIT_FAILED = 50035, 552 MHD_SC_EPOLL_CTL_CONFIGURE_NOINHERIT_FAILED = 50035,
543 553
554 /**
555 * We failed to build the FD set because a socket was
556 * outside of the permitted range.
557 */
558 MHD_SC_SOCKET_OUTSIDE_OF_FDSET_RANGE = 50036,
559
560 /**
561 * This daemon was not configured with options that
562 * would allow us to build an FD set for select().
563 */
564 MHD_SC_CONFIGURATION_MISSMATCH_FOR_GET_FDSET = 50037,
544 565
545}; 566};
546 567
@@ -1148,7 +1169,8 @@ typedef struct MHD_Action *
1148 */ 1169 */
1149_MHD_EXTERN struct MHD_Daemon * 1170_MHD_EXTERN struct MHD_Daemon *
1150MHD_daemon_create (MHD_RequestCallback cb, 1171MHD_daemon_create (MHD_RequestCallback cb,
1151 void *cb_cls); 1172 void *cb_cls)
1173 MHD_NONNULL(1);
1152 1174
1153 1175
1154/** 1176/**
@@ -1160,7 +1182,8 @@ MHD_daemon_create (MHD_RequestCallback cb,
1160 * @ingroup event 1182 * @ingroup event
1161 */ 1183 */
1162_MHD_EXTERN enum MHD_StatusCode 1184_MHD_EXTERN enum MHD_StatusCode
1163MHD_daemon_start (struct MHD_Daemon *daemon); 1185MHD_daemon_start (struct MHD_Daemon *daemon)
1186 MHD_NONNULL(1);
1164 1187
1165 1188
1166/** 1189/**
@@ -1184,7 +1207,8 @@ MHD_daemon_start (struct MHD_Daemon *daemon);
1184 * @ingroup specialized 1207 * @ingroup specialized
1185 */ 1208 */
1186_MHD_EXTERN MHD_socket 1209_MHD_EXTERN MHD_socket
1187MHD_daemon_quiesce (struct MHD_Daemon *daemon); 1210MHD_daemon_quiesce (struct MHD_Daemon *daemon)
1211 MHD_NONNULL(1);
1188 1212
1189 1213
1190/** 1214/**
@@ -1194,7 +1218,8 @@ MHD_daemon_quiesce (struct MHD_Daemon *daemon);
1194 * @ingroup event 1218 * @ingroup event
1195 */ 1219 */
1196_MHD_EXTERN void 1220_MHD_EXTERN void
1197MHD_daemon_destroy (struct MHD_Daemon *daemon); 1221MHD_daemon_destroy (struct MHD_Daemon *daemon)
1222 MHD_NONNULL(1);
1198 1223
1199 1224
1200/** 1225/**
@@ -1226,7 +1251,8 @@ _MHD_EXTERN enum MHD_StatusCode
1226MHD_daemon_add_connection (struct MHD_Daemon *daemon, 1251MHD_daemon_add_connection (struct MHD_Daemon *daemon,
1227 MHD_socket client_socket, 1252 MHD_socket client_socket,
1228 const struct sockaddr *addr, 1253 const struct sockaddr *addr,
1229 socklen_t addrlen); 1254 socklen_t addrlen)
1255 MHD_NONNULL(1);
1230 1256
1231 1257
1232/** 1258/**
@@ -1258,7 +1284,8 @@ MHD_daemon_get_fdset (struct MHD_Daemon *daemon,
1258 fd_set *read_fd_set, 1284 fd_set *read_fd_set,
1259 fd_set *write_fd_set, 1285 fd_set *write_fd_set,
1260 fd_set *except_fd_set, 1286 fd_set *except_fd_set,
1261 MHD_socket *max_fd); 1287 MHD_socket *max_fd)
1288 MHD_NONNULL(1,2,3,4);
1262 1289
1263 1290
1264/** 1291/**
@@ -1294,7 +1321,8 @@ MHD_daemon_get_fdset2 (struct MHD_Daemon *daemon,
1294 fd_set *write_fd_set, 1321 fd_set *write_fd_set,
1295 fd_set *except_fd_set, 1322 fd_set *except_fd_set,
1296 MHD_socket *max_fd, 1323 MHD_socket *max_fd,
1297 unsigned int fd_setsize); 1324 unsigned int fd_setsize)
1325 MHD_NONNULL(1,2,3,4);
1298 1326
1299 1327
1300/** 1328/**
@@ -1344,7 +1372,8 @@ MHD_daemon_get_fdset2 (struct MHD_Daemon *daemon,
1344 */ 1372 */
1345_MHD_EXTERN enum MHD_StatusCode 1373_MHD_EXTERN enum MHD_StatusCode
1346MHD_daemon_get_timeout (struct MHD_Daemon *daemon, 1374MHD_daemon_get_timeout (struct MHD_Daemon *daemon,
1347 MHD_UNSIGNED_LONG_LONG *timeout); 1375 MHD_UNSIGNED_LONG_LONG *timeout)
1376 MHD_NONNULL(1,2);
1348 1377
1349 1378
1350/** 1379/**
@@ -1366,7 +1395,8 @@ MHD_daemon_get_timeout (struct MHD_Daemon *daemon,
1366 * @ingroup event 1395 * @ingroup event
1367 */ 1396 */
1368_MHD_EXTERN enum MHD_StatusCode 1397_MHD_EXTERN enum MHD_StatusCode
1369MHD_daemon_run (struct MHD_Daemon *daemon); 1398MHD_daemon_run (struct MHD_Daemon *daemon)
1399 MHD_NONNULL(1);
1370 1400
1371 1401
1372/** 1402/**
@@ -1395,9 +1425,8 @@ _MHD_EXTERN enum MHD_StatusCode
1395MHD_daemon_run_from_select (struct MHD_Daemon *daemon, 1425MHD_daemon_run_from_select (struct MHD_Daemon *daemon,
1396 const fd_set *read_fd_set, 1426 const fd_set *read_fd_set,
1397 const fd_set *write_fd_set, 1427 const fd_set *write_fd_set,
1398 const fd_set *except_fd_set); 1428 const fd_set *except_fd_set)
1399 1429 MHD_NONNULL(1,2,3,4);
1400
1401 1430
1402 1431
1403/* ********************* daemon options ************** */ 1432/* ********************* daemon options ************** */
@@ -1431,7 +1460,8 @@ typedef void
1431_MHD_EXTERN void 1460_MHD_EXTERN void
1432MHD_daemon_set_logger (struct MHD_Daemon *daemon, 1461MHD_daemon_set_logger (struct MHD_Daemon *daemon,
1433 MHD_LoggingCallback logger, 1462 MHD_LoggingCallback logger,
1434 void *logger_cls); 1463 void *logger_cls)
1464 MHD_NONNULL(1);
1435 1465
1436 1466
1437/** 1467/**
@@ -1448,7 +1478,8 @@ MHD_daemon_set_logger (struct MHD_Daemon *daemon,
1448 * @param daemon which instance to disable clock for. 1478 * @param daemon which instance to disable clock for.
1449 */ 1479 */
1450_MHD_EXTERN void 1480_MHD_EXTERN void
1451MHD_daemon_suppress_date_no_clock (struct MHD_Daemon *daemon); 1481MHD_daemon_suppress_date_no_clock (struct MHD_Daemon *daemon)
1482 MHD_NONNULL(1);
1452 1483
1453 1484
1454/** 1485/**
@@ -1469,7 +1500,8 @@ MHD_daemon_suppress_date_no_clock (struct MHD_Daemon *daemon);
1469 * @param daemon which instance to disable itc for 1500 * @param daemon which instance to disable itc for
1470 */ 1501 */
1471_MHD_EXTERN void 1502_MHD_EXTERN void
1472MHD_daemon_disable_itc (struct MHD_Daemon *daemon); 1503MHD_daemon_disable_itc (struct MHD_Daemon *daemon)
1504 MHD_NONNULL(1);
1473 1505
1474 1506
1475/** 1507/**
@@ -1481,7 +1513,8 @@ MHD_daemon_disable_itc (struct MHD_Daemon *daemon);
1481 * @param daemon which instance to enable turbo for 1513 * @param daemon which instance to enable turbo for
1482 */ 1514 */
1483_MHD_EXTERN void 1515_MHD_EXTERN void
1484MHD_daemon_enable_turbo (struct MHD_Daemon *daemon); 1516MHD_daemon_enable_turbo (struct MHD_Daemon *daemon)
1517 MHD_NONNULL(1);
1485 1518
1486 1519
1487/** 1520/**
@@ -1494,7 +1527,8 @@ MHD_daemon_enable_turbo (struct MHD_Daemon *daemon);
1494 * @param daemon which instance to disable suspend for 1527 * @param daemon which instance to disable suspend for
1495 */ 1528 */
1496_MHD_EXTERN void 1529_MHD_EXTERN void
1497MHD_daemon_disallow_suspend_resume (struct MHD_Daemon *daemon); 1530MHD_daemon_disallow_suspend_resume (struct MHD_Daemon *daemon)
1531 MHD_NONNULL(1);
1498 1532
1499 1533
1500/** 1534/**
@@ -1509,7 +1543,8 @@ MHD_daemon_disallow_suspend_resume (struct MHD_Daemon *daemon);
1509 * @param daemon which instance to enable suspend/resume for 1543 * @param daemon which instance to enable suspend/resume for
1510 */ 1544 */
1511_MHD_EXTERN void 1545_MHD_EXTERN void
1512MHD_daemon_disallow_upgrade (struct MHD_Daemon *daemon); 1546MHD_daemon_disallow_upgrade (struct MHD_Daemon *daemon)
1547 MHD_NONNULL(1);
1513 1548
1514 1549
1515/** 1550/**
@@ -1555,7 +1590,8 @@ enum MHD_FastOpenMethod
1555_MHD_EXTERN enum MHD_Bool 1590_MHD_EXTERN enum MHD_Bool
1556MHD_daemon_tcp_fastopen (struct MHD_Daemon *daemon, 1591MHD_daemon_tcp_fastopen (struct MHD_Daemon *daemon,
1557 enum MHD_FastOpenMethod fom, 1592 enum MHD_FastOpenMethod fom,
1558 unsigned int queue_length); 1593 unsigned int queue_length)
1594 MHD_NONNULL(1);
1559 1595
1560 1596
1561/** 1597/**
@@ -1608,7 +1644,8 @@ enum MHD_AddressFamily
1608_MHD_EXTERN void 1644_MHD_EXTERN void
1609MHD_daemon_bind_port (struct MHD_Daemon *daemon, 1645MHD_daemon_bind_port (struct MHD_Daemon *daemon,
1610 enum MHD_AddressFamily af, 1646 enum MHD_AddressFamily af,
1611 uint16_t port); 1647 uint16_t port)
1648 MHD_NONNULL(1);
1612 1649
1613 1650
1614/** 1651/**
@@ -1623,7 +1660,8 @@ MHD_daemon_bind_port (struct MHD_Daemon *daemon,
1623_MHD_EXTERN void 1660_MHD_EXTERN void
1624MHD_daemon_bind_socket_address (struct MHD_Daemon *daemon, 1661MHD_daemon_bind_socket_address (struct MHD_Daemon *daemon,
1625 const struct sockaddr *sa, 1662 const struct sockaddr *sa,
1626 size_t sa_len); 1663 size_t sa_len)
1664 MHD_NONNULL(1);
1627 1665
1628 1666
1629/** 1667/**
@@ -1635,7 +1673,8 @@ MHD_daemon_bind_socket_address (struct MHD_Daemon *daemon,
1635 */ 1673 */
1636_MHD_EXTERN void 1674_MHD_EXTERN void
1637MHD_daemon_listen_backlog (struct MHD_Daemon *daemon, 1675MHD_daemon_listen_backlog (struct MHD_Daemon *daemon,
1638 int listen_backlog); 1676 int listen_backlog)
1677 MHD_NONNULL(1);
1639 1678
1640 1679
1641/** 1680/**
@@ -1649,7 +1688,8 @@ MHD_daemon_listen_backlog (struct MHD_Daemon *daemon,
1649 * @param daemon daemon to configure address reuse for 1688 * @param daemon daemon to configure address reuse for
1650 */ 1689 */
1651_MHD_EXTERN void 1690_MHD_EXTERN void
1652MHD_daemon_listen_allow_address_reuse (struct MHD_Daemon *daemon); 1691MHD_daemon_listen_allow_address_reuse (struct MHD_Daemon *daemon)
1692 MHD_NONNULL(1);
1653 1693
1654 1694
1655/** 1695/**
@@ -1668,7 +1708,8 @@ MHD_daemon_listen_allow_address_reuse (struct MHD_Daemon *daemon);
1668 */ 1708 */
1669_MHD_EXTERN void 1709_MHD_EXTERN void
1670MHD_daemon_listen_socket (struct MHD_Daemon *daemon, 1710MHD_daemon_listen_socket (struct MHD_Daemon *daemon,
1671 MHD_socket listen_socket); 1711 MHD_socket listen_socket)
1712 MHD_NONNULL(1);
1672 1713
1673 1714
1674/** 1715/**
@@ -1708,7 +1749,8 @@ enum MHD_EventLoopSyscall
1708 */ 1749 */
1709_MHD_EXTERN enum MHD_Bool 1750_MHD_EXTERN enum MHD_Bool
1710MHD_daemon_event_loop (struct MHD_Daemon *daemon, 1751MHD_daemon_event_loop (struct MHD_Daemon *daemon,
1711 enum MHD_EventLoopSyscall els); 1752 enum MHD_EventLoopSyscall els)
1753 MHD_NONNULL(1);
1712 1754
1713 1755
1714/** 1756/**
@@ -1752,7 +1794,8 @@ enum MHD_ProtocolStrictLevel
1752 */ 1794 */
1753_MHD_EXTERN void 1795_MHD_EXTERN void
1754MHD_daemon_protocol_strict_level (struct MHD_Daemon *daemon, 1796MHD_daemon_protocol_strict_level (struct MHD_Daemon *daemon,
1755 enum MHD_ProtocolStrictLevel sl); 1797 enum MHD_ProtocolStrictLevel sl)
1798 MHD_NONNULL(1);
1756 1799
1757 1800
1758/** 1801/**
@@ -1762,7 +1805,8 @@ MHD_daemon_protocol_strict_level (struct MHD_Daemon *daemon,
1762 * @param daemon daemon to set SHOUTcast option for 1805 * @param daemon daemon to set SHOUTcast option for
1763 */ 1806 */
1764_MHD_EXTERN void 1807_MHD_EXTERN void
1765MHD_daemon_enable_shoutcast (struct MHD_Daemon *daemon); 1808MHD_daemon_enable_shoutcast (struct MHD_Daemon *daemon)
1809 MHD_NONNULL(1);
1766 1810
1767 1811
1768/** 1812/**
@@ -1783,7 +1827,8 @@ MHD_daemon_enable_shoutcast (struct MHD_Daemon *daemon);
1783_MHD_EXTERN enum MHD_StatusCode 1827_MHD_EXTERN enum MHD_StatusCode
1784MHD_daemon_set_tls_backend (struct MHD_Daemon *daemon, 1828MHD_daemon_set_tls_backend (struct MHD_Daemon *daemon,
1785 const char *tls_backend, 1829 const char *tls_backend,
1786 const char *ciphers); 1830 const char *ciphers)
1831 MHD_NONNULL(1);
1787 1832
1788 1833
1789/** 1834/**
@@ -1802,7 +1847,8 @@ _MHD_EXTERN enum MHD_StatusCode
1802MHD_daemon_tls_key_and_cert_from_memory (struct MHD_Daemon *daemon, 1847MHD_daemon_tls_key_and_cert_from_memory (struct MHD_Daemon *daemon,
1803 const char *mem_key, 1848 const char *mem_key,
1804 const char *mem_cert, 1849 const char *mem_cert,
1805 const char *pass); 1850 const char *pass)
1851 MHD_NONNULL(1,2,3);
1806 1852
1807 1853
1808/** 1854/**
@@ -1815,7 +1861,8 @@ MHD_daemon_tls_key_and_cert_from_memory (struct MHD_Daemon *daemon,
1815 */ 1861 */
1816_MHD_EXTERN enum MHD_StatusCode 1862_MHD_EXTERN enum MHD_StatusCode
1817MHD_daemon_tls_mem_dhparams (struct MHD_Daemon *daemon, 1863MHD_daemon_tls_mem_dhparams (struct MHD_Daemon *daemon,
1818 const char *dh); 1864 const char *dh)
1865 MHD_NONNULL(1);
1819 1866
1820 1867
1821/** 1868/**
@@ -1828,7 +1875,8 @@ MHD_daemon_tls_mem_dhparams (struct MHD_Daemon *daemon,
1828 */ 1875 */
1829_MHD_EXTERN enum MHD_StatusCode 1876_MHD_EXTERN enum MHD_StatusCode
1830MHD_daemon_tls_mem_trust (struct MHD_Daemon *daemon, 1877MHD_daemon_tls_mem_trust (struct MHD_Daemon *daemon,
1831 const char *mem_trust); 1878 const char *mem_trust)
1879 MHD_NONNULL(1);
1832 1880
1833 1881
1834/** 1882/**
@@ -1840,7 +1888,8 @@ MHD_daemon_tls_mem_trust (struct MHD_Daemon *daemon,
1840 */ 1888 */
1841_MHD_EXTERN enum MHD_StatusCode 1889_MHD_EXTERN enum MHD_StatusCode
1842MHD_daemon_gnutls_credentials (struct MHD_Daemon *daemon, 1890MHD_daemon_gnutls_credentials (struct MHD_Daemon *daemon,
1843 int gnutls_credentials); 1891 int gnutls_credentials)
1892 MHD_NONNULL(1);
1844 1893
1845 1894
1846/** 1895/**
@@ -1862,7 +1911,8 @@ MHD_daemon_gnutls_credentials (struct MHD_Daemon *daemon,
1862 */ 1911 */
1863_MHD_EXTERN enum MHD_StatusCode 1912_MHD_EXTERN enum MHD_StatusCode
1864MHD_daemon_gnutls_key_and_cert_from_callback (struct MHD_Daemon *daemon, 1913MHD_daemon_gnutls_key_and_cert_from_callback (struct MHD_Daemon *daemon,
1865 void *cb); 1914 void *cb)
1915 MHD_NONNULL(1);
1866 1916
1867 1917
1868/** 1918/**
@@ -1920,7 +1970,8 @@ enum MHD_ThreadingModel
1920 */ 1970 */
1921_MHD_EXTERN void 1971_MHD_EXTERN void
1922MHD_daemon_threading_model (struct MHD_Daemon *daemon, 1972MHD_daemon_threading_model (struct MHD_Daemon *daemon,
1923 enum MHD_ThreadingModel tm); 1973 enum MHD_ThreadingModel tm)
1974 MHD_NONNULL(1);
1924 1975
1925 1976
1926/** 1977/**
@@ -1950,7 +2001,8 @@ typedef enum MHD_Bool
1950_MHD_EXTERN void 2001_MHD_EXTERN void
1951MHD_daemon_accept_policy (struct MHD_Daemon *daemon, 2002MHD_daemon_accept_policy (struct MHD_Daemon *daemon,
1952 MHD_AcceptPolicyCallback apc, 2003 MHD_AcceptPolicyCallback apc,
1953 void *apc_cls); 2004 void *apc_cls)
2005 MHD_NONNULL(1);
1954 2006
1955 2007
1956/** 2008/**
@@ -1981,7 +2033,8 @@ typedef void *
1981_MHD_EXTERN void 2033_MHD_EXTERN void
1982MHD_daemon_set_early_uri_logger (struct MHD_Daemon *daemon, 2034MHD_daemon_set_early_uri_logger (struct MHD_Daemon *daemon,
1983 MHD_EarlyUriLogCallback cb, 2035 MHD_EarlyUriLogCallback cb,
1984 void *cb_cls); 2036 void *cb_cls)
2037 MHD_NONNULL(1);
1985 2038
1986 2039
1987/** 2040/**
@@ -2043,7 +2096,8 @@ typedef void
2043_MHD_EXTERN void 2096_MHD_EXTERN void
2044MHD_daemon_set_notify_connection (struct MHD_Daemon *daemon, 2097MHD_daemon_set_notify_connection (struct MHD_Daemon *daemon,
2045 MHD_NotifyConnectionCallback ncc, 2098 MHD_NotifyConnectionCallback ncc,
2046 void *ncc_cls); 2099 void *ncc_cls)
2100 MHD_NONNULL(1);
2047 2101
2048 2102
2049/** 2103/**
@@ -2060,7 +2114,8 @@ MHD_daemon_set_notify_connection (struct MHD_Daemon *daemon,
2060_MHD_EXTERN void 2114_MHD_EXTERN void
2061MHD_daemon_connection_memory_limit (struct MHD_Daemon *daemon, 2115MHD_daemon_connection_memory_limit (struct MHD_Daemon *daemon,
2062 size_t memory_limit_b, 2116 size_t memory_limit_b,
2063 size_t memory_increment_b); 2117 size_t memory_increment_b)
2118 MHD_NONNULL(1);
2064 2119
2065 2120
2066/** 2121/**
@@ -2073,7 +2128,8 @@ MHD_daemon_connection_memory_limit (struct MHD_Daemon *daemon,
2073 */ 2128 */
2074_MHD_EXTERN void 2129_MHD_EXTERN void
2075MHD_daemon_thread_stack_size (struct MHD_Daemon *daemon, 2130MHD_daemon_thread_stack_size (struct MHD_Daemon *daemon,
2076 size_t stack_limit_b); 2131 size_t stack_limit_b)
2132 MHD_NONNULL(1);
2077 2133
2078 2134
2079/** 2135/**
@@ -2094,7 +2150,8 @@ MHD_daemon_thread_stack_size (struct MHD_Daemon *daemon,
2094_MHD_EXTERN void 2150_MHD_EXTERN void
2095MHD_daemon_connection_limits (struct MHD_Daemon *daemon, 2151MHD_daemon_connection_limits (struct MHD_Daemon *daemon,
2096 unsigned int global_connection_limit, 2152 unsigned int global_connection_limit,
2097 unsigned int ip_connection_limit); 2153 unsigned int ip_connection_limit)
2154 MHD_NONNULL(1);
2098 2155
2099 2156
2100/** 2157/**
@@ -2107,7 +2164,8 @@ MHD_daemon_connection_limits (struct MHD_Daemon *daemon,
2107 */ 2164 */
2108_MHD_EXTERN void 2165_MHD_EXTERN void
2109MHD_daemon_connection_default_timeout (struct MHD_Daemon *daemon, 2166MHD_daemon_connection_default_timeout (struct MHD_Daemon *daemon,
2110 unsigned int timeout_s); 2167 unsigned int timeout_s)
2168 MHD_NONNULL(1);
2111 2169
2112 2170
2113/** 2171/**
@@ -2142,7 +2200,8 @@ typedef size_t
2142_MHD_EXTERN void 2200_MHD_EXTERN void
2143MHD_daemon_unescape_cb (struct MHD_Daemon *daemon, 2201MHD_daemon_unescape_cb (struct MHD_Daemon *daemon,
2144 MHD_UnescapeCallback unescape_cb, 2202 MHD_UnescapeCallback unescape_cb,
2145 void *unescape_cb_cls); 2203 void *unescape_cb_cls)
2204 MHD_NONNULL(1);
2146 2205
2147 2206
2148/** 2207/**
@@ -2157,7 +2216,8 @@ MHD_daemon_unescape_cb (struct MHD_Daemon *daemon,
2157_MHD_EXTERN void 2216_MHD_EXTERN void
2158MHD_daemon_digest_auth_random (struct MHD_Daemon *daemon, 2217MHD_daemon_digest_auth_random (struct MHD_Daemon *daemon,
2159 size_t buf_size, 2218 size_t buf_size,
2160 const void *buf); 2219 const void *buf)
2220 MHD_NONNULL(1,3);
2161 2221
2162 2222
2163/** 2223/**
@@ -2169,7 +2229,8 @@ MHD_daemon_digest_auth_random (struct MHD_Daemon *daemon,
2169 */ 2229 */
2170_MHD_EXTERN enum MHD_StatusCode 2230_MHD_EXTERN enum MHD_StatusCode
2171MHD_daemon_digest_auth_nc_length (struct MHD_Daemon *daemon, 2231MHD_daemon_digest_auth_nc_length (struct MHD_Daemon *daemon,
2172 size_t nc_length); 2232 size_t nc_length)
2233 MHD_NONNULL(1);
2173 2234
2174 2235
2175/* ********************* connection options ************** */ 2236/* ********************* connection options ************** */
@@ -2185,7 +2246,8 @@ MHD_daemon_digest_auth_nc_length (struct MHD_Daemon *daemon,
2185 */ 2246 */
2186_MHD_EXTERN void 2247_MHD_EXTERN void
2187MHD_connection_set_timeout (struct MHD_Connection *connection, 2248MHD_connection_set_timeout (struct MHD_Connection *connection,
2188 unsigned int timeout_s); 2249 unsigned int timeout_s)
2250 MHD_NONNULL(1);
2189 2251
2190 2252
2191/* **************** Request handling functions ***************** */ 2253/* **************** Request handling functions ***************** */
@@ -2268,7 +2330,8 @@ _MHD_EXTERN unsigned int
2268MHD_request_get_values (struct MHD_Request *request, 2330MHD_request_get_values (struct MHD_Request *request,
2269 enum MHD_ValueKind kind, 2331 enum MHD_ValueKind kind,
2270 MHD_KeyValueIterator iterator, 2332 MHD_KeyValueIterator iterator,
2271 void *iterator_cls); 2333 void *iterator_cls)
2334 MHD_NONNULL(1);
2272 2335
2273 2336
2274/** 2337/**
@@ -2300,7 +2363,8 @@ _MHD_EXTERN enum MHD_Bool
2300MHD_request_set_value (struct MHD_Request *request, 2363MHD_request_set_value (struct MHD_Request *request,
2301 enum MHD_ValueKind kind, 2364 enum MHD_ValueKind kind,
2302 const char *key, 2365 const char *key,
2303 const char *value); 2366 const char *value)
2367 MHD_NONNULL(1,3,4);
2304 2368
2305 2369
2306/** 2370/**
@@ -2316,7 +2380,8 @@ MHD_request_set_value (struct MHD_Request *request,
2316_MHD_EXTERN const char * 2380_MHD_EXTERN const char *
2317MHD_request_lookup_value (struct MHD_Request *request, 2381MHD_request_lookup_value (struct MHD_Request *request,
2318 enum MHD_ValueKind kind, 2382 enum MHD_ValueKind kind,
2319 const char *key); 2383 const char *key)
2384 MHD_NONNULL(1);
2320 2385
2321 2386
2322 2387
@@ -2487,7 +2552,8 @@ MHD_action_suspend (void);
2487 * @param request the request to resume 2552 * @param request the request to resume
2488 */ 2553 */
2489_MHD_EXTERN void 2554_MHD_EXTERN void
2490MHD_request_resume (struct MHD_Request *request); 2555MHD_request_resume (struct MHD_Request *request)
2556 MHD_NONNULL(1);
2491 2557
2492 2558
2493/* **************** Response manipulation functions ***************** */ 2559/* **************** Response manipulation functions ***************** */
@@ -2520,7 +2586,8 @@ struct MHD_Response;
2520 */ 2586 */
2521_MHD_EXTERN struct MHD_Action * 2587_MHD_EXTERN struct MHD_Action *
2522MHD_action_from_response (struct MHD_Response *response, 2588MHD_action_from_response (struct MHD_Response *response,
2523 enum MHD_Bool destroy_after_use); 2589 enum MHD_Bool destroy_after_use)
2590 MHD_NONNULL(1);
2524 2591
2525 2592
2526/** 2593/**
@@ -2531,7 +2598,8 @@ MHD_action_from_response (struct MHD_Response *response,
2531 * @param request the request for which we force HTTP 1.0 to be used 2598 * @param request the request for which we force HTTP 1.0 to be used
2532 */ 2599 */
2533_MHD_EXTERN void 2600_MHD_EXTERN void
2534MHD_response_option_v10_only (struct MHD_Response *response); 2601MHD_response_option_v10_only (struct MHD_Response *response)
2602 MHD_NONNULL(1);
2535 2603
2536 2604
2537/** 2605/**
@@ -2620,7 +2688,8 @@ typedef void
2620_MHD_EXTERN void 2688_MHD_EXTERN void
2621MHD_response_option_termination_callback (struct MHD_Response *response, 2689MHD_response_option_termination_callback (struct MHD_Response *response,
2622 MHD_RequestTerminationCallback termination_cb, 2690 MHD_RequestTerminationCallback termination_cb,
2623 void *termination_cb_cls); 2691 void *termination_cb_cls)
2692 MHD_NONNULL(1);
2624 2693
2625 2694
2626/** 2695/**
@@ -2837,7 +2906,8 @@ struct MHD_UpgradeResponseHandle;
2837_MHD_EXTERN enum MHD_Bool 2906_MHD_EXTERN enum MHD_Bool
2838MHD_upgrade_operation (struct MHD_UpgradeResponseHandle *urh, 2907MHD_upgrade_operation (struct MHD_UpgradeResponseHandle *urh,
2839 enum MHD_UpgradeOperation operation, 2908 enum MHD_UpgradeOperation operation,
2840 ...); 2909 ...)
2910 MHD_NONNULL(1);
2841 2911
2842 2912
2843/** 2913/**
@@ -2929,7 +2999,8 @@ typedef void
2929 */ 2999 */
2930_MHD_EXTERN struct MHD_Response * 3000_MHD_EXTERN struct MHD_Response *
2931MHD_response_for_upgrade (MHD_UpgradeHandler upgrade_handler, 3001MHD_response_for_upgrade (MHD_UpgradeHandler upgrade_handler,
2932 void *upgrade_handler_cls); 3002 void *upgrade_handler_cls)
3003 MHD_NONNULL(1);
2933 3004
2934 3005
2935/** 3006/**
@@ -2942,7 +3013,8 @@ MHD_response_for_upgrade (MHD_UpgradeHandler upgrade_handler,
2942 * @ingroup response 3013 * @ingroup response
2943 */ 3014 */
2944_MHD_EXTERN void 3015_MHD_EXTERN void
2945MHD_response_queue_for_destroy (struct MHD_Response *response); 3016MHD_response_queue_for_destroy (struct MHD_Response *response)
3017 MHD_NONNULL(1);
2946 3018
2947 3019
2948/** 3020/**
@@ -2958,7 +3030,8 @@ MHD_response_queue_for_destroy (struct MHD_Response *response);
2958_MHD_EXTERN enum MHD_Bool 3030_MHD_EXTERN enum MHD_Bool
2959MHD_response_add_header (struct MHD_Response *response, 3031MHD_response_add_header (struct MHD_Response *response,
2960 const char *header, 3032 const char *header,
2961 const char *content); 3033 const char *content)
3034 MHD_NONNULL(1,2,3);
2962 3035
2963 3036
2964/** 3037/**
@@ -2974,7 +3047,8 @@ MHD_response_add_header (struct MHD_Response *response,
2974_MHD_EXTERN enum MHD_Bool 3047_MHD_EXTERN enum MHD_Bool
2975MHD_response_add_trailer (struct MHD_Response *response, 3048MHD_response_add_trailer (struct MHD_Response *response,
2976 const char *footer, 3049 const char *footer,
2977 const char *content); 3050 const char *content)
3051 MHD_NONNULL(1,2,3);
2978 3052
2979 3053
2980/** 3054/**
@@ -2989,7 +3063,8 @@ MHD_response_add_trailer (struct MHD_Response *response,
2989_MHD_EXTERN enum MHD_Bool 3063_MHD_EXTERN enum MHD_Bool
2990MHD_response_del_header (struct MHD_Response *response, 3064MHD_response_del_header (struct MHD_Response *response,
2991 const char *header, 3065 const char *header,
2992 const char *content); 3066 const char *content)
3067 MHD_NONNULL(1,2,3);
2993 3068
2994 3069
2995/** 3070/**
@@ -3005,7 +3080,8 @@ MHD_response_del_header (struct MHD_Response *response,
3005_MHD_EXTERN unsigned int 3080_MHD_EXTERN unsigned int
3006MHD_response_get_headers (struct MHD_Response *response, 3081MHD_response_get_headers (struct MHD_Response *response,
3007 MHD_KeyValueIterator iterator, 3082 MHD_KeyValueIterator iterator,
3008 void *iterator_cls); 3083 void *iterator_cls)
3084 MHD_NONNULL(1);
3009 3085
3010 3086
3011/** 3087/**
@@ -3018,7 +3094,8 @@ MHD_response_get_headers (struct MHD_Response *response,
3018 */ 3094 */
3019_MHD_EXTERN const char * 3095_MHD_EXTERN const char *
3020MHD_response_get_header (struct MHD_Response *response, 3096MHD_response_get_header (struct MHD_Response *response,
3021 const char *key); 3097 const char *key)
3098 MHD_NONNULL(1,2);
3022 3099
3023 3100
3024/* ************Upload and PostProcessor functions ********************** */ 3101/* ************Upload and PostProcessor functions ********************** */
@@ -3067,7 +3144,8 @@ typedef struct MHD_Action *
3067 */ 3144 */
3068_MHD_EXTERN struct MHD_Action * 3145_MHD_EXTERN struct MHD_Action *
3069MHD_action_process_upload (MHD_UploadCallback uc, 3146MHD_action_process_upload (MHD_UploadCallback uc,
3070 void *uc_cls); 3147 void *uc_cls)
3148 MHD_NONNULL(1);
3071 3149
3072 3150
3073/** 3151/**
@@ -3132,7 +3210,8 @@ typedef struct MHD_Action *
3132_MHD_EXTERN struct MHD_Action * 3210_MHD_EXTERN struct MHD_Action *
3133MHD_action_parse_post (size_t buffer_size, 3211MHD_action_parse_post (size_t buffer_size,
3134 MHD_PostDataIterator iter, 3212 MHD_PostDataIterator iter,
3135 void *iter_cls); 3213 void *iter_cls)
3214 MHD_NONNULL(2);
3136 3215
3137 3216
3138 3217
@@ -3303,7 +3382,8 @@ _MHD_EXTERN enum MHD_Bool
3303MHD_connection_get_information_sz (struct MHD_Connection *connection, 3382MHD_connection_get_information_sz (struct MHD_Connection *connection,
3304 enum MHD_ConnectionInformationType info_type, 3383 enum MHD_ConnectionInformationType info_type,
3305 union MHD_ConnectionInformation *return_value, 3384 union MHD_ConnectionInformation *return_value,
3306 size_t return_value_size); 3385 size_t return_value_size)
3386 MHD_NONNULL(1,3);
3307 3387
3308 3388
3309/** 3389/**
@@ -3415,7 +3495,8 @@ _MHD_EXTERN enum MHD_Bool
3415MHD_request_get_information_sz (struct MHD_Request *request, 3495MHD_request_get_information_sz (struct MHD_Request *request,
3416 enum MHD_RequestInformationType info_type, 3496 enum MHD_RequestInformationType info_type,
3417 union MHD_RequestInformation *return_value, 3497 union MHD_RequestInformation *return_value,
3418 size_t return_value_size); 3498 size_t return_value_size)
3499 MHD_NONNULL(1,3);
3419 3500
3420 3501
3421/** 3502/**
@@ -3521,7 +3602,8 @@ _MHD_EXTERN enum MHD_Bool
3521MHD_daemon_get_information_sz (struct MHD_Daemon *daemon, 3602MHD_daemon_get_information_sz (struct MHD_Daemon *daemon,
3522 enum MHD_DaemonInformationType info_type, 3603 enum MHD_DaemonInformationType info_type,
3523 union MHD_DaemonInformation *return_value, 3604 union MHD_DaemonInformation *return_value,
3524 size_t return_value_size); 3605 size_t return_value_size)
3606 MHD_NONNULL(1,3);
3525 3607
3526/** 3608/**
3527 * Obtain information about the given daemon. 3609 * Obtain information about the given daemon.
@@ -3588,7 +3670,8 @@ MHD_set_panic_func (MHD_PanicCallback cb,
3588 * shorter afterwards due to elimination of escape sequences) 3670 * shorter afterwards due to elimination of escape sequences)
3589 */ 3671 */
3590_MHD_EXTERN size_t 3672_MHD_EXTERN size_t
3591MHD_http_unescape (char *val); 3673MHD_http_unescape (char *val)
3674 MHD_NONNULL(1);
3592 3675
3593 3676
3594/** 3677/**