app-misc/irtrans-irclient: move patches to DISTDIR
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@690 6952d904-891a-0410-993b-d76249ca496b
This commit is contained in:
parent
b54dc542d8
commit
37eb0a4a41
@ -1,7 +1,12 @@
|
|||||||
# ChangeLog for app-misc/irtrans-irclient
|
# ChangeLog for app-misc/irtrans-irclient
|
||||||
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
|
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
|
||||||
# $Header: $
|
# $Header: $
|
||||||
|
|
||||||
|
09 Jan 2009; Mario Fetka <mario.fetka@gmail.com>
|
||||||
|
-files/irtrans-irclient-5.11.04-ip_assign-1.patch,
|
||||||
|
irtrans-irclient-5.11.04.ebuild:
|
||||||
|
move patches to DISTDIR
|
||||||
|
|
||||||
06 Aug 2008; Mario Fetka <mario.fetka@gmail.com>
|
06 Aug 2008; Mario Fetka <mario.fetka@gmail.com>
|
||||||
irtrans-irclient-5.11.04.ebuild:
|
irtrans-irclient-5.11.04.ebuild:
|
||||||
correct typo
|
correct typo
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
AUX irtrans-irclient-5.11.04-ip_assign-1.patch 16659 RMD160 966bb00cb17ab61156509848d6ab22735a083def SHA1 43097f77796360d3c3a459df1ac93a4f7026e17e SHA256 a2042618e026f1f5dff8ab0566d2dc1e0f8626e9ba7ff26afc56b358b317dbd9
|
|
||||||
AUX irtrans-irclient-5.9.01-missing-include.diff 363 RMD160 fff180d91331e6a0b1939e320a5ee7854bae2de6 SHA1 6a0b103619a802ceb541cee15d8436ac32e995b0 SHA256 48753faa1661c2519dc55fcb95da93319e36cebdc5ea48ece4f633b36fdcc288
|
AUX irtrans-irclient-5.9.01-missing-include.diff 363 RMD160 fff180d91331e6a0b1939e320a5ee7854bae2de6 SHA1 6a0b103619a802ceb541cee15d8436ac32e995b0 SHA256 48753faa1661c2519dc55fcb95da93319e36cebdc5ea48ece4f633b36fdcc288
|
||||||
AUX irtrans-irclient-5.9.04-missing-include.diff 363 RMD160 6cd48a93958f35454d17aaedce43bc1d95ad2cb6 SHA1 2a6a4230c1a2c754c0ffc29c4aabe727897cc054 SHA256 e74521300f5a6795232fa6465226cc0c261305eb2ea55f944f3911dd1e958d4d
|
AUX irtrans-irclient-5.9.04-missing-include.diff 363 RMD160 6cd48a93958f35454d17aaedce43bc1d95ad2cb6 SHA1 2a6a4230c1a2c754c0ffc29c4aabe727897cc054 SHA256 e74521300f5a6795232fa6465226cc0c261305eb2ea55f944f3911dd1e958d4d
|
||||||
DIST irclient-src-5.11.04.tar.gz 44123 RMD160 d756a3655b82085430e26e194271ddc1504e2844 SHA1 e8b9bcaa74bcbc01ed92552d77e9902c01b7ff16 SHA256 9e31bbdfdfd883e91c15b50c1916b93c8db680ad07a4e48006afe8e2ad8de4f9
|
DIST irclient-src-5.11.04.tar.gz 44123 RMD160 d756a3655b82085430e26e194271ddc1504e2844 SHA1 e8b9bcaa74bcbc01ed92552d77e9902c01b7ff16 SHA256 9e31bbdfdfd883e91c15b50c1916b93c8db680ad07a4e48006afe8e2ad8de4f9
|
||||||
DIST irserver-src-5.9.04.tar.gz 143574 RMD160 acea7223dea66d8be97e716d0a1aa2f128f98176 SHA1 d3f6687785bab24abb5cd5019ef5d6892ced7b1f SHA256 9f3877d6c8fcc67b5198bb05c2ffab24116121c09124f744eb9d795e925485a9
|
DIST irserver-src-5.9.04.tar.gz 143574 RMD160 acea7223dea66d8be97e716d0a1aa2f128f98176 SHA1 d3f6687785bab24abb5cd5019ef5d6892ced7b1f SHA256 9f3877d6c8fcc67b5198bb05c2ffab24116121c09124f744eb9d795e925485a9
|
||||||
DIST irserver-src-5.9.07.tar.gz 143809 RMD160 747eeb70f5f869f689517250bcfd75fe0af1d924 SHA1 49210d5adebba6852439cfb4e640434303b0a83f SHA256 2416be01cc7f2bc32fc71407d503c1c285987d32e0dab905921c639d2fd79702
|
DIST irserver-src-5.9.07.tar.gz 143809 RMD160 747eeb70f5f869f689517250bcfd75fe0af1d924 SHA1 49210d5adebba6852439cfb4e640434303b0a83f SHA256 2416be01cc7f2bc32fc71407d503c1c285987d32e0dab905921c639d2fd79702
|
||||||
EBUILD irtrans-irclient-5.11.04.ebuild 1506 RMD160 66e5267d57644bb24b1a46c7a2c9b7f1ba9684a9 SHA1 06be2ef9ce0d569abf8d6106bcaa1214bab3f0c3 SHA256 f05e3d54473c08ebb1ce361e9dcab607ff7be898edfd3da7090434bec28aa40f
|
DIST irtrans-irclient-5.11.04-ip_assign-1.patch.bz2 5051 RMD160 0b04bd863acaf0a7d1b06434efc3494ed4b74c70 SHA1 68b891c132e6aff50bfac22635c9a360ed9d0eea SHA256 094ee33b2a7a7fb4752bda0896a7a23895fa8eba86164fe9e0c4e63790e34739
|
||||||
|
EBUILD irtrans-irclient-5.11.04.ebuild 1578 RMD160 9cacff549fe79492742adbf37a89ab853d1a49ce SHA1 63a21ae6dc58dcba976125a6de3e0d0174063f08 SHA256 344cd306b217017d4a06f2ee14dd080a928f544f05b62a913efcffb667a17df4
|
||||||
EBUILD irtrans-irclient-5.9.04.ebuild 853 RMD160 21e44943249aa1ae36822b10b2f174ecd7db4105 SHA1 1d5663b011858016945b2d30f4848c6707f16cea SHA256 0f6a4cad7da18eb91fffbff0435e6498b6c4cafbb2fe75c0e816662724c1dd92
|
EBUILD irtrans-irclient-5.9.04.ebuild 853 RMD160 21e44943249aa1ae36822b10b2f174ecd7db4105 SHA1 1d5663b011858016945b2d30f4848c6707f16cea SHA256 0f6a4cad7da18eb91fffbff0435e6498b6c4cafbb2fe75c0e816662724c1dd92
|
||||||
EBUILD irtrans-irclient-5.9.07-r1.ebuild 967 RMD160 dea515aae740779ae462880430e629eaf08224a4 SHA1 0dd219b329773c0fe49d5708f00f2c19cbf9fccb SHA256 c483c1644d2b6882114b15173ee4f93b3273c48418f3be5ff1fc013add49e791
|
EBUILD irtrans-irclient-5.9.07-r1.ebuild 967 RMD160 dea515aae740779ae462880430e629eaf08224a4 SHA1 0dd219b329773c0fe49d5708f00f2c19cbf9fccb SHA256 c483c1644d2b6882114b15173ee4f93b3273c48418f3be5ff1fc013add49e791
|
||||||
EBUILD irtrans-irclient-5.9.07.ebuild 836 RMD160 e8f9affd0ffbbc19aa15e921058a08d33035d8cc SHA1 e44e487e62c2e9ec8d1c22542034fd491967fa1c SHA256 623be9defbe24609c81d60b71699fdf3e95bf5af3ae233997339ce1b73bbe64c
|
EBUILD irtrans-irclient-5.9.07.ebuild 836 RMD160 e8f9affd0ffbbc19aa15e921058a08d33035d8cc SHA1 e44e487e62c2e9ec8d1c22542034fd491967fa1c SHA256 623be9defbe24609c81d60b71699fdf3e95bf5af3ae233997339ce1b73bbe64c
|
||||||
MISC ChangeLog 1854 RMD160 096afec834a486b230e4f984188446ea23b21b3f SHA1 ab196561609b3cef79d8058125b2008c624fa753 SHA256 27b2e215a3c59d748aa24a649bed81131f187cf86a4d404cb9dcb3388afa8c28
|
MISC ChangeLog 2020 RMD160 27388e9d2bc3343bba402bf6249d0c80706ccce0 SHA1 f2ee87e54b6d1c95551d2871dbc29a4c57bcdc50 SHA256 3f042eecb14e7bff198efec92d3b7e63d91ff680bc4a1c73a313241c398c3c43
|
||||||
MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42
|
MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42
|
||||||
|
@ -1,662 +0,0 @@
|
|||||||
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
|
||||||
Date: 2008-08-06
|
|
||||||
Initial Package Version: 5.11.04
|
|
||||||
Origin: http://irtrans.de irserver package 5.09.07
|
|
||||||
Upstream Status: unknown
|
|
||||||
Description: readd ip_assign to the irclient package
|
|
||||||
|
|
||||||
diff -Naur irclient-5.11.04.orig/ip_assign.c irclient-5.11.04/ip_assign.c
|
|
||||||
--- irclient-5.11.04.orig/ip_assign.c 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ irclient-5.11.04/ip_assign.c 2007-08-19 21:03:25.000000000 +0000
|
|
||||||
@@ -0,0 +1,601 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2007, IRTrans GmbH
|
|
||||||
+ * All rights reserved.
|
|
||||||
+ *
|
|
||||||
+ * Redistribution and use in source and binary forms, with or without
|
|
||||||
+ * modification, are permitted provided that the following conditions are met:
|
|
||||||
+ * * Redistributions of source code must retain the above copyright
|
|
||||||
+ * notice, this list of conditions and the following disclaimer.
|
|
||||||
+ * * Redistributions in binary form must reproduce the above copyright
|
|
||||||
+ * notice, this list of conditions and the following disclaimer in the
|
|
||||||
+ * documentation and/or other materials provided with the distribution.
|
|
||||||
+ * * Neither the name of IRTrans GmbH nor the
|
|
||||||
+ * names of its contributors may be used to endorse or promote products
|
|
||||||
+ * derived from this software without specific prior written permission.
|
|
||||||
+ *
|
|
||||||
+ * THIS SOFTWARE IS PROVIDED BY IRTrans GmbH ``AS IS'' AND ANY
|
|
||||||
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
+ * DISCLAIMED. IN NO EVENT SHALL IRTrans GmbH BE LIABLE FOR ANY
|
|
||||||
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
||||||
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+
|
|
||||||
+#include <winsock2.h>
|
|
||||||
+#include <windows.h>
|
|
||||||
+
|
|
||||||
+#else
|
|
||||||
+
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+#include <sys/socket.h>
|
|
||||||
+#include <netinet/in.h>
|
|
||||||
+#include <sys/un.h>
|
|
||||||
+#include <arpa/inet.h>
|
|
||||||
+#include <sys/stat.h>
|
|
||||||
+#include <errno.h>
|
|
||||||
+#include <netdb.h>
|
|
||||||
+#include <signal.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <net/if.h>
|
|
||||||
+#include <sys/ioctl.h>
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+typedef int SOCKET;
|
|
||||||
+typedef void* WSAEVENT;
|
|
||||||
+#define closesocket close
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#include <stdio.h>
|
|
||||||
+
|
|
||||||
+typedef unsigned char byte;
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+typedef unsigned int uint;
|
|
||||||
+typedef unsigned short ushort;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+typedef struct {
|
|
||||||
+ byte op;
|
|
||||||
+ byte htype;
|
|
||||||
+ byte hlen;
|
|
||||||
+ byte hops;
|
|
||||||
+ uint xid;
|
|
||||||
+ ushort secs;
|
|
||||||
+ ushort flags;
|
|
||||||
+ uint client_ip;
|
|
||||||
+ uint own_ip;
|
|
||||||
+ uint server_ip;
|
|
||||||
+ uint relay_ip;
|
|
||||||
+ byte client_mac[16];
|
|
||||||
+ byte server_name[64];
|
|
||||||
+ byte file[128];
|
|
||||||
+ byte opt_header[13];
|
|
||||||
+ byte options[299];
|
|
||||||
+} DHCP_REQUEST;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+typedef struct {
|
|
||||||
+ uint ip;
|
|
||||||
+ uint netmask;
|
|
||||||
+ uint gateway;
|
|
||||||
+ char password[30];
|
|
||||||
+ byte dhcp_flag;
|
|
||||||
+} IP_PARAM;
|
|
||||||
+
|
|
||||||
+typedef struct {
|
|
||||||
+ uint ip;
|
|
||||||
+ byte mac[6];
|
|
||||||
+ char firmware[10];
|
|
||||||
+ char ir_firmware[10];
|
|
||||||
+ byte dhcp_flag;
|
|
||||||
+} DEVICE_ENTRY;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+WSAEVENT IrtLanEvent;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+SOCKET snd_socket[32],rcv_socket;
|
|
||||||
+
|
|
||||||
+int open_sockets (uint ip[],int cnt);
|
|
||||||
+void new_devicequery (byte msg,uint srvadr,DHCP_REQUEST *req);
|
|
||||||
+void new_dhcpset (byte msg,uint srvadr,byte mac[],char password[],DHCP_REQUEST *req);
|
|
||||||
+void new_ipset (byte msg,uint srvadr,byte mac[],uint ip,uint nm,uint gw,char password[],DHCP_REQUEST *req);
|
|
||||||
+void SendQuery (uint ips[],int cnt);
|
|
||||||
+int ReadDevices (DEVICE_ENTRY *dev,int cnt);
|
|
||||||
+int StoreDevice (DEVICE_ENTRY *dev,DHCP_REQUEST *req);
|
|
||||||
+void read_ip_parameter (IP_PARAM *ip);
|
|
||||||
+void SetIP (uint ips[],int cnt,DEVICE_ENTRY *dev,IP_PARAM *ip);
|
|
||||||
+int GetOwnIP (uint ips[]);
|
|
||||||
+int GetInterfaces (uint ips[]);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int main (int argc,char *argv[])
|
|
||||||
+
|
|
||||||
+{
|
|
||||||
+ int res,i,choice;
|
|
||||||
+ char nm[100];
|
|
||||||
+ struct in_addr iadr;
|
|
||||||
+ IP_PARAM ip;
|
|
||||||
+ DEVICE_ENTRY irtrans[256];
|
|
||||||
+ int device_count;
|
|
||||||
+ uint ip_adr[32];
|
|
||||||
+ int ip_count = 0;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+ int err;
|
|
||||||
+ WORD wVersionRequired;
|
|
||||||
+ WSADATA wsaData;
|
|
||||||
+ wVersionRequired = MAKEWORD(2,2);
|
|
||||||
+ err = WSAStartup(wVersionRequired, &wsaData);
|
|
||||||
+ if (err != 0) return (1);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ argc++;
|
|
||||||
+ for (;--argc > 2;argv++) { // Process all Command Line Arguments
|
|
||||||
+ if (!strcmp (argv[1],"-interface")) {
|
|
||||||
+ argc--;
|
|
||||||
+ argv++;
|
|
||||||
+ ip_adr[0] = inet_addr (argv[1]);
|
|
||||||
+ ip_count = 1;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ if (!ip_count) {
|
|
||||||
+ ip_count = GetOwnIP (ip_adr);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ for (i=0;i < ip_count;i++) {
|
|
||||||
+ iadr.s_addr = ip_adr[i];
|
|
||||||
+ if (!i) printf ("\nOwn Interfaces / IPs: %s\n",inet_ntoa(iadr));
|
|
||||||
+ else printf (" %s\n",inet_ntoa(iadr));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ printf ("\n");
|
|
||||||
+ res = open_sockets (ip_adr,ip_count);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ if (res) {
|
|
||||||
+ printf ("Open socket error: %d [%d]\n",res,errno);
|
|
||||||
+ perror (NULL);
|
|
||||||
+ exit (-1);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ while (1) {
|
|
||||||
+ SendQuery (ip_adr,ip_count);
|
|
||||||
+
|
|
||||||
+ memset (irtrans,0,sizeof (irtrans));
|
|
||||||
+ device_count = ReadDevices (irtrans,ip_count);
|
|
||||||
+
|
|
||||||
+ if (!device_count) {
|
|
||||||
+ printf ("No IRTrans Ethernet device(s) found\n");
|
|
||||||
+ exit (0);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ printf ("\n%2d IRTrans Ethernet device(s) found:\n",device_count);
|
|
||||||
+ printf ("----------------------------------------------------------------\n");
|
|
||||||
+
|
|
||||||
+ for (i=0;i < device_count;i++) {
|
|
||||||
+ iadr.s_addr = irtrans[i].ip;
|
|
||||||
+
|
|
||||||
+ if (irtrans[i].dhcp_flag == 1) strcpy (nm,"DHCP");
|
|
||||||
+ else nm[0] = 0;
|
|
||||||
+ printf ("%2d %02x-%02x-%02x-%02x-%02x-%02x %-15s %s %8s %s\n",i+1,irtrans[i].mac[0],irtrans[i].mac[1],irtrans[i].mac[2],
|
|
||||||
+ irtrans[i].mac[3],irtrans[i].mac[4],irtrans[i].mac[5],inet_ntoa(iadr),irtrans[i].firmware,irtrans[i].ir_firmware,nm);
|
|
||||||
+ }
|
|
||||||
+ printf ("----------------------------------------------------------------\n");
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ printf ("Please select device to use (0 = Exit) ");
|
|
||||||
+ fflush (stdout);
|
|
||||||
+ do {
|
|
||||||
+ fgets (nm,sizeof (nm),stdin);
|
|
||||||
+ choice = atoi (nm);
|
|
||||||
+ } while (nm[0] < '0');
|
|
||||||
+
|
|
||||||
+ if (!choice) exit (0);
|
|
||||||
+
|
|
||||||
+ read_ip_parameter (&ip);
|
|
||||||
+
|
|
||||||
+ SetIP (ip_adr,ip_count,irtrans + choice-1,&ip);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ return (0);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int GetOwnIP (uint ips[])
|
|
||||||
+{
|
|
||||||
+ char nm[100];
|
|
||||||
+ int count = 0;
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+ struct hostent *host;
|
|
||||||
+
|
|
||||||
+ gethostname (nm,100);
|
|
||||||
+
|
|
||||||
+ host = gethostbyname (nm);
|
|
||||||
+
|
|
||||||
+ while (host->h_addr_list[count]) {
|
|
||||||
+ if (host->h_addr_list[count][0] != 127) break;
|
|
||||||
+ }
|
|
||||||
+ ips[0] = *((uint *)host->h_addr_list[count]);
|
|
||||||
+ count = 1;
|
|
||||||
+#else
|
|
||||||
+ count = GetInterfaces (ips);
|
|
||||||
+#endif
|
|
||||||
+ return (count);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifndef WIN32
|
|
||||||
+int GetInterfaces (uint ips[])
|
|
||||||
+{
|
|
||||||
+ int i,j,cnt;
|
|
||||||
+ FILE *fp;
|
|
||||||
+ char *pnt,ln[256];
|
|
||||||
+ struct sockaddr_in *sinp;
|
|
||||||
+ struct ifreq ifr;
|
|
||||||
+ int s; /* Socket */
|
|
||||||
+ char local_ip_addr[16];
|
|
||||||
+
|
|
||||||
+ fp = fopen ("/proc/net/dev","r");
|
|
||||||
+ if (!fp) return (0);
|
|
||||||
+ s = socket(AF_INET, SOCK_DGRAM, 0);
|
|
||||||
+
|
|
||||||
+ cnt = 0;
|
|
||||||
+ pnt = fgets (ln,sizeof (ln),fp);
|
|
||||||
+ while (pnt) {
|
|
||||||
+ i = 0;
|
|
||||||
+ while (ln[i] == ' ') i++;
|
|
||||||
+ if (!memcmp (ln+i,"eth",3)) {
|
|
||||||
+ j = i;
|
|
||||||
+ while ((ln[j] >= '0' && ln[j] <= '9') || (ln[j] >= 'a' && ln[j] <= 'z') || (ln[j] >= 'A' && ln[j] <= 'Z')) j++;
|
|
||||||
+ ln[j] = 0;
|
|
||||||
+ memset (&ifr,0,sizeof (ifr));
|
|
||||||
+ strcpy(ifr.ifr_name, ln+i);
|
|
||||||
+ ioctl(s, SIOCGIFADDR, &ifr);
|
|
||||||
+ sinp = (struct sockaddr_in*)&ifr.ifr_addr;
|
|
||||||
+ ips[cnt++] = sinp->sin_addr.s_addr;
|
|
||||||
+ }
|
|
||||||
+ pnt = fgets (ln,sizeof (ln),fp);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ close (s);
|
|
||||||
+ fclose (fp);
|
|
||||||
+
|
|
||||||
+ return (cnt);
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+void SetIP (uint server_ip[],int cnt,DEVICE_ENTRY *dev,IP_PARAM *ip)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ DHCP_REQUEST req;
|
|
||||||
+
|
|
||||||
+ for (i=0;i < cnt;i++) {
|
|
||||||
+ if (ip->dhcp_flag) new_dhcpset (190,server_ip[i],dev->mac,ip->password,&req);
|
|
||||||
+
|
|
||||||
+ else new_ipset (189,server_ip[i],dev->mac,ip->ip,ip->netmask,ip->gateway,ip->password,&req);
|
|
||||||
+
|
|
||||||
+ send (snd_socket[i],(char *)&req,sizeof (DHCP_REQUEST),0);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void read_ip_parameter (IP_PARAM *ip)
|
|
||||||
+{
|
|
||||||
+ char nm[100];
|
|
||||||
+
|
|
||||||
+ memset (ip,0,sizeof (IP_PARAM));
|
|
||||||
+
|
|
||||||
+ printf ("\n\nConfigure device for DHCP (Y/N) ? ");
|
|
||||||
+ fflush (stdout);
|
|
||||||
+ fgets (nm,sizeof (nm),stdin);
|
|
||||||
+ printf ("\n");
|
|
||||||
+
|
|
||||||
+ if (*nm == 'Y' || *nm == 'y') ip->dhcp_flag = 1;
|
|
||||||
+ else {
|
|
||||||
+ do {
|
|
||||||
+ printf ("\nEnter IP Address: ");
|
|
||||||
+ fflush (stdout);
|
|
||||||
+ fgets (nm,sizeof (nm),stdin);
|
|
||||||
+ ip->ip = inet_addr (nm);
|
|
||||||
+ } while (ip->ip == INADDR_NONE);
|
|
||||||
+ do {
|
|
||||||
+ printf ("\nEnter Netmask : ");
|
|
||||||
+ fflush (stdout);
|
|
||||||
+ fgets (nm,sizeof (nm),stdin);
|
|
||||||
+ ip->netmask = inet_addr (nm);
|
|
||||||
+ } while (ip->netmask == INADDR_NONE);
|
|
||||||
+ do {
|
|
||||||
+ printf ("\nDefault Gateway : ");
|
|
||||||
+ fflush (stdout);
|
|
||||||
+ fgets (nm,sizeof (nm),stdin);
|
|
||||||
+ ip->gateway = inet_addr (nm);
|
|
||||||
+ } while (ip->gateway == INADDR_NONE);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ printf ("\n\nEnter device password: ");
|
|
||||||
+ fflush (stdout);
|
|
||||||
+ fgets (ip->password,8,stdin);
|
|
||||||
+
|
|
||||||
+ printf ("\n");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void SendQuery (uint ip_adr[],int cnt)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ DHCP_REQUEST req;
|
|
||||||
+
|
|
||||||
+ for (i=0;i < cnt;i++) {
|
|
||||||
+ new_devicequery (187,ip_adr[i],&req);
|
|
||||||
+ send (snd_socket[i],(char *)&req,sizeof (DHCP_REQUEST),0);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int ReadDevices (DEVICE_ENTRY *dev,int ipcnt)
|
|
||||||
+{
|
|
||||||
+ int i;
|
|
||||||
+ DHCP_REQUEST req;
|
|
||||||
+ int res,cnt = 0;
|
|
||||||
+
|
|
||||||
+#ifndef WIN32
|
|
||||||
+ fd_set events;
|
|
||||||
+ int maxfd,wait;
|
|
||||||
+ struct timeval tv;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+ IrtLanEvent = WSACreateEvent ();
|
|
||||||
+ WSAEventSelect (rcv_socket, IrtLanEvent,FD_READ);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ while (1) {
|
|
||||||
+
|
|
||||||
+#ifdef WIN32
|
|
||||||
+ res = WaitForSingleObject (IrtLanEvent,5000);
|
|
||||||
+ if (res == WAIT_TIMEOUT) break;
|
|
||||||
+ ResetEvent (IrtLanEvent);
|
|
||||||
+
|
|
||||||
+#else
|
|
||||||
+
|
|
||||||
+ FD_ZERO (&events);
|
|
||||||
+
|
|
||||||
+ FD_SET (rcv_socket,&events);
|
|
||||||
+ maxfd = rcv_socket + 1;
|
|
||||||
+
|
|
||||||
+ tv.tv_sec = 1;
|
|
||||||
+ tv.tv_usec = 0;
|
|
||||||
+
|
|
||||||
+ wait = select (maxfd,&events,NULL,NULL,&tv);
|
|
||||||
+ if (!wait) break;
|
|
||||||
+#endif
|
|
||||||
+ res = recv (rcv_socket,(char *)&req,sizeof (req),0);
|
|
||||||
+ cnt += StoreDevice (dev + cnt,&req);
|
|
||||||
+ i = 0;
|
|
||||||
+ while (i < (cnt - 1)) {
|
|
||||||
+ if (!memcmp (dev[i].mac,dev[cnt-1].mac,6)) break;
|
|
||||||
+ i++;
|
|
||||||
+ }
|
|
||||||
+ if (i < (cnt - 1)) cnt--;
|
|
||||||
+
|
|
||||||
+ }
|
|
||||||
+ return (cnt);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int StoreDevice (DEVICE_ENTRY *dev,DHCP_REQUEST *req)
|
|
||||||
+{
|
|
||||||
+ if (req -> op != 1) return (0);
|
|
||||||
+
|
|
||||||
+ if (req -> opt_header[0] != 99 || req -> opt_header[1] != 130 || req -> opt_header[2] != 83 || req -> opt_header[3] != 99) return (0);
|
|
||||||
+ if (req -> opt_header[4] != 53 || req -> opt_header[5] != 1 || req -> opt_header[6] != 188 || req -> opt_header[7] != 0xe9) return (0);
|
|
||||||
+
|
|
||||||
+ if (req -> opt_header[9] != 0x78 || req -> opt_header[10] != 0xa3 || req -> opt_header[11] != 0x8b || req -> opt_header[12] != 0x84) return (0);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ if (req -> client_mac[0] != 0 || req -> client_mac[1] != 0x50 || req -> client_mac[2] != 0xC2 ||
|
|
||||||
+ req -> client_mac[3] != 0x52 || (req -> client_mac[4] & 0xf0) != 0x70) return (0);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ dev->ip = req -> client_ip;
|
|
||||||
+ memcpy (dev->mac,req -> client_mac,6);
|
|
||||||
+ dev->dhcp_flag = req->options[0];
|
|
||||||
+ memcpy (dev->firmware,req->options+1,8);
|
|
||||||
+ if (req -> opt_header[8] == 23) memcpy (dev->ir_firmware,req->options+9,8);
|
|
||||||
+
|
|
||||||
+ return (1);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+void new_dhcpset (byte msg,uint srvadr,byte mac[],char password[],DHCP_REQUEST *req)
|
|
||||||
+{
|
|
||||||
+ int i,pos;
|
|
||||||
+
|
|
||||||
+ memset (req,0,sizeof (DHCP_REQUEST));
|
|
||||||
+
|
|
||||||
+ req->op = 2;
|
|
||||||
+ req->htype = 1;
|
|
||||||
+ req->hlen = 6;
|
|
||||||
+ req->hops = 0;
|
|
||||||
+ req->xid = htonl(0xaabbccdd);
|
|
||||||
+ req->secs = 0;
|
|
||||||
+ req->flags = htons (0x8000);
|
|
||||||
+ req->server_ip = srvadr;
|
|
||||||
+ memcpy (req->client_mac,mac,6);
|
|
||||||
+
|
|
||||||
+ req->opt_header[0] = 99;
|
|
||||||
+ req->opt_header[1] = 130;
|
|
||||||
+ req->opt_header[2] = 83;
|
|
||||||
+ req->opt_header[3] = 99;
|
|
||||||
+ req->opt_header[4] = 53;
|
|
||||||
+ req->opt_header[5] = 1;
|
|
||||||
+ req->opt_header[6] = msg;
|
|
||||||
+ req->opt_header[7] = 233;
|
|
||||||
+ req->opt_header[8] = 4;
|
|
||||||
+ req->opt_header[9] = 0xac;
|
|
||||||
+ req->opt_header[10] = 0x75;
|
|
||||||
+ req->opt_header[11] = 0x20;
|
|
||||||
+ req->opt_header[12] = 0xbf;
|
|
||||||
+
|
|
||||||
+ pos = 0;
|
|
||||||
+ req->options[pos++] = 234;
|
|
||||||
+ req->options[pos++] = strlen (password) + 1;
|
|
||||||
+
|
|
||||||
+ for (i=0;i < (int)strlen (password);i++) req->options[pos++] = password[i];
|
|
||||||
+ req->options[pos++] = 0;
|
|
||||||
+ req->options[pos++] = 255;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void new_ipset (byte msg,uint srvadr,byte mac[],uint ip,uint nm,uint gw,char password[],DHCP_REQUEST *req)
|
|
||||||
+{
|
|
||||||
+ int i,pos;
|
|
||||||
+
|
|
||||||
+ memset (req,0,sizeof (DHCP_REQUEST));
|
|
||||||
+
|
|
||||||
+ req->op = 2;
|
|
||||||
+ req->htype = 1;
|
|
||||||
+ req->hlen = 6;
|
|
||||||
+ req->hops = 0;
|
|
||||||
+ req->xid = htonl(0xaabbccdd);
|
|
||||||
+ req->secs = 0;
|
|
||||||
+ req->flags = htons (0x8000);
|
|
||||||
+ req->server_ip = srvadr;
|
|
||||||
+ req->own_ip = ip;
|
|
||||||
+ memcpy (req->client_mac,mac,6);
|
|
||||||
+
|
|
||||||
+ req->opt_header[0] = 99;
|
|
||||||
+ req->opt_header[1] = 130;
|
|
||||||
+ req->opt_header[2] = 83;
|
|
||||||
+ req->opt_header[3] = 99;
|
|
||||||
+ req->opt_header[4] = 53;
|
|
||||||
+ req->opt_header[5] = 1;
|
|
||||||
+ req->opt_header[6] = msg;
|
|
||||||
+ req->opt_header[7] = 233;
|
|
||||||
+ req->opt_header[8] = 4;
|
|
||||||
+ req->opt_header[9] = 0xac;
|
|
||||||
+ req->opt_header[10] = 0x75;
|
|
||||||
+ req->opt_header[11] = 0x20;
|
|
||||||
+ req->opt_header[12] = 0xbf;
|
|
||||||
+
|
|
||||||
+ pos = 0;
|
|
||||||
+ req->options[pos++] = 1; // Subnetmask
|
|
||||||
+ req->options[pos++] = 4;
|
|
||||||
+ memcpy (req->options+pos,&nm,4);
|
|
||||||
+ pos += 4;
|
|
||||||
+
|
|
||||||
+ req->options[pos++] = 3; // Default Gateway
|
|
||||||
+ req->options[pos++] = 4;
|
|
||||||
+ memcpy (req->options+pos,&gw,4);
|
|
||||||
+ pos += 4;
|
|
||||||
+
|
|
||||||
+ req->options[pos++] = 234;
|
|
||||||
+ req->options[pos++] = strlen (password) + 1;
|
|
||||||
+
|
|
||||||
+ for (i=0;i < (int)strlen (password);i++) req->options[pos++] = password[i];
|
|
||||||
+ req->options[pos++] = 0;
|
|
||||||
+ req->options[pos++] = 255;
|
|
||||||
+
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void new_devicequery (byte msg,uint srvadr,DHCP_REQUEST *req)
|
|
||||||
+{
|
|
||||||
+ memset (req,0,sizeof (DHCP_REQUEST));
|
|
||||||
+
|
|
||||||
+ req->op = 2;
|
|
||||||
+ req->htype = 1;
|
|
||||||
+ req->hlen = 6;
|
|
||||||
+ req->hops = 0;
|
|
||||||
+ req->xid = htonl(0xaabbccdd);
|
|
||||||
+ req->secs = 0;
|
|
||||||
+ req->flags = htons (0x8000);
|
|
||||||
+ req->server_ip = srvadr;
|
|
||||||
+ req->client_mac[0] = 0xff;
|
|
||||||
+ req->client_mac[1] = 0xff;
|
|
||||||
+ req->client_mac[2] = 0xff;
|
|
||||||
+ req->client_mac[3] = 0xff;
|
|
||||||
+ req->client_mac[4] = 0xff;
|
|
||||||
+ req->client_mac[5] = 0xff;
|
|
||||||
+
|
|
||||||
+ req->opt_header[0] = 99;
|
|
||||||
+ req->opt_header[1] = 130;
|
|
||||||
+ req->opt_header[2] = 83;
|
|
||||||
+ req->opt_header[3] = 99;
|
|
||||||
+ req->opt_header[4] = 53;
|
|
||||||
+ req->opt_header[5] = 1;
|
|
||||||
+ req->opt_header[6] = msg;
|
|
||||||
+ req->opt_header[7] = 233;
|
|
||||||
+ req->opt_header[8] = 4;
|
|
||||||
+ req->opt_header[9] = 0x78;
|
|
||||||
+ req->opt_header[10] = 0xa3;
|
|
||||||
+ req->opt_header[11] = 0x8b;
|
|
||||||
+ req->opt_header[12] = 0x84;
|
|
||||||
+
|
|
||||||
+ req->options[0] = 255;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int open_sockets (uint ip[],int cnt)
|
|
||||||
+{
|
|
||||||
+ int res,i;
|
|
||||||
+ struct sockaddr_in iadr;
|
|
||||||
+ struct sockaddr_in serv_addr;
|
|
||||||
+
|
|
||||||
+ rcv_socket = socket (PF_INET,SOCK_DGRAM,0);
|
|
||||||
+ if (rcv_socket < 0) return (2);
|
|
||||||
+
|
|
||||||
+ memset (&serv_addr,0,sizeof (serv_addr));
|
|
||||||
+ serv_addr.sin_family = AF_INET;
|
|
||||||
+ serv_addr.sin_addr.s_addr = INADDR_ANY;
|
|
||||||
+ serv_addr.sin_port = htons (67);
|
|
||||||
+
|
|
||||||
+ res = bind (rcv_socket,(struct sockaddr *)&serv_addr,sizeof (serv_addr));
|
|
||||||
+ if (res) return (3);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ for (i=0;i < cnt;i++) {
|
|
||||||
+ snd_socket[i] = socket (PF_INET,SOCK_DGRAM,0);
|
|
||||||
+ if (snd_socket[i] < 0) return (4);
|
|
||||||
+ res = 1;
|
|
||||||
+ setsockopt (snd_socket[i],SOL_SOCKET,SO_BROADCAST,(char *)&res,sizeof (int));
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifndef WIN32
|
|
||||||
+ memset (&serv_addr,0,sizeof (serv_addr));
|
|
||||||
+ serv_addr.sin_family = AF_INET;
|
|
||||||
+ serv_addr.sin_addr.s_addr = ip[i];
|
|
||||||
+ serv_addr.sin_port = 0;
|
|
||||||
+
|
|
||||||
+ res = bind (snd_socket[i],(struct sockaddr *)&serv_addr,sizeof (serv_addr));
|
|
||||||
+ if (res) return (6);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ memset (&iadr,0,sizeof (struct sockaddr));
|
|
||||||
+ iadr.sin_family = AF_INET;
|
|
||||||
+ iadr.sin_addr.s_addr = INADDR_BROADCAST;
|
|
||||||
+ iadr.sin_port = htons (68);
|
|
||||||
+
|
|
||||||
+ if (connect (snd_socket[i],(struct sockaddr *)&iadr,sizeof (struct sockaddr_in)) < 0) return (5);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return (0);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
diff -Naur irclient-5.11.04.orig/makefile irclient-5.11.04/makefile
|
|
||||||
--- irclient-5.11.04.orig/makefile 2008-08-06 20:11:16.000000000 +0000
|
|
||||||
+++ irclient-5.11.04/makefile 2008-08-06 20:27:31.000000000 +0000
|
|
||||||
@@ -15,6 +15,11 @@
|
|
||||||
OBJS64 = $(patsubst %,$(ODIR64)/%,$(_OBJS))
|
|
||||||
OBJSARM = $(patsubst %,$(ODIRARM)/%,$(_OBJS))
|
|
||||||
|
|
||||||
+_OBJS_IP = ip_assign.o
|
|
||||||
+OBJS_IP = $(patsubst %,$(ODIR)/%,$(_OBJS_IP))
|
|
||||||
+OBJS64_IP = $(patsubst %,$(ODIR64)/%,$(_OBJS_IP))
|
|
||||||
+OBJSARM_IP = $(patsubst %,$(ODIRARM)/%,$(_OBJS_IP))
|
|
||||||
+
|
|
||||||
|
|
||||||
irclient: $(OBJS)
|
|
||||||
$(CC) $(CFLAGS) $(OBJS) -m32 -o irclient $(LDFLAGS)
|
|
||||||
@@ -26,15 +31,29 @@
|
|
||||||
$(CC) $(CFLAGS) $(OBJSARM) -o irclient $(LDFLAGS)
|
|
||||||
|
|
||||||
|
|
||||||
-all: irclient irclient64
|
|
||||||
+ip_assign: $(OBJS_IP)
|
|
||||||
+ $(CC) $(CFLAGS) $(OBJS_IP) -m32 -o ip_assign $(LDFLAGS)
|
|
||||||
+
|
|
||||||
+ip_assign64: $(OBJS64_IP)
|
|
||||||
+ $(CC) $(CFLAGS) -DX64 $(OBJS64_IP) -m64 -o ip_assign64 $(LDFLAGS)
|
|
||||||
+
|
|
||||||
+ip_assign_arm: $(OBJSARM_IP)
|
|
||||||
+ $(CC) $(CFLAGS) $(OBJSARM_IP) -o ip_assign $(LDFLAGS)
|
|
||||||
|
|
||||||
-arm: irclient_arm
|
|
||||||
+
|
|
||||||
+all: irclient irclient64 ip_assign ip_assign64
|
|
||||||
+
|
|
||||||
+arm: irclient_arm ip_assign_arm
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
|
||||||
- -rm $(OBJS)
|
|
||||||
- -rm $(OBJS64)
|
|
||||||
- -rm $(OBJSARM)
|
|
||||||
+ -rm -f $(OBJS)
|
|
||||||
+ -rm -f $(OBJS64)
|
|
||||||
+ -rm -f $(OBJSARM)
|
|
||||||
+
|
|
||||||
+ -rm -f $(OBJS_IP)
|
|
||||||
+ -rm -f $(OBJS64_IP)
|
|
||||||
+ -rm -f $(OBJSARM_IP)
|
|
||||||
|
|
||||||
|
|
||||||
$(ODIR)/%.o: %.c flash.h errcode.h network.h remote.h makefile
|
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 1999-2008 Gentoo Foundation
|
# Copyright 1999-2009 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
# $Header: $
|
# $Header: $
|
||||||
|
|
||||||
@ -8,7 +8,8 @@ RESTRICT="strip"
|
|||||||
|
|
||||||
DESCRIPTION="IRTrans Server"
|
DESCRIPTION="IRTrans Server"
|
||||||
HOMEPAGE="http://www.irtrans.de"
|
HOMEPAGE="http://www.irtrans.de"
|
||||||
SRC_URI="http://ftp.mars.arge.at/irtrans/irclient-src-${PV}.tar.gz"
|
SRC_URI="http://ftp.mars.arge.at/irtrans/irclient-src-${PV}.tar.gz
|
||||||
|
http://ftp.mars.arge.at/irtrans/${PN}-5.11.04-ip_assign-1.patch.bz2"
|
||||||
|
|
||||||
LICENSE="BSD"
|
LICENSE="BSD"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
@ -21,7 +22,7 @@ src_unpack() {
|
|||||||
unpack ${A}
|
unpack ${A}
|
||||||
cd "${WORKDIR}"
|
cd "${WORKDIR}"
|
||||||
|
|
||||||
epatch "${FILESDIR}/${PN}"-5.11.04-ip_assign-1.patch
|
epatch "${DISTDIR}/${PN}"-5.11.04-ip_assign-1.patch.bz2
|
||||||
}
|
}
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
|
Loading…
Reference in New Issue
Block a user