Fix a few build issues on OSX

PUBLISHED_FROM=d6e7ab0b45c960a4ca0bcb56cbc26bc05d641374
This commit is contained in:
Marko Mikulicic 2016-03-03 14:49:01 +00:00
parent 22cb0efd00
commit 672a68219a
2 changed files with 47 additions and 31 deletions

View File

@ -1,6 +1,6 @@
#include "mongoose.h"
#ifdef MG_MODULE_LINES
#line 0 "./src/internal.h"
#line 1 "./src/internal.h"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -124,7 +124,7 @@ extern void *(*test_calloc)(size_t count, size_t size);
#endif /* MG_INTERNAL_HEADER_INCLUDED */
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/base64.c"
#line 1 "./src/../../common/base64.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -327,7 +327,7 @@ int cs_base64_decode(const unsigned char *s, int len, char *dst) {
#endif /* EXCLUDE_COMMON */
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/cs_dbg.c"
#line 1 "./src/../../common/cs_dbg.c"
#endif
/*
* Copyright (c) 2014-2016 Cesanta Software Limited
@ -377,7 +377,7 @@ void cs_log_set_level(enum cs_log_level level) {
#endif
}
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/cs_dirent.c"
#line 1 "./src/../../common/cs_dirent.c"
#endif
/*
* Copyright (c) 2015 Cesanta Software Limited
@ -515,7 +515,7 @@ int mkdir(const char *path, mode_t mode) {
/* ISO C requires a translation unit to contain at least one declaration */
typedef int cs_dirent_dummy;
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/cs_time.c"
#line 1 "./src/../../common/cs_time.c"
#endif
/*
* Copyright (c) 2014-2016 Cesanta Software Limited
@ -543,7 +543,7 @@ double cs_time() {
return now;
}
#ifdef MG_MODULE_LINES
#line 0 "./src/../deps/frozen/frozen.c"
#line 1 "./src/../deps/frozen/frozen.c"
#endif
/*
* Copyright (c) 2004-2013 Sergey Lyubka <valenok@gmail.com>
@ -1138,7 +1138,7 @@ int json_emit(char *buf, int buf_len, const char *fmt, ...) {
return len;
}
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/md5.c"
#line 1 "./src/../../common/md5.c"
#endif
/*
* This code implements the MD5 message-digest algorithm.
@ -1385,7 +1385,7 @@ char *cs_md5(char buf[33], ...) {
#endif /* EXCLUDE_COMMON */
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/mbuf.c"
#line 1 "./src/../../common/mbuf.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -1482,7 +1482,7 @@ void mbuf_remove(struct mbuf *mb, size_t n) {
#endif /* EXCLUDE_COMMON */
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/sha1.c"
#line 1 "./src/../../common/sha1.c"
#endif
/* Copyright(c) By Steve Reid <steve@edmweb.com> */
/* 100% Public Domain */
@ -1736,7 +1736,7 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen,
#endif /* EXCLUDE_COMMON */
#ifdef MG_MODULE_LINES
#line 0 "./src/../../common/str_util.c"
#line 1 "./src/../../common/str_util.c"
#endif
/*
* Copyright (c) 2015 Cesanta Software Limited
@ -2007,7 +2007,7 @@ const char *c_strnstr(const char *s, const char *find, size_t slen) {
#endif /* EXCLUDE_COMMON */
#ifdef MG_MODULE_LINES
#line 0 "./src/net.c"
#line 1 "./src/net.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -3025,7 +3025,7 @@ double mg_time() {
return cs_time();
}
#ifdef MG_MODULE_LINES
#line 0 "./src/net_if_socket.c"
#line 1 "./src/net_if_socket.c"
#endif
/*
* Copyright (c) 2014-2016 Cesanta Software Limited
@ -3863,7 +3863,7 @@ void mg_if_get_conn_addr(struct mg_connection *nc, int remote,
#endif /* !MG_DISABLE_SOCKET_IF */
#ifdef MG_MODULE_LINES
#line 0 "./src/multithreading.c"
#line 1 "./src/multithreading.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -3932,7 +3932,7 @@ static void spawn_handling_thread(struct mg_connection *nc) {
mg_socketpair(sp, SOCK_STREAM);
memset(&dummy, 0, sizeof(dummy));
c[0] = mg_add_sock(&dummy, sp[0], forwarder_ev_handler);
c[1] = mg_add_sock(&dummy, sp[1], (mg_event_handler_t) nc->listener->priv_1);
c[1] = mg_add_sock(&dummy, sp[1], nc->listener->priv_1.f);
/* Interlink client connection with c[0] */
link_conns(c[0], nc);
@ -3965,12 +3965,12 @@ static void multithreaded_ev_handler(struct mg_connection *c, int ev, void *p) {
void mg_enable_multithreading(struct mg_connection *nc) {
/* Wrap user event handler into our multithreaded_ev_handler */
nc->priv_1 = (void *) nc->handler;
nc->priv_1.f = nc->handler;
nc->handler = multithreaded_ev_handler;
}
#endif
#ifdef MG_MODULE_LINES
#line 0 "./src/uri.c"
#line 1 "./src/uri.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -4147,7 +4147,7 @@ int mg_normalize_uri_path(const struct mg_str *in, struct mg_str *out) {
return 1;
}
#ifdef MG_MODULE_LINES
#line 0 "./src/http.c"
#line 1 "./src/http.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -7436,7 +7436,7 @@ void mg_register_http_endpoint(struct mg_connection *nc, const char *uri_path,
#endif /* MG_DISABLE_HTTP */
#ifdef MG_MODULE_LINES
#line 0 "./src/util.c"
#line 1 "./src/util.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -7705,7 +7705,7 @@ void mg_hexdump_connection(struct mg_connection *nc, const char *path,
MG_SOCK_STRINGIFY_PORT |
MG_SOCK_STRINGIFY_REMOTE);
fprintf(
fp, "%lu %p %s %s %s %d\n", (unsigned long) time(NULL), nc, src,
fp, "%lu %p %s %s %s %d\n", (unsigned long) time(NULL), (void *) nc, src,
ev == MG_EV_RECV ? "<-" : ev == MG_EV_SEND
? "->"
: ev == MG_EV_ACCEPT
@ -7815,7 +7815,7 @@ struct mg_str mg_mk_str(const char *s) {
return ret;
}
#ifdef MG_MODULE_LINES
#line 0 "./src/json-rpc.c"
#line 1 "./src/json-rpc.c"
#endif
/* Copyright (c) 2014 Cesanta Software Limited */
/* All rights reserved */
@ -7976,7 +7976,7 @@ int mg_rpc_parse_reply(const char *buf, int len, struct json_token *toks,
#endif /* MG_DISABLE_JSON_RPC */
#ifdef MG_MODULE_LINES
#line 0 "./src/mqtt.c"
#line 1 "./src/mqtt.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -8277,7 +8277,7 @@ void mg_mqtt_disconnect(struct mg_connection *nc) {
#endif /* MG_DISABLE_MQTT */
#ifdef MG_MODULE_LINES
#line 0 "./src/mqtt-broker.c"
#line 1 "./src/mqtt-broker.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -8450,7 +8450,7 @@ struct mg_mqtt_session *mg_mqtt_next(struct mg_mqtt_broker *brk,
#endif /* MG_ENABLE_MQTT_BROKER */
#ifdef MG_MODULE_LINES
#line 0 "./src/dns.c"
#line 1 "./src/dns.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -8810,7 +8810,7 @@ void mg_set_protocol_dns(struct mg_connection *nc) {
#endif /* MG_DISABLE_DNS */
#ifdef MG_MODULE_LINES
#line 0 "./src/dns-server.c"
#line 1 "./src/dns-server.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -8884,7 +8884,7 @@ int mg_dns_reply_record(struct mg_dns_reply *reply,
#endif /* MG_ENABLE_DNS_SERVER */
#ifdef MG_MODULE_LINES
#line 0 "./src/resolv.c"
#line 1 "./src/resolv.c"
#endif
/*
* Copyright (c) 2014 Cesanta Software Limited
@ -9143,7 +9143,7 @@ int mg_resolve_async_opt(struct mg_mgr *mgr, const char *name, int query,
#endif /* MG_DISABLE_RESOLVE */
#ifdef MG_MODULE_LINES
#line 0 "./src/coap.c"
#line 1 "./src/coap.c"
#endif
/*
* Copyright (c) 2015 Cesanta Software Limited
@ -9655,7 +9655,7 @@ uint32_t mg_coap_compose(struct mg_coap_message *cm, struct mbuf *io) {
}
if (cm->payload.len != 0) {
*ptr = 0xFF;
*ptr = -1;
ptr++;
memcpy(ptr, cm->payload.p, cm->payload.len);
}

View File

@ -286,6 +286,15 @@ struct dirent *readdir(DIR *dir);
#include <sys/types.h>
#include <unistd.h>
/*
* osx correctly avoids defining strtoll when compiling in strict ansi mode.
* We require strtoll, and if your embedded pre-c99 compiler lacks one, please
* implement a shim.
*/
#if !(defined(__DARWIN_C_LEVEL) && __DARWIN_C_LEVEL >= 200809L)
long long strtoll(const char *, char **, int);
#endif
typedef int sock_t;
#define INVALID_SOCKET (-1)
#define SIZE_T_FMT "zu"
@ -1068,10 +1077,17 @@ struct mg_connection {
void *proto_data; /* Protocol-specific data */
mg_event_handler_t handler; /* Event handler function */
void *user_data; /* User-specific data */
void *priv_1; /* Used by mg_enable_multithreading() */
void *priv_2; /* Used by mg_enable_multithreading() */
struct mbuf endpoints; /* Used by mg_register_http_endpoint */
void *mgr_data; /* Implementation-specific event manager's data. */
union {
void *v;
/*
* the C standard is fussy about fitting function pointers into
* void pointers, since some archs might have fat pointers for functions.
*/
mg_event_handler_t f;
} priv_1; /* Used by mg_enable_multithreading() */
void *priv_2; /* Used by mg_enable_multithreading() */
struct mbuf endpoints; /* Used by mg_register_http_endpoint */
void *mgr_data; /* Implementation-specific event manager's data. */
#ifdef MG_ENABLE_HTTP_STREAMING_MULTIPART
struct mbuf strm_state; /* Used by multi-part streaming */
#endif