summaryrefslogtreecommitdiffstats
path: root/debian/pilot-link/pilot-link-0.12.5-dfsg/src/pilot-install-netsync.c
diff options
context:
space:
mode:
Diffstat (limited to 'debian/pilot-link/pilot-link-0.12.5-dfsg/src/pilot-install-netsync.c')
-rw-r--r--debian/pilot-link/pilot-link-0.12.5-dfsg/src/pilot-install-netsync.c150
1 files changed, 150 insertions, 0 deletions
diff --git a/debian/pilot-link/pilot-link-0.12.5-dfsg/src/pilot-install-netsync.c b/debian/pilot-link/pilot-link-0.12.5-dfsg/src/pilot-install-netsync.c
new file mode 100644
index 00000000..dbfdd923
--- /dev/null
+++ b/debian/pilot-link/pilot-link-0.12.5-dfsg/src/pilot-install-netsync.c
@@ -0,0 +1,150 @@
+/*
+ * $Id: pilot-install-netsync.c,v 1.49 2007/06/01 01:13:55 desrod Exp $
+ *
+ * pilot-install-netsync.c: Palm Network Information Installer
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+
+#include "pi-dlp.h"
+#include "pi-header.h"
+#include "pi-userland.h"
+
+poptContext po;
+
+int main(int argc, char *argv[])
+{
+ int enable = -1,
+ sd = -1,
+ po_err = -1;
+
+ const char
+ *hostname = NULL,
+ *address = NULL,
+ *netmask = NULL;
+
+ const struct poptOption options[] = {
+ USERLAND_RESERVED_OPTIONS
+ { "enable", 'e', POPT_ARG_VAL, &enable, 1, "Enables LANSync on the Palm"},
+ { "disable", 'd', POPT_ARG_VAL, &enable, 0, "Disable the LANSync setting on the Palm"},
+ { "name", 'n', POPT_ARG_STRING, &hostname, 0, "The hostname of the remote machine you sync with", "<name>"},
+ { "address", 'a', POPT_ARG_STRING, &address, 0, "IP address of the remote machine you connect to", "<address>"},
+ { "mask", 'm', POPT_ARG_STRING, &netmask, 0, "Subnet mask of the network your Palm is on", "<netmask>"},
+ POPT_TABLEEND
+ };
+
+ struct NetSyncInfo Net;
+ struct in_addr addr;
+
+ po = poptGetContext("pilot-install-netsync", argc, (const char **) argv, options, 0);
+ poptSetOtherOptionHelp(po," [-p port] <netsync options>\n\n"
+ " Assigns your Palm device NetSync information\n\n"
+ " Example:\n"
+ " -p usb: -e -n \"NEPTUNE\" -a 10.0.1.10 -m 255.255.255.0\n\n");
+
+ if (argc < 2) {
+ poptPrintUsage(po,stderr,0);
+ return 1;
+ }
+
+ while ((po_err = poptGetNextOpt(po)) >= 0) {
+ }
+ if (po_err < -1) plu_badoption(po,po_err);
+
+ /* FIXME: Take the user-supplied IP or hostname and reverse it to
+ get the other component, which reduces the complexity of this by
+ one argument passed in. getnameinfo() will help here. */
+ if (address && !inet_pton(AF_INET, address, &addr)) {
+ fprintf(stderr," ERROR: The address you supplied, '%s' is in invalid.\n"
+ " Please supply a dotted quad, such as 1.2.3.4\n\n", address);
+ return 1;
+ }
+
+ if (netmask && !inet_pton(AF_INET, netmask, &addr)) {
+ fprintf(stderr," ERROR: The netmask you supplied, '%s' is in invalid.\n"
+ " Please supply a dotted quad, such as 255.255.255.0\n\n", netmask);
+ return 1;
+ }
+
+ sd = plu_connect();
+ if (sd < 0)
+ goto error;
+
+ if (dlp_OpenConduit(sd) < 0)
+ goto error_close;
+
+ /* Read and write the LANSync data to the Palm device */
+ if (dlp_ReadNetSyncInfo(sd, &Net) < 0)
+ goto error_close;
+
+ if (enable != -1)
+ Net.lanSync = enable;
+
+ if (!plu_quiet) {
+ printf(" LANSync....: %sabled\n", (Net.lanSync == 1 ? "En" : "Dis"));
+ fflush(stdout);
+ }
+
+ if (hostname)
+ strncpy(Net.hostName, hostname, sizeof(Net.hostName));
+
+ if (address)
+ strncpy(Net.hostAddress, address, sizeof(Net.hostAddress));
+
+ if (netmask)
+ strncpy(Net.hostSubnetMask, netmask,
+ sizeof(Net.hostSubnetMask));
+
+ if (!plu_quiet) {
+ printf(" Hostname...: %s\n", Net.hostName);
+ printf(" IP Address.: %s\n", Net.hostAddress);
+ printf(" Netmask....: %s\n\n", Net.hostSubnetMask);
+ }
+
+ if (dlp_WriteNetSyncInfo(sd, &Net) < 0)
+ goto error_close;
+
+ if (dlp_AddSyncLogEntry(sd, "pilot-install-netsync, exited normally.\n"
+ "Thank you for using pilot-link.\n") < 0)
+ goto error_close;
+
+ if (dlp_EndOfSync(sd, 0) < 0)
+ goto error_close;
+
+ if (pi_close(sd) < 0)
+ goto error;
+
+ return 0;
+
+error_close:
+ pi_close(sd);
+
+error:
+ return -1;
+}
+
+/* vi: set ts=8 sw=4 sts=4 noexpandtab: cin */
+/* ex: set tabstop=4 expandtab: */
+/* Local Variables: */
+/* indent-tabs-mode: t */
+/* c-basic-offset: 8 */
+/* End: */