diff options
Diffstat (limited to 'vchat-protocol.c')
-rwxr-xr-x | vchat-protocol.c | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/vchat-protocol.c b/vchat-protocol.c index 700f6c7..ef035fe 100755 --- a/vchat-protocol.c +++ b/vchat-protocol.c | |||
@@ -70,7 +70,6 @@ static void pmnotsent (char *message); | |||
70 | /* status-variable from vchat-client.c | 70 | /* status-variable from vchat-client.c |
71 | * eventloop is done as long as this is true */ | 71 | * eventloop is done as long as this is true */ |
72 | extern int status; | 72 | extern int status; |
73 | int ignssl = 0; | ||
74 | char *encoding; | 73 | char *encoding; |
75 | 74 | ||
76 | static int connect_socket( char *server, char *port ) { | 75 | static int connect_socket( char *server, char *port ) { |
@@ -107,9 +106,6 @@ vcconnect (char *server, char *port) | |||
107 | /* vchat connection x509 store */ | 106 | /* vchat connection x509 store */ |
108 | vc_x509store_t vc_store; | 107 | vc_x509store_t vc_store; |
109 | 108 | ||
110 | /* SSL-context */ | ||
111 | SSL_CTX *sslctx = NULL; | ||
112 | |||
113 | /* pointer to tilde-expanded certificate/keyfile-names */ | 109 | /* pointer to tilde-expanded certificate/keyfile-names */ |
114 | char *certfile = NULL, *keyfile = NULL; | 110 | char *certfile = NULL, *keyfile = NULL; |
115 | 111 | ||
@@ -164,10 +160,9 @@ vcconnect (char *server, char *port) | |||
164 | vc_x509store_set_pkeycb(&vc_store, (vc_askpass_cb_t)passprompt); | 160 | vc_x509store_set_pkeycb(&vc_store, (vc_askpass_cb_t)passprompt); |
165 | vc_x509store_setkeyfile(&vc_store, tildex); | 161 | vc_x509store_setkeyfile(&vc_store, tildex); |
166 | } | 162 | } |
167 | vc_x509store_setignssl(&vc_store, getintoption(CF_IGNSSL)); | ||
168 | 163 | ||
169 | /* upgrade our plain BIO to ssl */ | 164 | /* upgrade our plain BIO to ssl */ |
170 | if( vc_connect_ssl( &server_conn, &vc_store, &sslctx ) ) | 165 | if( vc_connect_ssl( &server_conn, &vc_store ) ) |
171 | BIO_free_all( server_conn ); | 166 | BIO_free_all( server_conn ); |
172 | } | 167 | } |
173 | 168 | ||
@@ -279,7 +274,7 @@ topicinfo (char *message) | |||
279 | { | 274 | { |
280 | char *channel = NULL, *topic = NULL; | 275 | char *channel = NULL, *topic = NULL; |
281 | int tmpchan = 0; | 276 | int tmpchan = 0; |
282 | 277 | ||
283 | /* search start of channel number */ | 278 | /* search start of channel number */ |
284 | channel = strchr (message, ' '); | 279 | channel = strchr (message, ' '); |
285 | channel++; | 280 | channel++; |
@@ -443,7 +438,7 @@ nickerr (char *message) | |||
443 | setstroption(CF_NICK,NULL); | 438 | setstroption(CF_NICK,NULL); |
444 | /* get new nick via vchat-ui.c */ | 439 | /* get new nick via vchat-ui.c */ |
445 | nickprompt (); | 440 | nickprompt (); |
446 | 441 | ||
447 | /* form login message and send it to server */ | 442 | /* form login message and send it to server */ |
448 | snprintf (tmpstr, TMPSTRSIZE, ".l %s %s %d", nick, getstroption (CF_FROM), getintoption (CF_CHANNEL)); | 443 | snprintf (tmpstr, TMPSTRSIZE, ".l %s %s %d", nick, getstroption (CF_FROM), getintoption (CF_CHANNEL)); |
449 | networkoutput (tmpstr); | 444 | networkoutput (tmpstr); |
@@ -455,8 +450,7 @@ nickerr (char *message) | |||
455 | * vars: %s - this users registered nick | 450 | * vars: %s - this users registered nick |
456 | * %s msg - server message */ | 451 | * %s msg - server message */ |
457 | static void | 452 | static void |
458 | login (char *message) | 453 | login (char *message) { |
459 | { | ||
460 | char *msg = NULL; | 454 | char *msg = NULL; |
461 | 455 | ||
462 | /* mutate message for output */ | 456 | /* mutate message for output */ |
@@ -465,23 +459,19 @@ login (char *message) | |||
465 | writecf (FS_SERV,&message[2]); | 459 | writecf (FS_SERV,&message[2]); |
466 | 460 | ||
467 | /* we don't know our nick? */ | 461 | /* we don't know our nick? */ |
468 | if (!nick) | 462 | if (!nick) { |
469 | { | 463 | /* find message after nick */ |
470 | /* find message after nick */ | 464 | msg = strchr (&message[4], ' '); |
471 | msg = strchr (&message[4], ' '); | 465 | if (msg) { |
472 | if (msg) | 466 | /* terminate string before message and copy nick */ |
473 | { | 467 | msg[0] = '\0'; |
474 | /* terminate string before message and copy nick */ | 468 | setstroption(CF_NICK,&message[4]); |
475 | msg[0] = '\0'; | 469 | } else { |
476 | setstroption(CF_NICK,&message[4]); | 470 | /* no string in servers message (huh?), ask user for nick */ |
477 | } | 471 | nickprompt (); |
478 | else | ||
479 | { | ||
480 | /* no string in servers message (huh?), ask user for nick */ | ||
481 | nickprompt (); | ||
482 | } | ||
483 | } | 472 | } |
484 | 473 | } | |
474 | |||
485 | /* form login message and send it to server */ | 475 | /* form login message and send it to server */ |
486 | snprintf (tmpstr, TMPSTRSIZE, ".l %s %s %d", nick, getstroption (CF_FROM), getintoption (CF_CHANNEL)); | 476 | snprintf (tmpstr, TMPSTRSIZE, ".l %s %s %d", nick, getstroption (CF_FROM), getintoption (CF_CHANNEL)); |
487 | networkoutput (tmpstr); | 477 | networkoutput (tmpstr); |