Mercurial > hg > freeDiameter
annotate extensions/app_sip/tools/app_sip_ppr.c @ 435:af1263d6f80e
error on port number for PPR command line
author | Alexandre Westfahl <awestfahl@freediameter.net> |
---|---|
date | Wed, 28 Jul 2010 15:06:56 +0900 |
parents | a94ecaaf15ec |
children | f38bff0bf3e9 |
rev | line source |
---|---|
434
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
1 /********************************************************************************************************* |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
2 * Software License Agreement (BSD License) * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
3 * Author: Alexandre Westfahl <awestfahl@freediameter.net> * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
4 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
5 * Copyright (c) 2010, Alexandre Westfahl, Teraoka Laboratory (Keio University), and the WIDE Project. * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
6 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
7 * All rights reserved. * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
8 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
9 * Redistribution and use of this software in source and binary forms, with or without modification, are * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
10 * permitted provided that the following conditions are met: * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
11 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
12 * * Redistributions of source code must retain the above * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
13 * copyright notice, this list of conditions and the * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
14 * following disclaimer. * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
15 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
16 * * Redistributions in binary form must reproduce the above * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
17 * copyright notice, this list of conditions and the * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
18 * following disclaimer in the documentation and/or other * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
19 * materials provided with the distribution. * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
20 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
21 * * Neither the name of the Teraoka Laboratory nor the * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
22 * names of its contributors may be used to endorse or * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
23 * promote products derived from this software without * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
24 * specific prior written permission of Teraoka Laboratory * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
25 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
26 * * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
28 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
29 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
30 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
31 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
33 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
34 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
35 *********************************************************************************************************/ |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
36 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
37 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
38 // This file is separated from the source code because it is a separate command which will call push profile function in Diameter-SIP |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
39 #include <sys/types.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
40 #include <sys/socket.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
41 #include <netinet/in.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
42 #include <arpa/inet.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
43 #include <unistd.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
44 typedef int SOCKET; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
45 typedef struct sockaddr_in SOCKADDR_IN; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
46 typedef struct sockaddr SOCKADDR; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
47 #include <stdio.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
48 #include <stdlib.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
49 #include <string.h> |
435
af1263d6f80e
error on port number for PPR command line
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
434
diff
changeset
|
50 #define PORT 667 |
434
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
51 #include <errno.h> |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
52 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
53 struct pprsipaor |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
54 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
55 char username[200]; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
56 char datatype1[255]; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
57 char datatype2[255]; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
58 char datatype3[255]; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
59 int accounting; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
60 }; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
61 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
62 int main (int argc, char **argv) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
63 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
64 SOCKET sock; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
65 SOCKADDR_IN sin; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
66 struct pprsipaor pprsip; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
67 int numdatatype=0,i=0; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
68 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
69 sock = socket(AF_INET, SOCK_STREAM, 0); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
70 sin.sin_addr.s_addr = inet_addr("127.0.0.1"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
71 sin.sin_family = AF_INET; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
72 sin.sin_port = htons(PORT); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
73 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
74 //We initialize the structure |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
75 pprsip.username[0]='\0'; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
76 pprsip.datatype1[0]='\0'; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
77 pprsip.datatype2[0]='\0'; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
78 pprsip.datatype3[0]='\0'; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
79 pprsip.accounting=0; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
80 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
81 //Start of arguments check |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
82 if(argc<3) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
83 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
84 fprintf(stderr,"Missing arguments! You must at least provide a username.\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
85 return 1; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
86 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
87 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
88 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
89 for (i=1;i<argc;i++) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
90 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
91 //We must check if it is a value or the name |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
92 if(strncmp(argv[i],"-",1)==0) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
93 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
94 if(strcmp(argv[i],"-u")==0) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
95 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
96 //Username |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
97 if(strlen(argv[i+1])<199) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
98 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
99 strcpy(pprsip.username,argv[i+1]); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
100 //We must not check the value |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
101 i++; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
102 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
103 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
104 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
105 fprintf(stderr,"Username is too long!\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
106 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
107 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
108 else if(strcmp(argv[i],"-t")==0) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
109 {//User-data types |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
110 i++; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
111 int j=i; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
112 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
113 for(j=i;j<argc;j++) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
114 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
115 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
116 if(strncmp(argv[i],"-",1)!=0) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
117 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
118 if(strlen(argv[i])>254) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
119 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
120 fprintf(stderr,"User-data type is too long!\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
121 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
122 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
123 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
124 if(numdatatype<3) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
125 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
126 switch(numdatatype) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
127 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
128 case 0: |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
129 strcpy(pprsip.datatype1,argv[i]); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
130 break; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
131 case 1: |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
132 strcpy(pprsip.datatype2,argv[i]); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
133 break; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
134 case 2: |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
135 strcpy(pprsip.datatype3,argv[i]); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
136 break; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
137 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
138 numdatatype++; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
139 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
140 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
141 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
142 fprintf(stderr,"You can not provide more than 3 User-data type at the same time!\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
143 break; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
144 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
145 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
146 i=j+1; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
147 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
148 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
149 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
150 //We have a new argument |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
151 i--; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
152 break; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
153 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
154 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
155 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
156 else if(strcmp(argv[i],"-a")==0) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
157 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
158 pprsip.accounting=1; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
159 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
160 i++; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
161 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
162 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
163 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
164 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
165 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
166 fprintf(stderr,"Unknown argument: %s\n",argv[i]); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
167 i++; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
168 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
169 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
170 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
171 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
172 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
173 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
174 //We want a username |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
175 if(strlen(pprsip.username)==0) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
176 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
177 fprintf(stderr,"You must provide a username!\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
178 return 1; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
179 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
180 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
181 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
182 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
183 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
184 /* |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
185 //DEBUG |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
186 fprintf(stderr,"*%s*\n",pprsip.username); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
187 fprintf(stderr,"*%s*\n",pprsip.datatype1); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
188 fprintf(stderr,"*%s*\n",pprsip.datatype2); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
189 fprintf(stderr,"*%s*\n",pprsip.datatype3); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
190 fprintf(stderr,"*%d*\n",pprsip.accounting); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
191 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
192 return 0; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
193 */ |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
194 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
195 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
196 //TODO: check args |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
197 if(!connect(sock, (SOCKADDR*)&sin, sizeof(sin))) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
198 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
199 fprintf(stderr,"Connexion succeed!\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
200 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
201 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
202 if(send(sock, &pprsip, sizeof(struct pprsipaor), 0)) |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
203 fprintf(stderr,"sent OK!\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
204 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
205 fprintf(stderr,"not sent\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
206 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
207 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
208 else |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
209 { |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
210 fprintf(stderr,"Unable to connect\n"); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
211 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
212 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
213 close(sock); |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
214 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
215 return 0; |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
216 } |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
217 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
218 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
219 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
220 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
221 |
a94ecaaf15ec
Added command line PPR
Alexandre Westfahl <awestfahl@freediameter.net>
parents:
diff
changeset
|
222 |