diff smpp-send/sock_send.c @ 225:243ed87880a1

smpp-send: implement sending via local socket
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 05 Aug 2023 12:52:33 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/smpp-send/sock_send.c	Sat Aug 05 12:52:33 2023 -0800
@@ -0,0 +1,36 @@
+/*
+ * This module implements local datagram socket transmission of the constructed
+ * submit_sm PDU to our smpp-trx-sa daemon process.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+extern char *trx_socket;
+
+void
+send_pdu_via_socket(pdu, pdulen)
+	u_char *pdu;
+	unsigned pdulen;
+{
+	struct sockaddr_un sa;
+	unsigned sa_len;
+	int lsock, rc;
+
+	lsock = socket(AF_UNIX, SOCK_DGRAM, 0);
+	if (lsock < 0) {
+		perror("socket(AF_UNIX, SOCK_DGRAM, 0)");
+		exit(1);
+	}
+	fill_sockaddr_un(trx_socket, &sa, &sa_len);
+	rc = sendto(lsock, pdu, pdulen, 0, (struct sockaddr *) &sa, sa_len);
+	if (rc != pdulen) {
+		perror("send via local socket");
+		exit(1);
+	}
+	close(lsock);
+}