| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- /*
- * libwebsockets - small server side websockets and web server implementation
- *
- * Copyright (C) 2010 - 2019 Andy Green <[email protected]>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
- #include "private-lib-core.h"
- #if !defined(LWS_WITH_NETWORK)
- #include <crypto/crypto.h>
- #endif
- int errno;
- #if !defined(LWS_WITH_NETWORK)
- char *
- strcpy(char *dest, const char *src)
- {
- char *desto = dest;
- while (*src)
- *(dest++) = *(src++);
- *(dest++) = '\0';
- return desto;
- }
- char *strncpy(char *dest, const char *src, size_t limit)
- {
- char *desto = dest;
- while (*src && limit--)
- *(dest++) = *(src++);
- if (limit)
- *(dest++) = '\0';
- return desto;
- }
- #endif
- int lws_plat_apply_FD_CLOEXEC(int n)
- {
- return 0;
- }
- void TEE_GenerateRandom(void *randomBuffer, uint32_t randomBufferLen);
- #if defined(LWS_WITH_NETWORK)
- uint64_t
- lws_now_usecs(void)
- {
- return ((unsigned long long)time(NULL)) * 1000000;
- }
- #endif
- size_t
- lws_get_random(struct lws_context *context, void *buf, size_t len)
- {
- #if defined(LWS_WITH_NETWORK)
- TEE_GenerateRandom(buf, len);
- #else
- crypto_rng_read(buf, len);
- #endif
- return len;
- }
- static const char * const colours[] = {
- "[31;1m", /* LLL_ERR */
- "[36;1m", /* LLL_WARN */
- "[35;1m", /* LLL_NOTICE */
- "[32;1m", /* LLL_INFO */
- "[34;1m", /* LLL_DEBUG */
- "[33;1m", /* LLL_PARSER */
- "[33;1m", /* LLL_HEADER */
- "[33;1m", /* LLL_EXT */
- "[33;1m", /* LLL_CLIENT */
- "[33;1m", /* LLL_LATENCY */
- "[30;1m", /* LLL_USER */
- };
- void lwsl_emit_optee(int level, const char *line)
- {
- char buf[50], linecp[512];
- int n, m = LWS_ARRAY_SIZE(colours) - 1;
- lwsl_timestamp(level, buf, sizeof(buf));
- n = 1 << (LWS_ARRAY_SIZE(colours) - 1);
- while (n) {
- if (level & n)
- break;
- m--;
- n >>= 1;
- }
- n = strlen(line);
- if ((unsigned int)n > sizeof(linecp) - 1)
- n = sizeof(linecp) - 1;
- if (n) {
- memcpy(linecp, line, n - 1);
- linecp[n - 1] = '\0';
- } else
- linecp[0] = '\0';
- EMSG("%c%s%s%s%c[0m", 27, colours[m], buf, linecp, 27);
- }
- int
- lws_plat_set_nonblocking(lws_sockfd_type fd)
- {
- return 0;
- }
- int
- lws_plat_drop_app_privileges(struct lws_context *context, int actually_init)
- {
- return 0;
- }
- int
- lws_plat_context_early_init(void)
- {
- return 0;
- }
- void
- lws_plat_context_early_destroy(struct lws_context *context)
- {
- }
- void
- lws_plat_context_late_destroy(struct lws_context *context)
- {
- #if defined(LWS_WITH_NETWORK)
- if (context->lws_lookup)
- lws_free(context->lws_lookup);
- #endif
- }
- lws_fop_fd_t
- _lws_plat_file_open(const struct lws_plat_file_ops *fops,
- const char *filename, const char *vpath, lws_fop_flags_t *flags)
- {
- return NULL;
- }
- int
- _lws_plat_file_close(lws_fop_fd_t *fop_fd)
- {
- return 0;
- }
- lws_fileofs_t
- _lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset)
- {
- return 0;
- }
- int
- _lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount,
- uint8_t *buf, lws_filepos_t len)
- {
- return 0;
- }
- int
- _lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount,
- uint8_t *buf, lws_filepos_t len)
- {
- return 0;
- }
- int
- lws_plat_init(struct lws_context *context,
- const struct lws_context_creation_info *info)
- {
- #if defined(LWS_WITH_NETWORK)
- /* master context has the global fd lookup array */
- context->lws_lookup = lws_zalloc(sizeof(struct lws *) *
- context->max_fds, "lws_lookup");
- if (context->lws_lookup == NULL) {
- lwsl_err("OOM on lws_lookup array for %d connections\n",
- context->max_fds);
- return 1;
- }
- lwsl_notice(" mem: platform fd map: %5lu bytes\n",
- (long)sizeof(struct lws *) * context->max_fds);
- #endif
- #ifdef LWS_WITH_PLUGINS
- if (info->plugin_dirs)
- lws_plat_plugins_init(context, info->plugin_dirs);
- #endif
- return 0;
- }
- int
- lws_plat_write_file(const char *filename, void *buf, int len)
- {
- return 1;
- }
- int
- lws_plat_read_file(const char *filename, void *buf, int len)
- {
- return -1;
- }
- int
- lws_plat_recommended_rsa_bits(void)
- {
- return 4096;
- }
- int
- lws_plat_ntpclient_config(struct lws_context *context)
- {
- #if 0
- char *ntpsrv = getenv("LWS_NTP_SERVER");
- if (ntpsrv && strlen(ntpsrv) < 64) {
- lws_system_blob_heap_append(lws_system_get_blob(context,
- LWS_SYSBLOB_TYPE_NTP_SERVER, 0),
- (const uint8_t *)ntpsrv,
- strlen(ntpsrv));
- return 1;
- }
- #endif
- return 0;
- }
- void
- lws_msleep(unsigned int ms)
- {
- }
|