Create shared library
This commit is contained in:
15
.gitignore
vendored
15
.gitignore
vendored
@@ -23,3 +23,18 @@ stabber.workspace
|
|||||||
compile_commands.json
|
compile_commands.json
|
||||||
stabber.tags
|
stabber.tags
|
||||||
|
|
||||||
|
.deps/
|
||||||
|
.libs/
|
||||||
|
libstabber.la
|
||||||
|
libtool
|
||||||
|
m4/
|
||||||
|
runstabber
|
||||||
|
src/.deps/
|
||||||
|
src/.dirstamp
|
||||||
|
src/server/parser.lo
|
||||||
|
src/server/server.lo
|
||||||
|
src/server/stanza.lo
|
||||||
|
src/server/xmppclient.lo
|
||||||
|
src/client/.dirstamp
|
||||||
|
src/client/stabber.lo
|
||||||
|
|
||||||
|
|||||||
20
Makefile.am
20
Makefile.am
@@ -1,2 +1,18 @@
|
|||||||
bin_PROGRAMS = stabber
|
lib_LTLIBRARIES = libstabber.la
|
||||||
stabber_SOURCES = src/server/server.c src/server/xmppclient.h src/server/xmppclient.c src/server/parser.h src/server/parser.c src/server/stanza.h src/server/stanza.c
|
|
||||||
|
sources = \
|
||||||
|
src/server/server.c src/server/server.h \
|
||||||
|
src/server/xmppclient.c src/server/xmppclient.h \
|
||||||
|
src/server/parser.c src/server/parser.h \
|
||||||
|
src/server/stanza.c src/server/stanza.h \
|
||||||
|
src/client/stabber.c src/client/stabber.h
|
||||||
|
|
||||||
|
libstabber_la_LDFLAGS = -export-symbols-regex '^stabber_'
|
||||||
|
libstabber_la_SOURCES = $(sources)
|
||||||
|
|
||||||
|
include_HEADERS = stabber.h
|
||||||
|
|
||||||
|
noinst_PROGRAMS = runstabber
|
||||||
|
runstabber_SOURCES = runstabber.c
|
||||||
|
runstabber_CFLAGS = -I$(top_srcdir)
|
||||||
|
runstabber_LDADD = libstabber.la
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
AC_INIT([stabber], [0.1.0], [boothj5web@gmail.com])
|
AC_INIT([stabber], [0.1.0], [boothj5web@gmail.com])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AC_CONFIG_SRCDIR([src/server/server.c])
|
|
||||||
AC_CONFIG_HEADERS([src/config.h])
|
AC_CONFIG_HEADERS([src/config.h])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
||||||
|
LT_INIT
|
||||||
|
|
||||||
### Checks for programs.
|
### Checks for programs.
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
|||||||
6
runstabber.c
Normal file
6
runstabber.c
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#include <stabber.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return stabber_start(5230);
|
||||||
|
}
|
||||||
7
src/client/stabber.c
Normal file
7
src/client/stabber.c
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#include "server/server.h"
|
||||||
|
|
||||||
|
int
|
||||||
|
stabber_start(int port)
|
||||||
|
{
|
||||||
|
return server_run(port);
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
#include "server/xmppclient.h"
|
#include "server/xmppclient.h"
|
||||||
#include "server/parser.h"
|
#include "server/parser.h"
|
||||||
#include "server/stanza.h"
|
#include "server/stanza.h"
|
||||||
|
#include "server/server.h"
|
||||||
|
|
||||||
#define XML_START "<?xml version=\"1.0\"?>"
|
#define XML_START "<?xml version=\"1.0\"?>"
|
||||||
|
|
||||||
@@ -145,42 +146,13 @@ auth_callback(XMPPStanza *stanza, XMPPClient *client)
|
|||||||
printf("RECV: ");
|
printf("RECV: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc , char *argv[])
|
int
|
||||||
|
server_run(int port)
|
||||||
{
|
{
|
||||||
int port = 0;
|
printf("Starting on port: %d...\n", port);
|
||||||
|
|
||||||
GOptionEntry entries[] =
|
|
||||||
{
|
|
||||||
{ "port", 'p', 0, G_OPTION_ARG_INT, &port, "Listen port", NULL },
|
|
||||||
{ NULL }
|
|
||||||
};
|
|
||||||
|
|
||||||
GError *error = NULL;
|
|
||||||
GOptionContext *context;
|
|
||||||
|
|
||||||
context = g_option_context_new(NULL);
|
|
||||||
g_option_context_add_main_entries(context, entries, NULL);
|
|
||||||
if (!g_option_context_parse(context, &argc, &argv, &error)) {
|
|
||||||
g_print("%s\n", error->message);
|
|
||||||
g_option_context_free(context);
|
|
||||||
g_error_free(error);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_option_context_free(context);
|
|
||||||
|
|
||||||
if (port == 0) {
|
|
||||||
port = 5222;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct sockaddr_in server_addr, client_addr;
|
struct sockaddr_in server_addr, client_addr;
|
||||||
|
|
||||||
if (argc == 2) {
|
|
||||||
port = atoi(argv[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Starting on port: %d...\n", port);
|
|
||||||
|
|
||||||
// create socket
|
// create socket
|
||||||
errno = 0;
|
errno = 0;
|
||||||
int listen_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); // ipv4, tcp, ip
|
int listen_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); // ipv4, tcp, ip
|
||||||
@@ -240,5 +212,43 @@ int main(int argc , char *argv[])
|
|||||||
while (recv(listen_socket, NULL, 1, 0) > 0) {}
|
while (recv(listen_socket, NULL, 1, 0) > 0) {}
|
||||||
shutdown(listen_socket, 2);
|
shutdown(listen_socket, 2);
|
||||||
close(listen_socket);
|
close(listen_socket);
|
||||||
return 0;
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc , char *argv[])
|
||||||
|
{
|
||||||
|
int port = 0;
|
||||||
|
|
||||||
|
GOptionEntry entries[] =
|
||||||
|
{
|
||||||
|
{ "port", 'p', 0, G_OPTION_ARG_INT, &port, "Listen port", NULL },
|
||||||
|
{ NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
GError *error = NULL;
|
||||||
|
GOptionContext *context;
|
||||||
|
|
||||||
|
context = g_option_context_new(NULL);
|
||||||
|
g_option_context_add_main_entries(context, entries, NULL);
|
||||||
|
if (!g_option_context_parse(context, &argc, &argv, &error)) {
|
||||||
|
g_print("%s\n", error->message);
|
||||||
|
g_option_context_free(context);
|
||||||
|
g_error_free(error);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_option_context_free(context);
|
||||||
|
|
||||||
|
if (port == 0) {
|
||||||
|
port = 5230;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (argc == 2) {
|
||||||
|
port = atoi(argv[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return server_run(port);
|
||||||
}
|
}
|
||||||
|
|||||||
6
src/server/server.h
Normal file
6
src/server/server.h
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef __H_SERVER
|
||||||
|
#define __H_SERVER
|
||||||
|
|
||||||
|
int server_run(int port);
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user