@@ -22,7 +22,9 @@ static char *host = "irc.freenode.org"; /* irc host address */
22
22
static char * chan = "kisslinux" ; /* channel */
23
23
static char * port = "6667" ; /* port */
24
24
static char * nick = NULL ; /* nickname */
25
- static char * pass = NULL ; /* password */
25
+ static char * pass = NULL ; /* server password */
26
+ static char * user = NULL ; /* server username */
27
+ static char * real = NULL ; /* real name */
26
28
27
29
static int
28
30
kbhit (void ) {
@@ -69,7 +71,9 @@ con(void) {
69
71
connect (conn , res -> ai_addr , res -> ai_addrlen );
70
72
71
73
if (nick ) raw ("NICK %s\r\n" , nick );
72
- if (nick ) raw ("USER %s - - :%s\r\n" , nick , nick );
74
+ if (user && real ) raw ("USER %s - - :%s\r\n" , user , real );
75
+ if (user && !real && nick ) raw ("USER %s - - :%s\r\n" , user , nick );
76
+ if (!user && !real && nick ) raw ("USER %s - - :%s\r\n" , nick , nick );
73
77
if (pass ) raw ("PASS %s\r\n" , pass );
74
78
75
79
fcntl (conn , F_SETFL , O_NONBLOCK );
@@ -151,14 +155,16 @@ main(int argc, char **argv) {
151
155
152
156
int fd [2 ], cval ;
153
157
154
- while ((cval = getopt (argc , argv , "s:p:n:k:c:w:W:vV" )) != -1 ) {
158
+ while ((cval = getopt (argc , argv , "s:p:n:k:c:u:r: w:W:vV" )) != -1 ) {
155
159
switch (cval ) {
156
160
case 'v' : puts ("kirc 0.0.1" ); break ;
157
161
case 'V' : verb = 1 ; break ;
158
162
case 's' : host = optarg ; break ;
159
163
case 'w' : gutl = atoi (optarg ); break ;
160
164
case 'W' : cmax = atoi (optarg ); break ;
161
165
case 'p' : port = optarg ; break ;
166
+ case 'r' : real = optarg ; break ;
167
+ case 'u' : user = optarg ; break ;
162
168
case 'n' : nick = optarg ; break ;
163
169
case 'k' : pass = optarg ; break ;
164
170
case 'c' : chan = optarg ; break ;
0 commit comments