Skip to content

Commit

Permalink
Minor code style changes
Browse files Browse the repository at this point in the history
  • Loading branch information
boothj5 committed Nov 8, 2016
1 parent 3c9df43 commit ed75087
Show file tree
Hide file tree
Showing 8 changed files with 407 additions and 374 deletions.
85 changes: 41 additions & 44 deletions src/server/httpapi.c
Expand Up @@ -86,16 +86,19 @@ send_response(struct MHD_Connection* conn, const char* body, int status_code)
response = MHD_create_response_from_data(0, NULL, MHD_NO, MHD_YES);
}

if (!response)
if (!response) {
return MHD_NO;
}

int ret = MHD_queue_response(conn, status_code, response);
MHD_destroy_response(response);

return ret;
}

int connection_cb(void* cls, struct MHD_Connection* conn, const char* url, const char* method,
const char* version, const char* data, size_t* size, void** con_cls)
int
connection_cb(void* cls, struct MHD_Connection* conn, const char* url, const char* method, const char* version,
const char* data, size_t* size, void** con_cls)
{
#ifdef PLATFORM_OSX
pthread_setname_np("http");
Expand Down Expand Up @@ -129,55 +132,49 @@ int connection_cb(void* cls, struct MHD_Connection* conn, const char* url, const
*size = 0;

return MHD_YES;
} else {
const char *id = NULL;
const char *query = NULL;

switch (con_info->stbbr_op) {
case STBBR_OP_SEND:
{
server_send(con_info->body->str);
return send_response(conn, NULL, MHD_HTTP_OK);
}
case STBBR_OP_FOR:
{
id = MHD_lookup_connection_value(conn, MHD_GET_ARGUMENT_KIND, "id");
query = MHD_lookup_connection_value(conn, MHD_GET_ARGUMENT_KIND, "query");
if (id && query) {
return send_response(conn, NULL, MHD_HTTP_BAD_REQUEST);
}

if (id) {
prime_for_id(id, con_info->body->str);
return send_response(conn, NULL, MHD_HTTP_CREATED);
}

if (query) {
prime_for_query(query, con_info->body->str);
return send_response(conn, NULL, MHD_HTTP_CREATED);
}
}

const char *id = NULL;
const char *query = NULL;
int res = 0;

switch (con_info->stbbr_op) {
case STBBR_OP_SEND:
server_send(con_info->body->str);

return send_response(conn, NULL, MHD_HTTP_OK);
case STBBR_OP_FOR:
id = MHD_lookup_connection_value(conn, MHD_GET_ARGUMENT_KIND, "id");
query = MHD_lookup_connection_value(conn, MHD_GET_ARGUMENT_KIND, "query");
if (id && query) {
return send_response(conn, NULL, MHD_HTTP_BAD_REQUEST);
}
case STBBR_OP_VERIFY:
{
int res = verify_any(con_info->body->str, TRUE);
if (res) {
return send_response(conn, "true", MHD_HTTP_OK);
} else {
return send_response(conn, "false", MHD_HTTP_OK);
}

if (id) {
prime_for_id(id, con_info->body->str);
return send_response(conn, NULL, MHD_HTTP_CREATED);
}
default:
{
return send_response(conn, NULL, MHD_HTTP_BAD_REQUEST);

if (query) {
prime_for_query(query, con_info->body->str);
return send_response(conn, NULL, MHD_HTTP_CREATED);
}
}

return send_response(conn, NULL, MHD_HTTP_BAD_REQUEST);
case STBBR_OP_VERIFY:
res = verify_any(con_info->body->str, TRUE);
if (res) {
return send_response(conn, "true", MHD_HTTP_OK);
} else {
return send_response(conn, "false", MHD_HTTP_OK);
}
default:
return send_response(conn, NULL, MHD_HTTP_BAD_REQUEST);
}
}

void request_completed(void* cls, struct MHD_Connection* conn,
void** con_cls, enum MHD_RequestTerminationCode termcode)
void
request_completed(void* cls, struct MHD_Connection* conn, void** con_cls, enum MHD_RequestTerminationCode termcode)
{
ConnectionInfo *con_info = (ConnectionInfo*) *con_cls;
if (con_info) {
Expand Down
161 changes: 85 additions & 76 deletions src/server/log.c
Expand Up @@ -41,26 +41,99 @@ static gboolean logready = FALSE;
static stbbr_log_t minlevel;
pthread_mutex_t loglock;

gchar *
static gchar* _xdg_get_data_home(void);
static gchar* _get_main_log_file(void);
static gboolean _create_dir(char *name);
static gboolean _mkdir_recursive(const char *dir);
static char* _levelstr(stbbr_log_t loglevel);

void
log_init(stbbr_log_t loglevel)
{
pthread_mutex_lock(&loglock);
minlevel = loglevel;
gchar *xdg_data = _xdg_get_data_home();
GString *log_dir = g_string_new(xdg_data);
g_string_append(log_dir, "/stabber/logs");
_mkdir_recursive(log_dir->str);
g_string_free(log_dir, TRUE);
g_free(xdg_data);

gchar *log_file = _get_main_log_file();
logp = fopen(log_file, "a");
g_chmod(log_file, S_IRUSR | S_IWUSR);
free(log_file);
logready = TRUE;
pthread_mutex_unlock(&loglock);
}

void
log_println(stbbr_log_t loglevel, const char * const msg, ...)
{
if (!logready || loglevel < minlevel) {
return;
}

pthread_mutex_lock(&loglock);
va_list arg;
va_start(arg, msg);
GString *fmt_msg = g_string_new(NULL);
g_string_vprintf(fmt_msg, msg, arg);
GTimeZone *tz = g_time_zone_new_local();
GDateTime *dt = g_date_time_new_now(tz);
gchar *date_fmt = g_date_time_format(dt, "%d/%m/%Y %H:%M:%S");
char thr_name[16];

#ifdef PLATFORM_OSX
pthread_t self = pthread_self();
pthread_getname_np(self, thr_name, 16);
#else
prctl(PR_GET_NAME, thr_name);
#endif

char *levelstr = _levelstr(loglevel);
fprintf(logp, "%s: [%s] [%s] %s\n", date_fmt, thr_name, levelstr, fmt_msg->str);
g_date_time_unref(dt);
g_time_zone_unref(tz);
fflush(logp);
g_free(date_fmt);
g_string_free(fmt_msg, TRUE);
va_end(arg);
pthread_mutex_unlock(&loglock);
}

void
log_close(void)
{
pthread_mutex_lock(&loglock);
if (logready && logp) {
fclose(logp);
}
logready = FALSE;
pthread_mutex_unlock(&loglock);
}

static gchar*
_xdg_get_data_home(void)
{
gchar *xdg_data_home = getenv("XDG_DATA_HOME");
if (xdg_data_home)
if (xdg_data_home) {
g_strstrip(xdg_data_home);
}

if (xdg_data_home && (strcmp(xdg_data_home, "") != 0)) {
return strdup(xdg_data_home);
} else {
GString *default_path = g_string_new(getenv("HOME"));
g_string_append(default_path, "/.local/share");
gchar *result = strdup(default_path->str);
g_string_free(default_path, TRUE);

return result;
}

GString *default_path = g_string_new(getenv("HOME"));
g_string_append(default_path, "/.local/share");
gchar *result = strdup(default_path->str);
g_string_free(default_path, TRUE);

return result;
}

static gchar *
static gchar*
_get_main_log_file(void)
{
gchar *xdg_data = _xdg_get_data_home();
Expand All @@ -74,7 +147,7 @@ _get_main_log_file(void)
return result;
}

gboolean
static gboolean
_create_dir(char *name)
{
struct stat sb;
Expand All @@ -91,7 +164,7 @@ _create_dir(char *name)
return TRUE;
}

gboolean
static gboolean
_mkdir_recursive(const char *dir)
{
int i;
Expand All @@ -111,26 +184,6 @@ _mkdir_recursive(const char *dir)
return result;
}

void
log_init(stbbr_log_t loglevel)
{
pthread_mutex_lock(&loglock);
minlevel = loglevel;
gchar *xdg_data = _xdg_get_data_home();
GString *log_dir = g_string_new(xdg_data);
g_string_append(log_dir, "/stabber/logs");
_mkdir_recursive(log_dir->str);
g_string_free(log_dir, TRUE);
g_free(xdg_data);

gchar *log_file = _get_main_log_file();
logp = fopen(log_file, "a");
g_chmod(log_file, S_IRUSR | S_IWUSR);
free(log_file);
logready = TRUE;
pthread_mutex_unlock(&loglock);
}

static char*
_levelstr(stbbr_log_t loglevel)
{
Expand All @@ -142,47 +195,3 @@ _levelstr(stbbr_log_t loglevel)
default: return "";
}
}

void
log_println(stbbr_log_t loglevel, const char * const msg, ...)
{
if (logready && loglevel >= minlevel) {
pthread_mutex_lock(&loglock);
va_list arg;
va_start(arg, msg);
GString *fmt_msg = g_string_new(NULL);
g_string_vprintf(fmt_msg, msg, arg);
GTimeZone *tz = g_time_zone_new_local();
GDateTime *dt = g_date_time_new_now(tz);
gchar *date_fmt = g_date_time_format(dt, "%d/%m/%Y %H:%M:%S");
char thr_name[16];

#ifdef PLATFORM_OSX
pthread_t self = pthread_self();
pthread_getname_np(self, thr_name, 16);
#else
prctl(PR_GET_NAME, thr_name);
#endif

char *levelstr = _levelstr(loglevel);
fprintf(logp, "%s: [%s] [%s] %s\n", date_fmt, thr_name, levelstr, fmt_msg->str);
g_date_time_unref(dt);
g_time_zone_unref(tz);
fflush(logp);
g_free(date_fmt);
g_string_free(fmt_msg, TRUE);
va_end(arg);
pthread_mutex_unlock(&loglock);
}
}

void
log_close(void)
{
pthread_mutex_lock(&loglock);
if (logready && logp) {
fclose(logp);
}
logready = FALSE;
pthread_mutex_unlock(&loglock);
}
24 changes: 13 additions & 11 deletions src/server/prime.c
Expand Up @@ -67,7 +67,7 @@ prime_required_passwd(char *password)
required_passwd = strdup(password);
}

char *
char*
prime_get_passwd(void)
{
return required_passwd;
Expand All @@ -76,11 +76,12 @@ prime_get_passwd(void)
void
prime_for_id(const char *id, char *stream)
{
if (idstubs) {
log_println(STBBR_LOGDEBUG, "Received stub for id: %s, stanza: %s", id, stream);

g_hash_table_insert(idstubs, strdup(id), strdup(stream));
if (!idstubs) {
return;
}

log_println(STBBR_LOGDEBUG, "Received stub for id: %s, stanza: %s", id, stream);
g_hash_table_insert(idstubs, strdup(id), strdup(stream));
}

char*
Expand All @@ -92,15 +93,16 @@ prime_get_for_id(const char *id)
void
prime_for_query(const char *query, char *stream)
{
if (querystubs) {
log_println(STBBR_LOGDEBUG, "Received stub for query: %s, stanza: %s", query, stream);

XMPPStanza *stanza = stanza_parse(stream);
g_hash_table_insert(querystubs, strdup(query), stanza);
if (!querystubs) {
return;
}

log_println(STBBR_LOGDEBUG, "Received stub for query: %s, stanza: %s", query, stream);
XMPPStanza *stanza = stanza_parse(stream);
g_hash_table_insert(querystubs, strdup(query), stanza);
}

XMPPStanza *
XMPPStanza*
prime_get_for_query(const char *query)
{
return g_hash_table_lookup(querystubs, query);
Expand Down

0 comments on commit ed75087

Please sign in to comment.