Create shared library
This commit is contained in:
15
.gitignore
vendored
15
.gitignore
vendored
@@ -23,3 +23,18 @@ stabber.workspace
|
||||
compile_commands.json
|
||||
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
|
||||
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
|
||||
lib_LTLIBRARIES = libstabber.la
|
||||
|
||||
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_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_SRCDIR([src/server/server.c])
|
||||
AC_CONFIG_HEADERS([src/config.h])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
||||
LT_INIT
|
||||
|
||||
### Checks for programs.
|
||||
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/parser.h"
|
||||
#include "server/stanza.h"
|
||||
#include "server/server.h"
|
||||
|
||||
#define XML_START "<?xml version=\"1.0\"?>"
|
||||
|
||||
@@ -145,42 +146,13 @@ auth_callback(XMPPStanza *stanza, XMPPClient *client)
|
||||
printf("RECV: ");
|
||||
}
|
||||
|
||||
int main(int argc , char *argv[])
|
||||
int
|
||||
server_run(int port)
|
||||
{
|
||||
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 = 5222;
|
||||
}
|
||||
printf("Starting on port: %d...\n", port);
|
||||
|
||||
struct sockaddr_in server_addr, client_addr;
|
||||
|
||||
if (argc == 2) {
|
||||
port = atoi(argv[1]);
|
||||
}
|
||||
|
||||
printf("Starting on port: %d...\n", port);
|
||||
|
||||
// create socket
|
||||
errno = 0;
|
||||
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) {}
|
||||
shutdown(listen_socket, 2);
|
||||
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